首先介紹,有兩種方式來實現(xiàn)。
方法1:通過自己編寫代碼來實現(xiàn)。
步驟:
1,添加一個菜單Menu,其中,由于是右鍵菜單,所以只能有一列其作用,經(jīng)過我的實踐,如果有多列的話,只能夠第一列起作用,而后面的幾列都不能顯示,那么,如果要實現(xiàn)多個菜單怎么辦?需要添加多級目錄,具體來說就是在第一列中添加多行,每一行在添加子菜單,可以設(shè)計多級菜單,利用ID來區(qū)分。注意,要新建下一級菜單的話,需要選中“Pop Up”選項。
2,實現(xiàn)代碼的編寫。在Classwizard中,在View(特別注意是這個類下面,而不是CMainFrame下面)實現(xiàn)WM_RBUTTONDOW的消息的函數(shù)。
添加下面的這個代碼:
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中的參數(shù)就是新建的那個菜單的ID。
3.添加想要的消息函數(shù)。每選中一個菜單項,都要由對應(yīng)的函數(shù),這個就是我們個性化的設(shè)計,需要在View下面找到這些消息,然后對應(yīng)的ID的消息,產(chǎn)生對應(yīng)的函數(shù),然后在函數(shù)中添加相應(yīng)的響應(yīng)。比如這里僅僅是一個輸出的Message。
void CTest7_3View::OnMenu11()
{
// TODO: Add your command handler code here
MessageBox("菜單1");
}
至此,就完成了全部的步驟。。。。
===============================================================================================================================
下面講解第二種方法,利用現(xiàn)有的工具生成。
Project-----Add to Project ------Compenents and Controls-----Visual C+ Compenents----Pop Up Menu-----
選中后insert后,就會出現(xiàn)相應(yīng)的代碼。然后運行,就會出現(xiàn)對應(yīng)的菜單了。
要修改的話,只需要添加ID,然后添加ID對應(yīng)的消息就可以了。而實現(xiàn)那個右鍵菜單的函數(shù)代碼,根本不需要你來編寫。
此種方法,減輕了工作量,僅僅需要你編寫菜單對應(yīng)的代碼而已,標(biāo)記簡單,而且不容易出錯。在自己編寫右鍵菜單的時候,很容易出現(xiàn)錯誤,造成右鍵不出菜單或者出錯的情況。而一旦右鍵出了菜單,編寫菜單項代碼就是比較容易的事情了。。。
posted on 2010-02-10 17:21
deercoder 閱讀(353)
評論(0) 編輯 收藏 引用