再探MFC 三 選單

2021-06-29 10:00:57 字數 1223 閱讀 4090

使用頂層選單

建立選單資源

,並在應用程式執行時載入生成的選單.

建立選單資源

建立選單資源

,命名選單資源id

編輯選單項id

載入並顯示選單

主對話方塊屬性的

menu

項設定為選單

id.

或者主對話方塊的

oninitdialog

函式新增如下**塊.

cmenu menu;

menu.loadmenuw(idr_menu_main);

setmenu(&menu);

menu.detach();

如果使用如上**載入選單

,會出現選單佔據主對話方塊空間

,但是主對話方塊大小不變所有其上控制項都往下移動的問題

.要解決這一問題

,可以在載入選單之後呼叫如下函式.

//由於新增選單需要重新調整視窗大小

voidclbdkfodlg::resizewindow()

源文件<

>

響應選單命令

類檢視中

,選擇主對話方塊類

,開啟屬性檢視

,在事件項相應選單

id新增

command

訊息函式相應選單命令.

彈出式選單

與選單或者按鈕不同,彈出式選單如何建立資源,

********************

和普通選單的建立方式是一樣的,也是在資源中建立,訊息對映也是一樣的,處理函式也是一樣的,幾乎全是一樣的,只不過它的彈出是你自己控制的。它是用trackpopupmenu來彈出,在彈出之前要先裝入類的,看下例:

cmenu pop;

//載入選單

pop.loadmenu(idr_add_delete); //idr_add_delete就是選單id

cmenu* psubmenu;

//載入子選單

psubmenu = pop.getsubmenu(0);

//獲得滑鼠位置

cpoint p;

getcursorpos(&p);

//顯示選單

psubmenu->trackpopupmenu(tpm_rightbutton,p.x,p.y,this);

psubmenu->destroymenu();

源文件<

>

參考資料:

再探MFC 二 多標籤對話方塊

包含控制項頁的標籤式對話方塊 使用者可通過單擊滑鼠在其間切換.本篇我們只介紹使用屬性表實現多標籤頁對話方塊.這也是本系列文章的風格,即為了盡可能的簡單化,只提供必要的,必要的只提供最通用的.屬性表 屬性表的功能都合理地封裝在一對 mfc類 cpropertysheet 和cpropertypage ...

再探MFC 七 使用者自定義訊息

用途 使用者自定義訊息使用 step1 定義訊息id 例如resource.h define lbd set call state message wm user 100 step2 訊息處理 類檢視選中要發往訊息的對話方塊類 在屬性檢視中重寫 windowproc 在 todo 下新增 處理使用者...

再探函式引數

c函式的所有引數均以 傳值呼叫 方式進行傳遞。這意味著函式將獲得引數值的乙份拷貝,這樣函式可以放心修改這個拷貝值,而不必擔心會修改呼叫程式實際傳遞給它的引數。普通資料型別主要包括 如下面 所示 include void swap int x int y int main 我們原本是希望編寫乙個函式,...