【Ex_Ctrl6SDI】时间日期控件使用示例在学生信息管理系统中,往往需要设计一个学生基本信息对话框来添加和修改学生基本信息,如图。
[例Ex_Ctrl6SDI] 创建并使用学生基本信息对话框 学生基本信息对话框操作步骤: 1. 添加并设计对话框 2. 完善CStuInfoDLG类的代码 3. 调用对话框
1.“添加并设计对话框”的步骤: 1) 构造单文档应用程序框架 2) 添加一个新对话框“学生基本信息”,创建该对话框的类 3) 修改按钮 4) 添加控件 2.完善CStuInfoDLG类的代码 1) 2) 3) 4) 5) 6) 3.调用对话框 1) 2) 3) 4) 添加菜单项“测试”及“学生基本信息” 为菜单项消息映射并添加代码 在主框架的CPP文件中添加文件包含 编译运行程序 为控件增加控件变量 为新类增加一个普通变量 添加初始化函数,并添加初始化代码 为单选按钮增加映射和代码 为另一个单选按钮增加映射和代码 为本对话框的确定按钮添加映射和代码 1.添加并设计对话框 (1) 用MFC AppWizard(exe)创建一个默认的单文档应用程序Ex_Ctrl6SDI。 (2) 向应用程序中添加一个对话框资源IDD_STUINFO,标题定为“学生基本信息”,字体
设为“宋体,9号”,创建此对话框类为CStuInfoDlg。将[OK]和[Cancel]按钮的标题改为“确定”和“取消”。
(4) 打开对话框网格,参看图的控件布局,为对话框添加 如表所示的一些控件。 添加的控件 编辑框(姓名) 编辑框(学号) 单选按钮(男) 单选按钮(女) 日期时间控件(出生年月) 组合框(专业) ID号 IDC_EDIT_NAME IDC_EDIT_NO IDC_RADIO_MALE IDC_RADIO_FEMALE 标题 —— —— 男 女 其他属性 默认 默认 默认 默认 默认 默认 IDC_DATETIMEPICKER1 —— IDC_COMBO_SPECIAL —— 2.完善CStuInfoDlg类代码 (1)打开ClassWizard的Member Variables页面,看看Class name是否是CStuInfoDlg,选中所需的控件ID号,双击鼠标。依次为下列控件增加成员变量。如表所示。 控件ID号 IDC_EDIT_NAME IDC_EDIT_NO IDC_COMBO_SPECIAL IDC_COMBO_SPECIAL 变量类别 Value Value Control Value 变量类型 Cstring Cstring Ctime CcomboBox Cstring 变量名 m_strName m_strNo m_tBirth m_strSpecial 范围和大小 10 10 —— IDC_DATETIMEPICKER1 Value m_comboSpecial —— 2)为CStuInfoDlg类添加一个BOOL型成员变量m_bMale,并在CStuInfoDlg类设置该变量的初始值。如下面的代码:
CStuInfoDlg::CStuInfoDlg(CWnd* pParent /*=NULL*/) : CDialog(CStuInfoDlg::IDD, pParent) {
m_bMale = FALSE;
//{{AFX_DATA_INIT(CStuInfoDlg) ? //}}AFX_DATA_INIT }
代码中,//{{AFX_DATA_INIT(CStuInfoDlg)和//}}AFX_DATA_INIT之间的代码是控件变量的初始化代码,并由MFC ClassWizard自动管理。
(3)用MFC ClassWizard为CStuInfoDlg类添加WM_INITDIALOG消息映射,并添加下列初始化代码:BOOL CStuInfoDlg::OnInitDialog() {
CDialog::OnInitDialog(); // 设置单选按钮初始选中状态 if (!m_bMale)
CheckRadioButton(IDC_RADIO_MALE,IDC_RADIO_FEMALE,IDC_RADIO_FEMALE); else
CheckRadioButton(IDC_RADIO_MALE, IDC_RADIO_FEMALE, IDC_RADIO_MALE); // 这里对专业组合框进行初如化
m_tBirth = CTime(1986, 1, 1, 0, 0, 0); // 对出生年月初始化
UpdateData(FALSE);
return TRUE; // return TRUE unless you set the focus to a control
(4)用MFC ClassWizard为单选按钮IDC_RADIO_MALE添加BN_CLICKED的消息映射,并增加下列代码:
void CStuInfoDlg::OnRadioMale() {
m_bMale = TRUE; }
(5)用MFC ClassWizard为单选按钮IDC_RADIO_FEMALE添加BN_CLICKED的消息映射,并增加下列代码:
void CStuInfoDlg::OnRadioFemale() {
m_bMale = FALSE; }
(6)用MFC ClassWizard为按钮IDOK添加BN_CLICKED的 消息映射,并增加下列代码: void CStuInfoDlg::OnOK() {
UpdateData();
m_strName.TrimLeft(); m_strNo.TrimLeft();
if (m_strName.IsEmpty())
MessageBox(\必须要有姓名!\else if (m_strNo.IsEmpty())
MessageBox(\必须要有学号!\else
CDialog::OnOK(); }
3.调用对话框 (1)打开Ex_Ctrl6SDI单文档应用程序的菜单资源,添加顶 层菜单项“测试(&T)”,在其下添加一个菜单项“学生基本
信息(&U)”,ID为ID_TEST_STUINFO。(2)用MFC ClassWizard为CMainFrame类添加菜单项ID_TEST_STUINFO的COMMAND消息映射,取默认的映射函数 。并添加下列代码:
(3)在文件MainFrm.cpp的前面添加CStuInfoDlg类的头文件包含: #include \
#include \UpdateData(); m_strName.TrimLeft(); m_strNo.TrimLeft();
if (m_strName.IsEmpty())
MessageBox(\必须要有姓名!\else if (m_strNo.IsEmpty())
MessageBox(\必须要有学号!\else
(4) 编译运行并测试。
百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库VC++ 时间日期控件控件程序编程步骤(P110)在线全文阅读。
相关推荐: