我正在製作一個應用程序,它會在按下某個按鈕後將對話框作爲系統托盤圖標。它工作正常,但我也需要打開相同的菜單對話框包含右鍵單擊並寫了下面的代碼:系統托盤菜單錯誤MFC
CMenu pMenu;
pMenu.LoadMenu(IDR_MENU1);
POINT pointCursor;
::GetCursorPos(&pointCursor);
pMenu.TrackPopupMenu(TPM_BOTTOMALIGN|TPM_LEFTBUTTON|TPM_RIGHTBUTTON, pointCursor.x, pointCursor.y, this);
它創建菜單,但寬度的菜單非常薄如圖所示以下:(黃色突出顯示的區域是菜單)
,如果我只添加第一子菜單主菜單然後它還有以下代碼:
CMenu *pMenu = GetMenu();
POINT pointCursor;
CMenu *pMenu = GetMenu();
::GetCursorPos(&pointCursor);
pMenu->GetSubMenu(0)->TrackPopupMenu(TPM_BOTTOMALIGN|TPM_LEFTBUTTON|TPM_RIGHTBUTTON,pointCursor.x,pointCursor.y,this);
在應用此代碼我得到以下輸出
其實我需要以下菜單:
請推薦我哪裏做錯了
問題何時發生?右鍵點擊對話框,或者在任務欄上? – rrirower
@rrirower我已經寫下彈出菜單的事件右鍵單擊。 –
黃色應該顯示「Open Recent User Profile」菜單項的子菜單嗎?它是什麼樣子「如果我只添加主菜單的第一個子菜單」? – rrirower