mfc实验报告
东北大学软件学院实验报告 第 1 页 共 6 页 MFC 可视化程序设计 实验报告 课程名称: MFC 可视化程序设计 姓名: 实验名称: MFC 可视化程序设计 学号: 任课教师: 专业: 指导教师: 班级: 实验成绩: 批阅教师签字:东北大学软件学院实验报告 第 2 页 共 6 页 一、实验目的 1.弹出模态与非模态对话框; 2.单选与复选框的运用; 3.加法器; 4.打开文件; 5.标记菜单和缺省菜单; 6.切换新菜单与返回原菜单; 7.让工具栏中的图标映射到菜单选项中; 8.建立新工具栏并调用; 9.设置图片菜单以及添加快捷键。 二、实验环境 操作系统:Windows 7 64 位 开发平台:Microsoft Visual C++6.0 应用程序:MFC AppWizard[] 三、实验内容预习 1.建立模态与非模态对话框。 建立类向导,利用 DoModal 方法弹出模态对话框。声明指针,利用 Create 和 ShowWindow 方法。 2.单选与复选框的运用。3.编写加法器。4.打开.txt 格式文件操作。5.标记菜单与缺省菜单。我将缺省菜单添加的作用为标记菜单。新建菜单项后将 Bitmap 图案加入标记菜单。6.切换新菜单与返回原菜单。 建新菜单,在原菜单中新建“切换至新菜单”选项,在新菜单中新建“返回原菜单”选项7.建立新工具栏并调用。 4、实验过程与分析 1.建立模态与非模态对话框。关键代码: C11 dlg; dlg.DoModal();// 弹出模态对话框 void CMainFrame::OnMenuitem32772() { C22 *p=new C22(); p->Create(IDD_DIALOG2); p->ShowWindow(SW_SHOWNORMAL);//t 弹出非模态对话框 // TODO: Add your command handler code here } 2.单选复选框的运用 新建对话框 属性建立类向导菜单项设置属性 建立类向导Edit Code 东北大学软件学院实验报告 第 3 页 共 6 页 void C11::OnOK() { // TODO: Add extra validation here //CDialog::OnOK();int ID=GetCheckedRadioButton(IDC_RADIO1,IDC_RADIO3);// 获取对话框中单选按钮的 ID CString temp,str; GetDlgItemText(ID,temp); str+=temp+ \n ;ID=GetCheckedRadioButton(IDC_RADIO4,IDC_RADIO6);//获取对话框中单选按钮的 IDGetDlgItemText(ID,temp);//获取按钮的属性名称 str+=temp+ \n ;int iIDs[4]={IDC_CHECK8,IDC_CHECK9,IDC_CHECK10};//获取对话框中复选框的 ID for(int i=0;iGetCheck()==1){ GetDlgItemText(iIDs[i],temp);str+=temp+ \n ; } } MessageBox(str); } 3.加法器 新建对话框 建立类向导菜单项设置属性 建立类向导Edit Codevoid C33::OnOK() { // TODO: Add extra validation here //UpdateData(TRUE); //m_33three=m_33one+m_33tow; //UpdateData(FALSE); //CDialog::OnOK(); char ch1[10],ch2[10],ch3[10]; GetDlgItemText(IDC_EDIT1,ch1,10); GetDlgItemText(IDC_EDIT2,ch2,10); itoa(atoi(ch2)+atoi(ch1),ch3,10); SetDlgItemText(IDC_EDIT3,ch3); } 4.打开文件 设置属性建立类向导Edit Code void CMainFrame::OnMenuitem32773() { CString filter=“ 文本文档(*.txt)|*.txt|C++文件(*.cpp,*.h)|*.cpp;*.h||“; CFileDialog *p=new CFileDialog(TRUE,NULL,NULL,OFN_HIDEREADONLY|OFN_OVERWRITEPROMPT,filter);if(p->DoModal()==IDOK){CString str=p->GetPathName(); MessageBox(str); } // TODO: Add your command handler code here } 5.标记菜单与缺省菜单 标记菜单:菜单项设置属性 建立类向导UPDATE_COMMAND_UIEdit Code建立类向导-- >COMMANDEdit CodeCMainFrame 类定义 bch 变量Edit Code 缺省菜单:菜单项设置属性 建立类向导Edit Code( 简单的弹出对话框)OnCreate ()函数里写东北大学软件学院实验报告 第 4 页 共 6 页 一行代码:GetMenu()->GetSubMenu(4)->SetDefaultItem(ID_MENUITEM32772);//缺省(加粗) 标记菜单: void CMainFrame::OnMenuitem32771() { // TODO: Add your command handler code here //使标记菜单可以被勾上和取消 bch=!bch; } void CMainFrame::OnUpdateMenuitem32771(CUI* pUI) { // TODO: Add your command update UI handler code here pUI->Enable(); if(bch) pUI->SetCheck(); else pUI->SetCheck(0); } 6.设置菜单图标bt1.LoadBitmap(IDB_BITMAP1); bt2.LoadBitmap(IDB_BITMAP2); GetMenu()->GetSubMenu(4)->SetMenuItemBitmaps(0,MF_BYPOSITION, 7.切换新菜单与返回原菜单void CMainFrame::OnMenuUpdte() { // TODO: Add your command handler code here if(m_menuMine.m_hMenu) //判断 m_menuMine 是否加载过资源 m_menuMine.DestroyMenu(); // 删除原来加载的资源 m_menuMine.Loa