Windows Mobile開發快捷菜單問題

今天在開發羣裏又有人問到ppc上如何長按彈出快捷菜單。

與windows不同的是,ppc並不依靠響應WM_RBUTTONDOWN消息來實現,而是在WM_LBUTTONDOWN來處理。說來也不奇怪,ppc上根本就沒有右鍵。

以下是正確的代碼:

......

case WM_LBUTTONDOWN:

  {
   SHRGINFO shrg;
   shrg.cbSize = sizeof(shrg);
   shrg.hwndClient = m_hWnd;
   shrg.ptDown.x = LOWORD(lParam);
   shrg.ptDown.y = HIWORD(lParam);
   shrg.dwFlags = SHRG_RETURNCMD;

   CPoint point;
   point.x = shrg.ptDown.x;
   point.y = shrg.ptDown.y;

   if(::SHRecognizeGesture(&shrg) == GN_CONTEXTMENU)//長按鍵消息
      {
       CMenu menu;
       menu.LoadMenu(IDR_MENU_DOWN);

       CMenu *pPopupMenu = menu.GetSubMenu(0);
       
       ClientToScreen(&point);

       pPopupMenu->TrackPopupMenu(TPM_LEFTALIGN,point.x,point.y,this);
      }

}

......

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章