LoadMenu使用方法

2021-08-03 18:55:08 字數 1842 閱讀 5403

彈出式選單(popmenu)大家都熟悉,在win98的桌面上單擊滑鼠右鍵彈出的選單就是彈出式選單。通常情況下,彈出式選單在滑鼠右鍵單擊 時彈出,當然,也可以根據需要隨時彈出。 在vc++5的mfc中,管理選單的類叫cmenu。下面我向大家介紹建立乙個彈出式選單的基本方法。

一、在資源編輯器中建立乙個選單資源

新建乙個選單資源,比如把選單的id號為idc_popmenu。此選單有一項兩層,即有乙個可彈出的選單項,而此選單項的彈出內容即為將要建立的彈 出式選單的內容。如右圖,「可彈出項」下的選單即為將要建立的彈出式選單的內容。實際上,「可彈出項」這個名稱在以後的操作中不會被用到,但vc++5不 允許直接建立彈出式選單,所以採用先建立「可彈出項」的方法。

至於每乙個選單項的訊息對映,與一般的選單相同。

二、使用cmenu類物件

cmenu類的成員函式較多,但建立彈出式選單只需用到其中幾個成員函式。

1、loadmenu函式

原型:bool loadmenu( uint nidresource );

其中nidresource是選單資源的id號,這裡用的是剛建立的idc_popmenu。

2、getsubmenu函式

原型:cmenu* getsubmenu( int npos ) const;

此函式用於得到子選單的指標。npos為層數,0為第一層子選單……以此類推。

由於我們需要的是「可彈出項」的第一層子選單,因此用getsubmenu(0)來得到第一層子選單的類指標。

3、trackpopupmenu函式

原型:bool trackpopupmenu( uint nflags,int x,int y,cwnd* pwnd,lpcrect lprect = null );

其中:nflags為螢幕座標屬性和滑鼠座標屬性

螢幕座標屬性:

tpm_centeralign 橫向將選單以x居中

tpm_leftalign 橫向將選單以x左對齊

tpm_rightalign 橫向將選單以x右對齊

滑鼠按鍵屬性(只在響應wm_contextmenu訊息時有效):

tpm_leftbutton 連續按? 右鍵不會連續彈出選單,滑鼠右鍵不可用於選定選單項

tpm_rightbutton 連續按滑鼠右鍵會連續彈出選單,滑鼠右鍵可用於選定選單項

x,y均為螢幕座標lprect 選單所佔的區域。如果為null,當使用者在選單以外的區域按滑鼠鍵時,選單會消失

三、例項

1、當滑鼠右鍵單擊程式視窗的客戶區時,程式會收到一條wm_contextmenu訊息,此時是彈出選單的最好時機

用classwizard中的「add windows message handler」功能新增對wm_context訊息的響應函式,函式中**如下:

void cmydlg::oncontextmenu(cwnd* pwnd, cpoint point)

2、在其他時候彈出選單也可以,比如,可以響應wm_lbuttondown訊息。這樣,在滑鼠左鍵單擊時也能彈出選單

用classwizard中的「add windows message handler」功能新增對wm_lbuttondown訊息的響應函式,函式中**如下:

void cmfc5dlg::onlbuttondown(uint nflags, cpoint point)

注意:在wm_lbuttondown訊息中得到的point物件所存的座標是相對於視窗客戶區的,而trackpopupmenu中的x,y需要是 相對於螢幕的,所以需用clienttoscreen函式進行轉換,但此訊息響應函式要呼叫cdialog::onlbuttondown (nflags, point),故應該用screentoclient函式將point所存的座標還原為相對於視窗客戶區的。

pythonpip使用方法 pip使用方法整理

匯出專案已安裝的pip包 pip list 檢視專案中安裝的包 pip freeze requirements.txt 將專案中所用到的第三方庫輸出到requirements.txt中 pip install 版本號 pip install i 本次使用清華源進行安裝 離線安裝第三方庫 一鍵安裝整個...

使用方法 離型劑使用方法

1 使用離型劑前必須確保模具乾淨,無粉塵 蠟垢 樹脂垢 油汙等殘留物質。可以使用專用的模具潔模劑進行清洗,不可用其他液體清洗,以免清洗不乾淨或損壞模具。另外,如果您的模具是新的,在清洗乾淨後,務必要對模具進行初步處理,用離型劑在模具表面噴 刷塗5 6次,之後方可正常投入生產。2 使用離型劑時,首先要...

使用方法 卡丁車輪胎使用方法

輪胎的使用方法很重要 卡丁車輪胎是卡丁車場日常執行中的主要易損件,但是輪胎的使用方法很重要。哪些情況下會縮短輪胎的使用壽命呢?一 跑道地面粗糙 有的跑道在鋪瀝青時,或者選錯了瀝青中石子的規格,或者碾壓得不夠平整,導致路面粗糙。有的跑道使用現成的水泥地,但表面粗糙或不平整。有的室內跑道,為了提高輪胎的...