2016-03-08 102 views
0

我想用可點擊的按鈕創建右鍵菜單。我已經有了,使一個右鍵菜單,不向任何反應過來的代碼,它的代碼如下:Win32可點擊右鍵菜單

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

在您的應用程序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; 
0

documentation

當用戶從一個菜單選擇一個命令項,系統會發送WM_COMMAND消息到窗口過程。 WM_COMMAND消息的wParam參數的低位字包含所選項目的標識符。窗口過程應檢查標識符並相應地處理消息。

您沒有提供菜單項的ID並通過了NULL。如果您需要的不止一個菜單項,您將需要進行補救。