演算法:
第一步:增加元件
元件和控制項:
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函式便...