MFC基於對話方塊——右鍵彈出選單,並響應函式。 1、新建一個選單資源,比如把選單的ID號為IDR_MENU1。 2、在ClassWizard中 void CArcSoft_EffectDlg::OnRButtonDown(UINT nFlags, CPoint point) {// TODO: Add your message handler code here and/or call default CMenu menu; //定義下面要用到的cmenu物件 menu.LoadMenu(IDR_MENU1); //裝載自定義的右鍵選單; CMenu *pContextMenu=menu.GetSubMenu(0); //獲取第一個彈出選單,所以第一個選單必須有子選單; CPoint point1;//定義一個用於確定游標位置的位置; GetCursorPos(&point1);//獲取當前游標的位置,以便使得選單可以跟隨游標 pContextMenu->TrackPopupMenu(TPM_LEFTALIGN|TPM_RIGHTBUTTON,point1.x,point1.y,AfxGetMainWnd()); //在指定位置顯示彈出選單; CDialog::OnRButtonDown(nFlags, point1)}; 這時,當右鍵點選對話方塊,就可以將選單調出來了,如何響應選單項有如下操作: 3、在資源檢視中右鍵單擊選單項,建立類嚮導(ClassWizard),此時會彈出一個對話方塊,點選第二個,加入到已存在的類,按確定。 4、在資源檢視中為選單中的每一項建立類嚮導,並新增Command響應函式,然後在這個函式中加入語句就可以啦。 ON_COMMAND(ID_COPY, OnCopy)//加Command響應函式,自動出現的灰色語句 void CArcSoft_EffectDlg::OnCopy() {// TODO: Add your command handler code here MessageBox("複製成功!"); MFC文件的選單欄中新增一個command響應函式 基於CFormView的應用程式,經常會在選單欄中新增一個按鈕,點選該按鈕時,會彈出一個對話方塊~~ 具體實現方式如下 1.新建一個對話方塊資源,同時新建一個對話方塊類和該資源對應,舍對話方塊類名為CTestDialog; 2.在資源檢視中找到Menu 這個資料夾,雙擊裡面的檔案IDR_MAINFRAME,在這裡可以新增自己想要的選單,也可把原來的【檔案】、【編輯】等選單給刪掉~~ 新增選單的方法:右擊右側空白區域,選擇properties,彈出的對話方塊中,把pop_up勾選掉,新增一個ID和CAPTION,設ID為ID_MYTEST,caption|為【測試】 (要注意的是,最好選擇View類,而不是Frame類或其他類) 3.Ctrl+W彈出類嚮導,message maps中的class name 選擇為View類, 從Object IDs中找到我們上一步設定的ID_MYTEST,右側的message選擇Command命令,新增一個命令響應函式; 4.在該函式中新增 CTestDialog dlg; dlg.DoModal(); 5.對應的選單項新增WM_COMMAND訊息,在命令響應函式中DoModal/Create/ShowWindow()你的對話方塊即可。 6.訊息對映: ON_COMMAND(選單編號,處理函式) .h public: 處理函式 .cpp 處理函式 { CDialog dc; dc.domodal(); } 彈出非模態對話方塊的方法: (1)用類嚮導給選單欄中選單新增一個響應函式 (2) 在標頭檔案中加入 #include "Dlg.h" public: CDlg *Dlg; (3)在程式碼中加入 Dlg=new CDlg(this); Dlg->Create(IDD_DIALOG1); // IDD_DIALOG1為對應的選單欄中那個按鈕的ID Dlg->ShowWindow(SW_RESTORE);
MFC基於對話方塊——右鍵彈出選單,並響應函式。 1、新建一個選單資源,比如把選單的ID號為IDR_MENU1。 2、在ClassWizard中 void CArcSoft_EffectDlg::OnRButtonDown(UINT nFlags, CPoint point) {// TODO: Add your message handler code here and/or call default CMenu menu; //定義下面要用到的cmenu物件 menu.LoadMenu(IDR_MENU1); //裝載自定義的右鍵選單; CMenu *pContextMenu=menu.GetSubMenu(0); //獲取第一個彈出選單,所以第一個選單必須有子選單; CPoint point1;//定義一個用於確定游標位置的位置; GetCursorPos(&point1);//獲取當前游標的位置,以便使得選單可以跟隨游標 pContextMenu->TrackPopupMenu(TPM_LEFTALIGN|TPM_RIGHTBUTTON,point1.x,point1.y,AfxGetMainWnd()); //在指定位置顯示彈出選單; CDialog::OnRButtonDown(nFlags, point1)}; 這時,當右鍵點選對話方塊,就可以將選單調出來了,如何響應選單項有如下操作: 3、在資源檢視中右鍵單擊選單項,建立類嚮導(ClassWizard),此時會彈出一個對話方塊,點選第二個,加入到已存在的類,按確定。 4、在資源檢視中為選單中的每一項建立類嚮導,並新增Command響應函式,然後在這個函式中加入語句就可以啦。 ON_COMMAND(ID_COPY, OnCopy)//加Command響應函式,自動出現的灰色語句 void CArcSoft_EffectDlg::OnCopy() {// TODO: Add your command handler code here MessageBox("複製成功!"); MFC文件的選單欄中新增一個command響應函式 基於CFormView的應用程式,經常會在選單欄中新增一個按鈕,點選該按鈕時,會彈出一個對話方塊~~ 具體實現方式如下 1.新建一個對話方塊資源,同時新建一個對話方塊類和該資源對應,舍對話方塊類名為CTestDialog; 2.在資源檢視中找到Menu 這個資料夾,雙擊裡面的檔案IDR_MAINFRAME,在這裡可以新增自己想要的選單,也可把原來的【檔案】、【編輯】等選單給刪掉~~ 新增選單的方法:右擊右側空白區域,選擇properties,彈出的對話方塊中,把pop_up勾選掉,新增一個ID和CAPTION,設ID為ID_MYTEST,caption|為【測試】 (要注意的是,最好選擇View類,而不是Frame類或其他類) 3.Ctrl+W彈出類嚮導,message maps中的class name 選擇為View類, 從Object IDs中找到我們上一步設定的ID_MYTEST,右側的message選擇Command命令,新增一個命令響應函式; 4.在該函式中新增 CTestDialog dlg; dlg.DoModal(); 5.對應的選單項新增WM_COMMAND訊息,在命令響應函式中DoModal/Create/ShowWindow()你的對話方塊即可。 6.訊息對映: ON_COMMAND(選單編號,處理函式) .h public: 處理函式 .cpp 處理函式 { CDialog dc; dc.domodal(); } 彈出非模態對話方塊的方法: (1)用類嚮導給選單欄中選單新增一個響應函式 (2) 在標頭檔案中加入 #include "Dlg.h" public: CDlg *Dlg; (3)在程式碼中加入 Dlg=new CDlg(this); Dlg->Create(IDD_DIALOG1); // IDD_DIALOG1為對應的選單欄中那個按鈕的ID Dlg->ShowWindow(SW_RESTORE);