如何检测按钮按下?

时间:2011-09-16 19:56:28

标签: winapi

我正在尝试构建一个简单的应用程序(使用Win32 API),它在按钮内显示一个应该关闭应用程序的黑色窗口,问题是我无法弄清楚如何检测PushBotton点击。

我的代码很少安静,例如:

HWND hButton = CreateWindow(TEXT("Button"),TEXT("Exit"),WS_CHILD | WS_VISIBLE | BS_PUSHBUTTON,100,100,50,50,hWnd,0,hInstance,0);

2 个答案:

答案 0 :(得分:6)

简而言之,您需要为按钮指定一个ID,然后在窗口过程中处理该按钮的WM_COMMAND条消息。 http://www.infernodevelopment.com/c-win32-api-tutorial上的文章给出了一个很好的例子。

答案 1 :(得分:2)

您需要分析WM_COMMAND  主窗口过程中的消息:

LRESULT CALLBACK MainWndProc(  
HWND hwnd,        // handle to window  
UINT uMsg,        // message identifier  
WPARAM wParam,    // first message parameter  
LPARAM lParam)    // second message parameter  
{   
if ((uMsg == WM_COMMAND) && ((HWND)lParam == hButton))  //check MSDN for WM_COMMAND and BN_CLICKED notifications
{  
    //button was pressed  
}  
.......  
}