首頁>Club>
4
回覆列表
  • 1 # 可小小

     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);

  • 中秋節和大豐收的關聯?
  • 三五好友安逸生活文案?