右鍵彈出選單

2021-07-25 19:01:41 字數 1236 閱讀 3031

演算法:

第一步:增加元件

元件和控制項:

project / add to project / components and controls 選擇

vc++ components

裡面的pop-up menu; 選擇

cmenuview

下面的

cg_idr_popup_menu_view

這個是id號,你可以修改的;

在資源裡面會增加乙個選單,只有乙個子選單

abc(名字隨便,不顯示的)

編輯子選單項:顯示

idm_show

,退出idm_exit;

★注意:用下面這個函式可以手動建立彈出選單:

cmenu::trackpopupmenu

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

第二步:在

view

中新增wm_rbuttondown

訊息對應函式

void cmenuview::onrbuttondown(uint nflags, cpoint point)

第三步:編寫響應函式中的程式;

s1:載入彈出選單;  

cmenu menu;  

menu.loadmenu(idr_menu1);

s2:獲得索引號為

0的子選單指標;

cmenu *ppopup=menu.getsubmenu(0);

s3:轉換座標系,從客戶區座標到螢幕座標的轉換;

clienttoscreen(&point);

s4:彈出選單

ppopup->trackpopupmenu(tpm_leftalign |

tpm_rightbutton, point.x, point.y,

this);

s5:結束

★其中this

表示view

,那麼view

類能響應選單命令;如果想

mainframe

來響應選單命令,則

this

改為getparent();

★完整選單如下:

void cmenuview::onrbuttondown(uint nflags, cpoint point)

為顯示和退出子選單項增加命令響應函式,方法和以前一樣,此處略講;

製作右鍵彈出選單

1.新建乙個選單資源 idr menu pop 2.新增選單項 3.彈出右鍵選單 cmenu menu menu.loadmenu idr menu pop cmenu psubmenu menu.getsubmenu 0 0表示是載入idr menu pop的第一列選單 cpoint pt get...

QT 右鍵彈出選單

qwidget及其子類都可有右鍵選單 1.設定標誌 在widget初始化的時候 setcontextmenupolicy qt customcontextmenu 設定為自定義選單模式 2.在需要的地方進行訊號關聯 connect mbrowserview,civdatasourcetreeview...

對話方塊彈出右鍵選單

使用上下文選單 windows 95應用程式支援單擊滑鼠右鍵彈出上下文選單的功能,這可通過處理 wm contextmenu訊息來實現。當在視窗內單擊滑鼠右鍵時,視窗將接收到 wm contextmenu訊息,在該訊息的處理函式內裝載上下文選單,並呼叫 cmenu trackpopupmenu函式便...