创建按钮后,如何得到它的click事件呀?代码如下,如何能得到它的click事件?C/C++ codeLRESULT WINAPI WinPro
创建按钮后,如何得到它的click事件呀?
代码如下,如何能得到它的click事件?
C/C++ codeLRESULT WINAPI WinProc(HWND hWnd,UINT Msg,WPARAM wParam,LPARAM lParam){ HWND hBtn; switch(Msg){ case WM_DESTROY: PostQuitMessage(0); return 0; case WM_CREATE: //创建一个按钮 hBtn = CreateWindow("button","Button",WS_VISIBLE | WS_CHILD,20,20,100,35,hWnd,NULL,0,NULL); if(hBtn) ShowWindow(hBtn,SW_SHOW);
[解决办法]是不是要搞个消息映射什么的
[解决办法]SetWindowLong(hBtn,GWL_WNDPROC,(WNDPROC)MyWndProc);
MyWndProc自己定义的回调函数,处理过程同主窗口WndProc
[解决办法]获取按钮的句柄...Hook之
[解决办法]WPARAM还是LPARAM的HIWORD还是LOWORD是那个Button的ID的,然后走消息WM_COMMAND吧?
其他搞子类化的都是费力不讨好的。
[解决办法]就直接在WM_COMMAND中响应吧,创建的时候给Button一个ID值
#define ID_MYBUTTON 0x01
hBtn = CreateWindow("button","Button",WS_VISIBLE | WS_CHILD,20,20,100,35,hWnd,(HWND)ID_MYBUTTON,0,NULL);
....
case WM_COMMAND:
{
switch(LOWORD(wParam))
{
case ID_MYBUTTON:
switch(HIWORD(wParam))
{
case BN_CLICKED:
DoSomething();
break;
}
}
return 0;
}