📄 winapi2.pb
字号:
;//////////////////////////////////
; Amlinger
; by 2008 02 06
;描述:调用WINDOW API 用GDI画图
;目标:使用GDI画简单图
;//////////////////////////////////
;对GDI不了解的人可以自行查阅GDI相关的资料
;我对GDI也不是很了解,所以这里只加注释
;开一个WINDOWS窗口
;原代码是: ;OpenWindow(0,200,200,600,400,#PB_Window_SystemMenu , " GDI " )
;由于我用的是PureBasic 4.0 以上版本,所以 函数调用参数也因版本发生变化
;因此改用下面的入参方式 所谓适者生存嘛
OpenWindow(0,200,200,600,400, " GDI " , #PB_Window_SystemMenu )
;循环检查
Repeat
;等待Windows窗口事件发生 并返回事件号
WindowsAction.l = WaitWindowEvent()
;定义一个DC指向指针的变量
;来一个C的绕口令 呵呵.
;一个指向整型的指针和一个指向指针的的指针
;WindowID() 返回本窗口听句柄
;调用GetDC 返回 本窗口句柄的 DC 指针
;呵呵有一些乱了,简单些就是 返回用于窗口作图的句柄
*DC = GetDC_(WindowID(0))
;坐标300,100 开始图线
LineTo_(*DC, 300,100 )
;坐标600,0 结束图线
LineTo_(*DC,600,0)
;坐标10,300,200,200 范围内画椭圆
Ellipse_(*DC,10,300,200,200)
;坐标220, 200, 340,300 车矩形
Rectangle_(*DC,220, 200, 340,300)
;释放 指定窗口的 作图 句柄
;同志们一定要养成好习惯 用完了就释放
;有句话讲,好借好还,再借不难
;如果 用完了不释放会造成 内存泄露
;如果在WIN98下,长时间运行 没有ReleaseDC_ 释放的代码 可能会造成死机
ReleaseDC_(WindowID(0),*DC)
;如果是关闭窗口的事件则退出 否则..继续显示当前内容
If WindowsAction = #PB_Event_CloseWindow
quit = 1
EndIf
;如果quit=1则退出
Until quit = 1
;结束程序
End
; IDE Options = PureBasic 4.10 (Windows - x86)
; CursorPosition = 13
; Folding = -
; EnableAsm
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -