首先介紹,有兩種方式來實現。
方法1:通過自己編寫代碼來實現。
步驟:
1,添加一個菜單Menu,其中,由于是右鍵菜單,所以只能有一列其作用,經過我的實踐,如果有多列的話,只能夠第一列起作用,而后面的幾列都不能顯示,那么,如果要實現多個菜單怎么辦?需要添加多級目錄,具體來說就是在第一列中添加多行,每一行在添加子菜單,可以設計多級菜單,利用ID來區分。注意,要新建下一級菜單的話,需要選中“Pop Up”選項。
2,實現代碼的編寫。在Classwizard中,在View(特別注意是這個類下面,而不是CMainFrame下面)實現WM_RBUTTONDOW的消息的函數。
添加下面的這個代碼:
void CTest7_3View::OnRButtonDown(UINT nFlags, CPoint point)


{
// TODO: Add your message handler code here and/or call default
CMenu menu;
menu.LoadMenu(IDR_MENU1);
CMenu *pPopup = menu.GetSubMenu(0);
ClientToScreen(&point);
pPopup->TrackPopupMenu(TPM_LEFTALIGN|TPM_RIGHTBUTTON,point.x,point.y,this);

CView::OnRButtonDown(nFlags, point);
}
上面loadMenu中的參數就是新建的那個菜單的ID。
3.添加想要的消息函數。每選中一個菜單項,都要由對應的函數,這個就是我們個性化的設計,需要在View下面找到這些消息,然后對應的ID的消息,產生對應的函數,然后在函數中添加相應的響應。比如這里僅僅是一個輸出的Message。
void CTest7_3View::OnMenu11()
{
// TODO: Add your command handler code here
MessageBox("菜單1");
}
至此,就完成了全部的步驟。。。。
===============================================================================================================================
下面講解第二種方法,利用現有的工具生成。
Project-----Add to Project ------Compenents and Controls-----Visual C+ Compenents----Pop Up Menu-----
選中后insert后,就會出現相應的代碼。然后運行,就會出現對應的菜單了。
要修改的話,只需要添加ID,然后添加ID對應的消息就可以了。而實現那個右鍵菜單的函數代碼,根本不需要你來編寫。
此種方法,減輕了工作量,僅僅需要你編寫菜單對應的代碼而已,標記簡單,而且不容易出錯。在自己編寫右鍵菜單的時候,很容易出現錯誤,造成右鍵不出菜單或者出錯的情況。而一旦右鍵出了菜單,編寫菜單項代碼就是比較容易的事情了。。。
posted on 2010-02-10 17:21
deercoder 閱讀(344)
評論(0) 編輯 收藏 引用