前面创建了窗体,窗体有了,一般我们还会添加一个按钮来执行程序,在前面创建了窗体的基础上,再使用API创建按钮就比较简单,只要在创建了窗体之后、显示之前再添加代码创建按钮。
按钮是windows系统已经注册了的类,所以不再需要注册,直接CreateWindowEx,其中的hWndParent参数设置为窗体的hwnd:
代码语言:javascript复制'创建窗体
hWnd = CreateWindowEx(0, "myForm", "myForm", WS_OVERLAPPEDWINDOW, CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, 0, 0, Application.hInstance, ByVal 0)
If hWnd Then
'添加一个按钮
btnhwnd = CreateWindowEx(0, "BUTTON", "BUTTON", WS_CHILD Or WS_VISIBLE, 5, 5, 80, 20, hWnd, IDC_BUTTON, Application.hInstance, ByVal 0)
'显示窗体
ShowWindow hWnd, SW_SHOWNORMAL
设置一个IDC_BUTTON的目的是为了捕获单击事件,这个值好像随便设置一个都可以,然后在回调函数中捕获:
代码语言:javascript复制'回调函数
Public Function WndProc(ByVal hWnd As Long, ByVal uMsg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long
'仅处理WM_DESTROY销毁窗体
Select Case uMsg
Case WM_DESTROY:
DestroyWindow hWnd
PostQuitMessage 0
Case WM_COMMAND:
If LOWORD(wParam) = IDC_BUTTON Then
MsgBox "你点击了按钮。"
End If
End Select
'默认的回调函数
WndProc = DefWindowProc(hWnd&, uMsg, wParam, lParam)
End Function
Function LOWORD(wParam As Long) As Long
LOWORD = wParam And &HFFFF&
End Function
这样就完成了一个比较简单的界面创建: