(轉(zhuǎn))VC++顯示彈出式菜單的兩種方法 -- 曾棕根 2005-1-26
這里記錄下2中彈出右鍵菜單的方法,一個(gè)是彈出已建立的,一個(gè)是靈活加載菜單項(xiàng)的。
方法一:調(diào)入菜單資源(這里要先建立一個(gè)菜單)
// CMy1View message handlers
///先在Menu資源中添加彈出式菜單,命名:IDR_MENU1
///再添加CView類的消息WM_CONTEXTMENU
///在消息處理函數(shù)中添加函數(shù)
void CMy1View::OnContextMenu(CWnd* pWnd, CPoint point)


{
CMenu menu; menu.LoadMenu(IDR_MENU1);

CMenu * popup= menu.GetSubMenu(0);/**////0是指IDR_MENU1中第0列菜單。可以隨便取一項(xiàng)菜單,編號0~n
popup->TrackPopupMenu(TPM_LEFTALIGN,point.x,point.y,this); }

///先在Menu資源中添加彈出式菜單,命名:IDR_MENU1
///再添加CView類的消息WM_CONTEXTMENU
///在消息處理函數(shù)中添加函數(shù)
void CMy1View::OnContextMenu(CWnd* pWnd, CPoint point)








方法二:自主添加菜單項(xiàng)
///自己創(chuàng)建菜單項(xiàng)
void CMy2View::OnContextMenu(CWnd* pWnd, CPoint point)


{
// TODO: Add your message handler code here
CMenu menuPopup;
if(menuPopup.CreatePopupMenu())

{
menuPopup.AppendMenu(MF_STRING,ID_FILE_SAVE,"保存文件\tCtrl+S");
menuPopup.AppendMenu(MF_STRING,ID_FILE_PRINT,"打印文件\tCtrl+P");
menuPopup.TrackPopupMenu(TPM_LEFTALIGN,point.x,point.y,this);
}
}
void CMy2View::OnContextMenu(CWnd* pWnd, CPoint point)














posted on 2010-03-25 10:40 tiger7 閱讀(645) 評論(0) 編輯 收藏 引用 所屬分類: VC