【发布时间】:2014-01-05 13:54:51
【问题描述】:
我正在使用 c++ 创建一个简单的 win32 程序,尽管我认为我只在这个应用程序中使用了 c。我需要确定在应用程序上按下了哪个 HWND 按钮。我搜索了 msdn 参考,它只告诉我 HIWORD 是通知代码,而 LOWORD 是标识符,用于 BN_CLICKED 消息。我已经设法确定何时单击按钮,但它仅适用于所有按钮。我所有的按钮都是在 WM_CREATE 消息中创建的。到目前为止,这是我设法完成的:
case: WM_CREATE:
HWND hPlus = CreateWindowEx( 0, L"BUTTON", L"+", WS_CHILD | WS_VISIBLE, 130, 240, 35, 30, hwnd, ( HMENU )IDC_MENU, GetModuleHandle( NULL ), NULL );
HWND hEquals = CreateWindowEx( 0, L"BUTTON", L"=", WS_CHILD | WS_VISIBLE, 170, 205, 65, 65, hwnd, ( HMENU )IDC_MENU, GetModuleHandle( NULL ), NULL );
break;
case WM_COMMAND:
switch( HIWORD( wParam ) )
{
case BN_CLICKED:
MessageBox( hwnd, L"OK", "OK", MB_OK );
break;
}
break;
我尝试将 hEquals 与 LOWORD( wParam ) 进行比较,但这在编译时给了我一个错误。我想我也尝试将它与 lParam 的 HIWORD 和 LOWORD 进行比较,这也没有编译。现在我不知道下一步该做什么。
【问题讨论】:
-
很高兴能帮上忙。你为什么不接受这两个答案之一?
-
嗨文斯。我又来了,因为有人刚刚对我的回答投了赞成票。你为什么不接受答案?只是好奇。
-
我非常忙。我接受答案很糟糕哈哈。我很容易分心,甚至不记得这是为了什么项目。
-
那是在 2013 年......无论如何,编程愉快!