MFC實驗報告東北大學_第1頁
MFC實驗報告東北大學_第2頁
MFC實驗報告東北大學_第3頁
MFC實驗報告東北大學_第4頁
MFC實驗報告東北大學_第5頁
已閱讀5頁,還剩4頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

東北大學軟件學院實驗報告第1頁共9頁MFC可視化程序設計實驗報告課程名稱:MFC可視化程序設計姓名:實驗名稱:MFC可視化程序設計學號:任課教師:馬毅專業:信息安全指導教師:馬毅班級:班實驗成績:批閱教師簽字:

一、實驗目的加深理解Windows程序設計的基本概念。基于單文檔的應用程序的創建學會對話框的創建二、實驗環境 MicrosoftWindowsXP MicrosoftVisualC++6.三、實驗內容和預習實驗一:彈出對話框,運用DoModal()函數;實驗二:彈出非模態對話框,聲明指針,運用Create(),ShowWindow()函數彈出非模態對話框;實驗三:查找文件;運用CFileDialog(),GetPathName()函數;實驗四:網上調查,添加Button,分組,在OKButton上添加消息映射,運用GetButton()函數,在窗體中添加缺省項;實驗五:計算器,添加ExitButton,在OKButton中修改屬性,在修改后添加消息映射;在窗體ClassWizard導入類中選擇MemberVariable中添加controlEdit;然后在ONOK中寫入函數;實驗六:圖標運用GetCheck()函數,裝載圖標,在子菜單中顯示出來;四、實驗過程與分析實驗一:彈出對話框關鍵代碼:Cfrista;//定義對話框類的對象 if(a.DoModal()==IDOK)//clickOKButton MessageBox("Areyousureexit?");//彈出語句編譯錯誤,沒有聲明頭文件#include“frist.h”實驗二:創建一個非模態的單文檔窗口步驟:①步驟和(一)差不多只是代碼不同,在堆中開辟內存定義一個指針,指向彈出對話框的那個類。②運用Create(),和ShowWindow();函數分別創建和顯示和出來然后用DestroyWindow();函數,deletethis;關鍵代碼: Csecond*p; p=newCsecond(); p->Create(IDD_DIALOG2);//創建對話框 p->ShowWindow(SW_NORMAL);//顯示出對話框p=newCsecond();構造函數調用錯了實驗三:查找文件運用CFileDialog(),和GetPathName()函數;關鍵代碼: CStringfilter;filter="文本文件(*.txt)|*.txt|c++文件(*.h,*.cpp)|*.h;*.cpp||";CFileDialogdlg(TRUE,NULL,NULL,OFN_HIDEREADONLY|OFN_ALLOWMULTISELECT,filter);//建立文件對話框 if(dlg.DoModal()==IDOK) { CStringstr; str=dlg.GetPathName();//獲得文件名 AfxMessageBox(str);//輸出文件名 }沒有輸出路徑,函數運用了GetFileName();應該運用的是GetPathName()函數。實驗四:網絡調查:(老師您提問我,如何在已有的組里在再添加Button項,程序可執行?下面是我改后的代碼;其中IDC_RADIO7和IDC_RADIO8是后添加的)①添加Button,分組;在OKButton上添加消息映射,運用GetButton()函數,在窗體中添加缺省項;關鍵代碼:CStringstrTemp=""; CStringstrText=""; intiID; iID=GetCheckedRadioButton(IDC_RADIO1,IDC_RADIO3);//檢查3個中哪一個被選中 if(iID==0) { iID=IDC_RADIO7; }//如果未選中將iID的值賦為IDC_RADIO7 GetDlgItem(iID)->GetWindowText(strTemp);//得到RADIO的內容 strText+=strTemp+'\n'; iID=GetCheckedRadioButton(IDC_RADIO4,IDC_RADIO6); if(iID==0) { iID=IDC_RADIO8; } GetDlgItem(iID)->GetWindowText(strTemp); strText+=strTemp+'\n'; intiIDs[4]={IDC_CHECK1,IDC_CHECK2,IDC_CHECK3}; CButton*p; for(inti=0;i<3;i++)//將四個中的選中那個show出來 { p=(CButton*)GetDlgItem(iIDs[i]);//強制類型轉換 if(p->GetCheck())//把被選中的show出來 { p->GetWindowText(strTemp); strText+=strTemp+""; } }設置默認: MessageBox(strText);//show CheckRadioButton(IDC_RADIO1,IDC_RADIO7,IDC_RADIO7);//能選中的有RADIO1,2,3和RADIO7,RADIO7是默認的 CheckRadioButton(IDC_RADIO4,IDC_RADIO8,IDC_RADIO8); CButton*p=(CButton*)GetDlgItem(IDC_CHECK2); p->SetCheck(1);故障:現象:第一組沒有默認,分析:1到7是1,2,3加7而不是1,2,3,4,5,6,7;4,5,6是另一組的;問題應該是在設置默認函數時默認設為IDC_RADIO6或5等;實驗五:計算器步驟:添加ExitButton,在OKButton中修改屬性,在修改后添加消息映射;在窗體ClassWizard導入類中選擇MemberVariable中添加controlEdit;然后在ONOK中寫入函數;關鍵代碼: charch1[10]; charch2[10]; charch3[10]; intnum1; m_edit1.GetWindowText(ch1,10);//得到對話框中輸入的數字m_edit2.GetWindowText(ch2,10); num1=atoi(ch1)+atoi(ch2);//轉換成int類型,并做加法 itoa(num1,ch3,10); m_edit3.SetWindowText(ch3);//輸出即在框中顯示出來實驗六:圖標(BITMAP)首先在CMainFrame類中添加屬性bool類型的bCh;然后再構造函數里為bCh賦值為false;為圖標添加command消息映射;并寫入代碼bCh!=bCh;//單擊時圖標變換;接著在為圖標添加UPDATE_COMMAND_UI的消息映射,運用GetCheck()函數,標識選中的圖標,將已有的圖標裝載,在子菜單中顯示出來;五、實驗總結(一)、創建一個單文檔窗口①在Dialog中插入一個對話框然后為對話框建立一個類CFrist②在IDR_MAINFRAME中建一個屬性(子菜單),用它彈出對話框。在子菜單中導入類,增加消息映射,編寫代碼。用DoMoal顯示出來(二)創建一個非模態的單文檔窗口①步驟和(一)差不多只是代碼不同,在堆中開辟內存定義一個指針,指向彈出對話框的那個類。②運用Create(),和ShowWindow();函數分別創建和顯示和出來(三)查找文件①運用CFileDialog(),和GetPathName()函數;返回的文件的位置(路徑);(四)網上調查:①添加Button,分組;②在OKButton上添加消息映射,運用GetButton()函數,在窗體中添加缺省項;(五)計算器:添加ExitButton,在OKButton中修改屬性,在修改后添加消息映射;在窗體ClassWizard導入類中選擇MemberVariable中添加controlEdit;然后在ONOK中寫入函數;計算加法;實驗改進可以在計算減法;(六)圖標:首先在CMainFrame類中添加屬性bool類型的bCh;然后再構造函數里為bCh賦值為false;為圖標添加command消息映射;并寫入代碼bCh!=bCh;//單擊時圖標變換;接著在為圖標添加UPDATE_COMMAND_UI的消息映射,運用GetCheck()函數,標識選中的圖標,將

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論