API创建窗口菜单功能

易语言 2020-07-23 11:55:13

API创建窗口菜单功能

窗口类注册成功了就可以创建窗口了。
窗口样式 = 位或 (#WS_CAPTION, #WS_SYSMENU, #WS_OVERLAPPED, #WS_THICKFRAME, #WS_MAXIMIZEBOX, #WS_MINIMIZEBOX, #WS_VISIBLE)
句柄 = CreateWindowEx (0, 窗口类名, “无聊之作”, 窗口样式, #CW_USEDEFAULT, #CW_USEDEFAULT, 400, 240, 0, 0, 窗口类.hInstance, 0)
hMemu = GetMenu (句柄)
.如果真 (hMemu = 0)
hMemu = CreateMenu ()
.如果真结束
hPopMenuTmp = CreatePopupMenu ()
AppendMenu (hMemu, #MF_POPUP, hPopMenuTmp, “文件(&F)”)
Apepend (hPopMenuTmp, #MF_STRING, “打开(&O)”)
Apepend (hPopMenuTmp, #MF_STRING, “保存(&S)”)
Apepend (hPopMenuTmp, #MF_POPUP, “其他”)
hSub = GetSubMenu (hPopMenuTmp, GetMenuItemCount (hPopMenuTmp) - 1)
Apepend (hSub, #MF_STRING, “退出”)
SetMenu (句柄, hMemu)
' 下面就是消息循环
' 当GetMessage函数发现消息的消息值为WM_QUIT的时候,就返回0,从而退出循环。
.判断循环首 (GetMessage (消息, 0, 0, 0) ≠ 0)
TranslateMessage (消息)
DispatchMessage (消息)
.判断循环尾 ()

.子程序 窗口函数, 整数型, , 这是窗口过程,用来处理窗口消息
.参数 hWnd, 整数型, , 窗口句柄
.参数 uMsg, 整数型, , 消息值
.参数 wParam, 整数型, , 参数一
.参数 lParam, 整数型, , 参数二
.局部变量 x
.局部变量 y
.局部变量 Tag

.判断开始 (uMsg = #WM_DESTROY)
PostQuitMessage (0) ' 将 WM_QUIT 消息放入消息队列中,这样GetMessage收到WM_QUIT消息时就会返回0,从而退出消息循环
返回 (0)
.判断 (uMsg = #WM_CLOSE)
PostQuitMessage (0)

.判断 (uMsg = #WM_COMMAND)
.如果真 (wParam ≥ 1000 且 wParam ≤ 1000 + MenuCount)
_信息框 (“你单击了 ” + MenuText [wParam - 1000])
.如果真结束

.默认

.判断结束
返回 (DefWindowProc (hWnd, uMsg, wParam, lParam)) ' 其他的消息通通交给DefWindowProc函数处理。