我想制作一个带有可点击按钮的右键菜单。我已经有了一个代码,它创建了一个对任何东西都没有反应的右键菜单,其代码如下:
HMENU hPopupMenu = CreatePopupMenu();
POINT p;
if (GetCursorPos(&p))
{
//cursor position now in p.x and p.y
}
InsertMenu(hPopupMenu, 0, MF_BYPOSITION | MF_STRING , NULL, _T("play"));
SetForegroundWindow(hwnd);
TrackPopupMenu(hPopupMenu, TPM_BOTTOMALIGN | TPM_LEFTALIGN, p.x, p.y, 0, hwnd, NULL);
break;
现在我如何拥有上面的代码如何给该播放按钮一个动作?我用谷歌搜索了一堆,但我找不到任何答案。
答案 0 :(得分:0)
在应用程序WndProc中处理WM_COMMAND消息。例如:
case WM_COMMAND:
switch(LOWORD(wParam))
{
case IDC_MAIN_BUTTON:
{
char buffer[256];
SendMessage(hEdit,
WM_GETTEXT,
sizeof(buffer)/sizeof(buffer[0]),
reinterpret_cast<LPARAM>(buffer));
MessageBox(NULL,
buffer,
"Information",
MB_ICONINFORMATION);
}
break;
}
break;
答案 1 :(得分:0)
当用户从菜单中选择命令项时,系统会向窗口过程发送WM_COMMAND消息。 WM_COMMAND消息的wParam参数的低位字包含所选项的标识符。窗口过程应检查标识符并相应地处理消息。
您没有为菜单项提供ID并传递NULL
。如果您需要多于一个菜单项,您将需要补救。