MFC中对话框的操作
①在菜單欄上加一個按鈕(Dialog),點擊彈出對話框。
1.新建一個MFC項目,這里命名為sr,首先創建一個新的對話框,在資源視圖里找到Dialog右鍵,Insert Dialog.出現新的對話框編輯界面。可以看到有兩個按鈕,OK和Cancel,自帶,前者的ID 為 IDOK(后面要用到),后者的ID為IDCANCEL,查看ID的方法,在按鈕上鼠標右鍵,選擇Properties, 我們可以對對話框進行編輯,移動按鈕的位置,或添加元件,如圖:
2.雙擊對話框的空白處,為它添加類,選擇Create a new class,? Name這里寫為 dialog(隨便起), OK,OK.
3.創建菜單按鈕。找到資源視圖中的Menu,雙擊IDR_MAINFRAME,在幫助的后邊空白處雙擊,出現對話框,Caption:? 填寫Dialog(名字),下面的Pop_up前面的對號取消選擇(沒有下級菜單)。
4.在創建的按鈕Dialog右鍵,ClassWizard,為它添加消息。
先點擊add function后點擊edit code。
5. 在void CSrView::OnMenuitem32771() 函數中寫代碼:
?dialog? my;//創建對象
?????? my.DoModal();//彈出對話框、
編譯運行,有錯,dialog不認識,在 View類中加入頭文件.? #include “dialog.h”,編譯運行,點擊菜單上的Dialog按鈕,彈出剛才新建的對話框。
如果想當用戶點擊點擊按鈕OK后,彈出提示框。
可以把剛才的代碼改成下面:
dialog? my;
?????? if(my.DoModal()==IDOK)
?????? {
????????????? MessageBox("hello");
?????? }
②在對話框中添加學生姓名信息,用戶輸入,點擊OK后,學生姓名在窗口面板上顯示。
1.?????? 回到資源視圖,找到剛才建立的對話框編輯頁面,畫出如下效果:
?
元件的位置隨便改,按鍵盤上的上下左右也可以移動。
2.為編輯框Edit添加成員變量,右鍵,CLASSWIZARD,選擇Member Variables,雙擊IDC_EDIT1(這是剛才編輯框的ID),Member variable name?? m_strName??? Category:? Value? Variable type?? OK. OK
3.在文件視圖中找到 srView.h? protected里面加入變量 CString strName;在CSrView構造函數中對它初始化。
?
?
4.在void CSrView::OnMenuitem32771()函數中加入下面代碼:
strName=my.m_strName;
????????????? Invalidate();
5,接下來讓它顯示。找到OnDraw函數,加入代碼:? pDC->TextOut(20,20,strName);
6.編譯運行,輸入姓名,點擊OK,屏幕上顯示輸入的姓名。
③上面用的是直接傳值,Edit編輯框的成員變量屬性為 value ,下面用另一種方法(控件類型)增加一個編輯框,輸入學號,并在屏幕上顯示。
1.?????? 在原來的對話框編輯界面,畫出如下:
?
2.第二個編輯框右鍵,class wizard, Member Variables ,雙擊IDC_EDIT2,name: m_EditID,? Category:? 選擇Control(控件類型),OK。OK。
1.?????? 在dialog.h里面,定義變量,public: CString strID;
3.對OK按鈕添加消息,雙擊對話框編輯界面的OK按鈕,進入到void dialog::OnOK();
寫下面代碼:?????? m_EditID.GetWindowText(strID);
?????? 在void CSrView::OnMenuitem32771()里面strName=my.m_strName;該條代碼改為:
strName=my.m_strName+" "+my.strID;
4.?????? 編譯,運行,點擊菜單按鈕Dialog輸入姓名和學號,點擊OK,信息在屏幕上顯示。
5.?????? 還有兩種方法,重點改on oK函數里面的代碼:
如下:
為了方便,通常用第三種方法,其中 IDC_EDIT2是第二個編輯框的ID。
④編輯框內容的初始化
1.對類dialog添加消息句柄VM_INITDIALOG,進入函數BOOL CAboutDlg::OnInitDialog()中。
2.?????? 在函數中添加下面代碼:
?????? CWnd *pw=GetDlgItem(IDC_EDIT2);
?????? pw->SetWindowText("201258503201");
?????? m_strName="sun";
?????? this->UpdateData(false);
?
編譯,運行,發現對話框中有數據了。
如下:
?
轉載于:https://www.cnblogs.com/sr1993/p/3697845.html
總結
以上是生活随笔為你收集整理的MFC中对话框的操作的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 满十六周岁能办银行卡吗 银行卡满了16岁
- 下一篇: 欠费停机会影响征信吗 手机欠费上不上征信