VC在指定控制項中新增右鍵選單的兩種方法

2021-05-23 03:18:52 字數 690 閱讀 5836

1、在網上蒐集vc中向指定控制項新增右鍵彈出選單,談到的方法多數是新建乙個繼承自原來控制項的mfc控制項類,在該類的oncontextmenu(cwnd* /*pwnd*/, cpoint point)函式中新增右鍵彈出選單的響應,完整**如下:

void cmylistbox::oncontextmenu(cwnd* /*pwnd*/, cpoint point)

這種方法的優點是所有該類控制項均支援同樣的彈出選單,從**的可重用性來說效率是非常高的,你不用對每乙個控制項單獨增加彈出選單的**,減少了**編寫的工作量。但這種方法需要新增加乙個類,包括乙個.h檔案和.cpp檔案,使得**管理更加麻煩,特別類本來就比較多的程式中,同時如果你希望多個控制項產生不同的右鍵彈出選單,或者你需要產生右鍵彈出選單的控制項並不多,這種方法就顯得比較呆板了^_^,在這種情況下我們通常使用下一種方法;

2、這種方法是僅僅響應控制項所在視窗的oncontextmenu(cwnd* /*pwnd*/, cpoint point)函式,在該函式中增加判斷當前滑鼠右擊點是否在控制項區域內的過程,如果判斷滑鼠右擊點在指定控制項中,則顯示相應彈出選單。這種方法實現起來簡單、靈活,完整vc**如下:

void cmyfiledlg::oncontextmenu(cwnd* /*pwnd*/, cpoint point)

}這樣,我們就可以在vc中通過上述兩種方法向指定控制項中新增右鍵選單了,具體使用哪種方法,則可根據情況而選擇。

vc 指定控制項滑鼠右鍵選單

1 在網上蒐集 vc中向指定控制項新增右鍵彈出選單,談到的方法多數是新建乙個繼承自原來控制項的 mfc控制項類,在該類的 oncontextmenu cwnd pwnd cpoint point 函式中新增右鍵彈出選單的響應,完整 如下 void cmylistbox oncontextmenu c...

VC中實現在指定控制項上彈出右鍵選單

新增選單資源idr popmenu,在資源編輯器中編輯選單第一列,並且為每個選單項新增處理函式。在檢視類中過載wm contextmenu訊息 此訊息在滑鼠右鍵壓下並抬起後觸發 的處理函式oncontextmenu 中新增如下 crect rect 定義矩形區域 getdlgitem 指定控制項的i...

在winform中新增普通右鍵選單

顯示水平滾動條 點選gridcontrol的run designer在彈出的對話方塊中選擇views,將右側屬性視窗中optionsview下的columnautowidth設定成false 可以選擇多行 點選gridcontrol的run designer在彈出的對話方塊中選擇views,將右側屬...