7 用MFC ClassWizard为按钮添加BN_CLICKED消息映射,并增加下列代码: void CKechengDlg::OnButton1() {
UpdateData(); if (m_list.FindString(-1,m_score)==LB_ERR) m_list.AddString(m_score); else MessageBox(\该课程已选\}
void CKechengDlg::OnButton2() { }
m_list.DeleteString(m_list.GetCurSel());
void CKechengDlg::OnButton3() {
m_list.ResetContent(); }
8 编译运行并测试。
六、实验运行结果
写出程序的运行结果。
实验九:常用控件(4)
一、实验目的与要求
(1)创建一个默认的对话框应用程序Ex_Ctrls,如图7.1所示。 (2)设计一个如图7.2所示的“课程信息”对话框。
图7.1 Ex_Ctrls对话框
图7.2 “课程信息”对话框
20
(3)实现功能:单击图7.1中的“课程信息”按钮,弹出“学生基本信息”对话框,单击“添加”按钮,对话框内容显示在图7.1中的列表框中。
二、实验类型
验证型
三、实验原理及说明
掌握静态控件、按钮、编辑框、列表框和组合框控件的使用方法。
四、实验仪器
序 号 1 名 称 计算机 主要用途 编写程序 五、实验内容和步骤
1.启动Visual C++ 6.0
打开计算机,启动Visual C++ 6.0系统。 2.创建一个默认的对话框应用程序Ex_Ctrls
① 选择“文件”→“新建”菜单,在弹出的“新建”对话框中选择“工程”页面,选择MFC AppWizard(exe),在工程框中输入Ex_Ctrls,并将工程文件夹定位到“…\\Visual C++程序\\实验\\实验6”。
② 单击“确定”按钮,在出现的Step 1对话框中选择“基本对话(框)”应用程序类型,单击“完成”按钮。
③ 在对话框编辑器中,单击对话框工具栏上的切换网格按钮对话框标题改为“使用控件”。
④ 调整对话框的大小,删除对话框中间的“TODO: 在这里设置对话控制。”静态文本控件和“确定”按钮控件,将“取消”按钮标题改为“退出”,并移至对话框的下方。
⑤ 向对话框中添加组框(Group)控件,标题设为“添加”,然后调整其大小和位置。
⑥ 添加一个按钮,标题设为“课程信息”,ID设为IDC_BUTTON_COURSE。 ⑦ 添加一个列表框,取其默认ID号,去掉Sort风格属性。 3.添加并设计“课程信息”对话框
① 按Ctrl+R快捷键,弹出“插入资源”对话框,在资源类型列表中选择Dialog,单击“新建”按钮。
② 将该对话框资源的ID设为IDD_COURSE,标题设为“课程信息”,字体设为“宋体,9号”。
③ 将OK和Cancel按钮的标题改为“添加”和“取消”。
④ 打开对话框网格,参看图7.2的控件布局,为对话框添加如表7.1所示的一些控件。
表7.1 课程信息对话框添加的控件
添加的控件 编辑框(课程号) 编辑框(课程名称) 组合框(所属专业) 组合框(课程类型) 编辑框(开课学期) ID号 IDC_EDIT_COURSENO IDC_EDIT_COURSENAME IDC_COMBO_SPECIAL IDC_COMBO_TYPE IDC_EDIT_OPEN 标 题 —— —— —— —— —— 默认 默认 默认 默认 默认 其 他 属 性 ,显示对话框网格,将
21
旋转按钮 编辑框(课时数) 编辑框(学分) IDC_SPIN1 IDC_EDIT_COURSEHOURS IDC_EDIT_CREDIT —— —— —— Auto buddy、Set buddy integer、Right对齐,其余默认 默认 默认 ⑤ 右击添加的课程类型的组合框控件,从弹出的快捷菜单中选择“属性”命令,将其
属性对话框切换到Data页面,直接输入内容,输入一行后按Ctrl+Return键添加另一行。结果如图7.3所示。
图7.3 课程类型组合框内容输入
⑥ 按Ctrl+W快捷键或双击对话框资源模板的空白处,为IDD_COURSE创建一个对话框CCourseDlg。
⑦ 打开ClassWizard的Member Variables页面,看Class name是否是CCourseDlg,选中所需的控件ID号,双击鼠标。依次为表7.2控件增加成员变量。
表7.2 控件变量
控件ID号 IDC_EDIT_COURSENO IDC_EDIT_COURSENAME IDC_COMBO_SPECIAL IDC_COMBO_SPECIAL IDC_COMBO_TYPE IDC_EDIT_OPEN IDC_SPIN1 IDC_EDIT_COURSEHOURS IDC_EDIT_CREDIT 变量类别 Value Value Value Control Value Value Control Value Value 变量类型 CString CString CString CComboBox CString BYTE CSpinButtonCtrl int float 变量名 m_strNO m_strName m_strSpecial m_comboSpecial m_strType m_nOpen m_spinOpen m_nHours m_fCredit —— —— 范围和大小 4.添加CCourseDlg类代码
① 用MFC ClassWizard为CCourseDlg类添加WM_INITDIALOG消息映射,并添加下列初始化代码:
BOOL CCourseDlg::OnInitDialog() {
CDialog::OnInitDialog(); m_spinOpen.SetRange( 1, 8 ); m_nHours = 60; m_fCredit = 2.0; m_nOpen = 1;
m_strType = \专修\
// 这里对专业组合框进行初如化
m_comboSpecial.AddString( \机械工程及其自动化\m_comboSpecial.AddString( \电气工程及其自动化\m_strSpecial = \机械工程及其自动化\
22
}
UpdateData(FALSE); return TRUE; // return TRUE unless you set the focus to a control
② 用MFC ClassWizard为按钮IDOK添加BN_CLICKED的消息映射,并增加下列
代码:
void CCourseDlg::OnOK() { }
UpdateData();
m_strNO.TrimLeft(); if (m_strNO.IsEmpty()) { MessageBox(\课程号不能为空!\}
m_strName.TrimLeft();
if (m_strName.IsEmpty()) { MessageBox(\课程名称不能为空!\ }
CDialog::OnOK();
return;
return;
5.添加CEx_CtrlsDlg程序代码
① 按Ctrl+W快捷键,打开MFC ClassWizard对话框,为列表框控件IDC_LIST1添加控件变量m_List,类型为CListBox。
② 用MFC ClassWizard为按钮IDC_BUTTON_COURSE添加BN_CLICKED消息映射,并添加下列代码:
void CEx_CtrlsDlg::OnButtonCourse() { }
CCourseDlg dlg;
if (IDOK != dlg.DoModal()) return; // 清除列表框原来的显示内容
while(m_List.GetCount()!=0) m_List.DeleteString(0); m_List.AddString( \课 程 号:\m_List.AddString( \课程名称:\m_List.AddString( \所属专业:\m_List.AddString( \课程类型:\CString str;
str.Format(\开课学期:%d\m_List.AddString( str );
str.Format(\课 时 数:%d\m_List.AddString( str );
str.Format(\学 分:%4.1f\m_List.AddString( str );
③ 在Ex_CtrlsDlg.cpp文件的前面添加CInputDlg的头文件包含:
#include \#include \
④ 编译运行并测试。
23
六、实验运行结果
写出程序的运行结果。
实验十 :菜单、工具栏和状态栏
一、实验目的与要求
(1)创建一个单文档应用程序Ex_SDI。在“查看”菜单下添加一个子菜单“鼠标位置”,
ID为ID_VIEW_MOUSE,当选择该菜单命令后,鼠标当前的位置显示到状态栏上,
同时该菜单项呈选中状态。再次选择该菜单命令,状态栏不再显示当前鼠标位置,同时该菜单项的选中状态被去除。
(2)在工具栏上添加并设计一个工具按钮图标,使该按钮和ID_VIEW_MOUSE菜单命令联动,并添加一个快捷键Ctrl+M和该菜单命令联动。
(3)在窗口客户区中右击鼠标,弹出快捷菜单,显示主菜单“查看”中的菜单命令。结
果如图10.1所示。
图10.1 Ex_SDI运行结果
二、实验类型
验证型
三、实验原理及说明
掌握菜单、工具栏、状态栏的创建方法。
四、实验仪器
序 号 1 名 称 计算机 主要用途 编写程序 五、实验内容和步骤
1.启动Visual C++ 6.0
打开计算机,启动Visual C++ 6.0系统。
24