Posted on 2012-10-24 10:47
盛勝 閱讀(369)
評論(0) 編輯 收藏 引用
1. 在資源文件中添加Menu



void ClistbDlg::OnRButtonDown(UINT nFlags, CPoint point)
{
// TODO: 在此添加消息處理程序代碼和/或調(diào)用默認值
CMenu menu;
menu.LoadMenu(IDR_MENU1);
CMenu* pPopup=menu.GetSubMenu(0);
//ClientToScreen( )是把窗口坐標轉(zhuǎn)換為屏幕坐標
//ScreenToClient( )是把屏幕坐標轉(zhuǎn)換為窗口坐標
//屏幕坐標是相對于屏幕左上角的,而窗口坐標是相對于窗口用戶區(qū)左上角的
ClientToScreen(&point);
//該函數(shù)在指定位置顯示快捷菜單,并跟蹤菜單項的選擇
//TPM_LEFTBUTTON:若設(shè)置此標志,用戶只能用鼠標左鍵選擇菜單項。
//TPM_RIGHTBUTTON:若設(shè)置此標志,用戶能用鼠標左、右鍵選擇菜單項。
//X:在屏幕坐標下,快捷菜單的水平位置。
//Y:在屏幕坐標下,快捷菜單的垂直位置。 pPopup->TrackPopupMenu(TPM_LEFTALIGN|TPM_RIGHTBUTTON,point.x,point.y,this);
CDialog::OnRButtonDown(nFlags, point);
}
CMenu類的成員 數(shù)據(jù)成員 m_hMenu 指定附加給CMenu對象的窗口菜單的句柄 |
構(gòu)造函數(shù) 初始化 Attach 附加一個Windows菜單句柄給CMenu對象 Detach 從CMenu對象中分離Windows菜單的句柄,并返回該句柄 FromHandle 返回一個指向給定Windows菜單句柄的CMenu對象的指針 GetSafeHmenu 返回由CMenu對象包含的m_hMenu值 DeleteTempMap 刪除由FromHandle成員函數(shù)創(chuàng)建的所有臨時CMenu對象 CreateMenu 創(chuàng)建一個空菜單,并將其附加給CMenu對象 CreatePopupMenu 創(chuàng)建一個空的彈出菜單,并將其附加給CMenu對象 LoadMenu 從可執(zhí)行文件中裝載菜單資源,并將其附加給CMenu對象LoadMenuIndirect從內(nèi)存的菜單模板中裝載菜單,并將其附加給CMenu對象 DestroyMenu 銷毀附加給CMenu對象的菜單,并釋放菜單占用的內(nèi)存 |
菜單操作 菜單項操作 AppendMenu 在該菜單末尾添加新的菜單項 CheckMenuItem 在彈出菜單的菜單項中放置或刪除檢測標記 CheckMenuRadioItem 將單選鈕放置在菜單項之前,或從組中所有的其它菜單項中刪除單選鈕 SetDefaultItem 為指定的菜單設(shè)置缺省的菜單項GetDefaultItem獲取指定的菜單缺省的菜單項 EnableMenuItem 使菜單項有效、無效或變灰GetMenuItemCount決定彈出菜單或頂層菜單的項數(shù) GetMenuItemID 獲取位于指定位置菜單項的菜單項標識 GetMenuState 返回指定菜單項的狀態(tài)或彈出菜單的項數(shù) GetMenuString 獲取指定菜單項的標簽GetMenuItemInfo獲取有關(guān)菜單項的信息 GetSubMenu 獲取指向彈出菜單的指針 InsertMenu 在指定位置插入新菜單項,并順次下移其它菜單項 ModifyMenu 改變指定位置的已存在的菜單項 RemoveMenu 從指定的菜單中刪除與彈出菜單相關(guān)聯(lián)的菜單項 SetMenuItemBitmaps 將指定檢測標記的位圖與菜單項關(guān)聯(lián) GetMenuCountextHelpID 獲取與菜單關(guān)聯(lián)的幫助文本的ID號 SetMenuCountextHelpID 設(shè)置與菜單關(guān)聯(lián)的幫助文本的ID號 |
可覆蓋的函數(shù) DrawItem 通過框架來調(diào)用,其發(fā)生于擁有者菜單的可視部分有所改變 MeasureItem 通過框架來調(diào)用,用于決定當創(chuàng)建了擁有者菜單時的菜單維數(shù) |