在以前的VC6.0中,編譯器已經(jīng)給我們做好了一個有復(fù)制,剪切,粘貼三個選項的右鍵彈出菜單,我們直接添加即可,但是在vs2008中沒有了,我們好像只有手動添加了。
以前的VC6.0中,我們可以直接在CLASS WIZARD中添加虛函數(shù),例如添加一個CFRAME類中的ONCOMMAND函數(shù)等等,但是在VS中沒有CLASS WIZARD,怎么辦呢,其實我們也可以直接添加,只不過位置不一樣而已,現(xiàn)在的位置是在屬性里面,然后點擊重寫,就可以在里面找到我們所需要的ONCOMMAND函數(shù)了,添加即可。在vs2008中,添加消息響應(yīng)和類似添加虛函數(shù)的操作都變到屬性窗口了。
添加右鍵菜單方法及代碼:
1,自己添加一個Menu資源,例如命名為IDR_MENU1,編輯之。頂級菜單是不出現(xiàn)的我們可以隨便設(shè)置不妨為abc。然后添加兩個彈出菜單項:顯示(IDM_SHOW)和退出(IDM_EXIT). 2,給CMenuView類中添加WM_RBUTTONDOWN消息的響應(yīng)函數(shù)。代碼如下: void CMenuView::OnRButtonDown(UINT nFlags, CPoint point) { // TODO: 在此添加消息處理程序代碼和/或調(diào)用默認值 CMenu menu; menu.LoadMenuA(IDR_MENU1); CMenu* pPopup = menu.GetSubMenu(0); ClientToScreen(&point); //客戶坐標轉(zhuǎn)換成屏幕坐標 pPopup->TrackPopupMenu(TPM_LEFTALIGN | TPM_RIGHTBUTTON, point.x, point.y, this);
CView::OnRButtonDown(nFlags, point); } 對菜單項添加事件很Easy。動態(tài)菜單添加主要用到如下的函數(shù): BOOL AppendMenu(UINT nFlags, UINT_PTR nIDNewItem = 0, LPCTSTR lpszNewItem = NULL);
|