首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

创建按钮后,怎么得到它的click事件呀

2012-03-03 
创建按钮后,如何得到它的click事件呀?代码如下,如何能得到它的click事件?C/C++ codeLRESULT WINAPI WinPro

创建按钮后,如何得到它的click事件呀?
代码如下,如何能得到它的click事件?

C/C++ code
LRESULT 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;
}

热点排行