对话框程序设计
来源:互联网 发布:逆波兰式 java 编辑:程序博客网 时间:2024/06/06 02:54
对话框程序设计
实验目的和要求
(1)创建一个默认的对话框应用程序Ex_Ctrls,如图2.1所示。
(2)设计一个如图2.2所示的“课程信息”对话框。
(3)实现功能:单击图2.1中的“课程信息”按钮,弹出“学生基本信息”对话框,单击“添加”按钮,对话框内容显示在图2.1中的列表框中。
实验准备和说明
(1)具备知识:静态控件、按钮、编辑框、旋转按钮控件、列表框和组合框控件。
(2)创建本次实验工作文件夹“…\实验\实验2”。
实验内容和步骤
1.启动Visual C++ 6.0
打开计算机,启动Visual C++ 6.0系统。
2.创建一个默认的对话框应用程序Ex_Ctrls
①选择“文件”→“新建”菜单,在弹出的“新建”对话框中选择“工程”页面,选择MFC AppWizard(exe),在工程框中输入Ex_Ctrls,并将工程文件夹定位到“…\实验\实验2”。
②单击“确定”按钮,在出现的Step 1对话框中选择“基本对话(框)”应用程序类型,单击“完成”按钮。
③在对话框编辑器中,单击对话框工具栏上的切换网格按钮,显示对话框网格,将对话框标题改为“使用控件”。
④调整对话框的大小,删除对话框中间的“TODO:在这里设置对话控制。”静态文本控件和“确定”按钮控件,将“取消”按钮标题改为“退出”,并移至对话框的下方。
⑤向对话框中添加组框(Group)控件,标题设为“添加”,然后调整其大小和位置。
⑥ 添加一个按钮,标题设为“课程信息”,ID设为IDC_BUTTON_COURSE。
⑦添加一个列表框,取其默认ID号,去掉Sort风格属性。
3.添加并设计“课程信息”对话框
①按Ctrl+R快捷键,弹出“插入资源”对话框,在资源类型列表中选择Dialog,单击“新建”按钮。
②将该对话框资源的ID设为IDD_COURSE,标题设为“课程信息”,字体设为“宋体,9号”。
③将OK和Cancel按钮的标题改为“添加”和“取消”。
④打开对话框网格,参看图2.2的控件布局,为对话框添加如表2.1所示的一些控件。
表2.1 课程信息对话框添加的控件
添加的控件
ID号
标 题
其他属性
编辑框(课程号)
IDC_EDIT_COURSENO
——
默认
编辑框(课程名称)
IDC_EDIT_COURSENAME
——
默认
组合框(所属专业)
IDC_COMBO_SPECIAL
——
默认
组合框(课程类型)
IDC_COMBO_TYPE
——
默认
编辑框(开课学期)
IDC_EDIT_OPEN
——
默认
旋转按钮
IDC_SPIN1
——
Auto buddy、Set buddy integer、Right对齐,其余默认
编辑框(课时数)
IDC_EDIT_COURSEHOURS
——
默认
编辑框(学分)
IDC_EDIT_CREDIT
——
默认
⑤右击添加的课程类型的组合框控件,从弹出的快捷菜单中选择“属性”命令,将其属性对话框切换到Data页面,直接输入内容,输入一行后按Ctrl+Return键添加另一行。
⑥按Ctrl+W快捷键或双击对话框资源模板的空白处,为IDD_COURSE创建一个对话框CCourseDlg。
⑦ 打开ClassWizard的Member Variables页面,看Class name是否是CCourseDlg,选中所需的控件ID号,双击鼠标。依次为表2.2控件增加成员变量。
表2.2 控件变量
控件ID号
变量类别
变量类型
变量名
范围和大小
IDC_EDIT_COURSENO
Value
CString
m_strNO
IDC_EDIT_COURSENAME
Value
CString
m_strName
IDC_COMBO_SPECIAL
Value
CString
m_strSpecial
IDC_COMBO_SPECIAL
Control
CComboBox
m_comboSpecial
IDC_COMBO_TYPE
Value
CString
m_strType
IDC_EDIT_OPEN
Value
BYTE
m_nOpen
IDC_SPIN1
Control
CSpinButtonCtrl
m_spinOpen
IDC_EDIT_COURSEHOURS
Value
int
m_nHours
IDC_EDIT_CREDIT
Value
float
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 = "软件工程";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("课程号不能为空!");return;}m_strName.TrimLeft();if (m_strName.IsEmpty()){MessageBox("课程名称不能为空!");return;}CDialog::OnOK();}
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( "课 程 号:"+dlg.m_strNO);m_List.AddString( "课程名称:"+dlg.m_strName);m_List.AddString( "所属专业:"+dlg.m_strSpecial);m_List.AddString( "课程类型:"+dlg.m_strType);CString str;str.Format("开课学期:%d", dlg.m_nOpen );m_List.AddString( str );str.Format("课 时 数:%d", dlg.m_nHours );m_List.AddString( str );str.Format("学 分:%4.1f", dlg.m_fCredit);m_List.AddString( str );}
③ 在Ex_CtrlsDlg.cpp文件的前面添加CInputDlg的头文件包含:
#include "Ex_CtrlsDlg.h"#include "CourseDlg.h"
④编译运行并测试。
- 对话框程序设计
- 对话框程序设计之显示对话框
- Windows程序设计之对话框
- 1.mfc对话框程序设计
- 《Windows程序设计》对话框1
- 《Windows程序设计》之对话框
- C++语言 对话框程序设计
- MFC对话框程序设计笔记
- MFC 对话框程序设计
- Windows程序设计-通用对话框
- 《Windows》程序设计之对话框3
- 《Windows程序设计》之非模态对话框
- 《Windows程序设计》之公用对话框
- Windows程序设计 非模态对话框 HEX
- Windows程序设计-模态对话框和非模态对话框
- windows程序设计之对话框简介1
- C#程序设计(二十四)----打开对话框
- C#程序设计(二十五)----颜色对话框
- 将博客搬至CSDN
- week-13
- 对Spring进行了总体上的说明,有益于建立对Spring的总体把握和认识。
- sql注入文章阅读笔记(一)
- 为什么使用指针
- 对话框程序设计
- 39.零碎
- Ehcache 页面缓存
- 安卓培训第二天---简单的线性布局还有彩信发送器
- pat4-06 Data_sturcture 搜索树判断
- 栈 和 堆
- vm install kali
- 在网站发布前,开发者需要关注有许多的技术细节
- 5yue20ri