本程序为几种控件的综合使用,编写应用程序其主窗口如图所示,标题为Application of SelectBox。在这个窗口中,包含有三个标题分别为Check Box,Radio Box和Combo

课本例9-8。

!!!声明:这个实验结果本人并未作出,编译没有错但是不能运行,只给大家展示一下操作过程。望谅解。

本程序为几种控件的综合使用,编写应用程序其主窗口如图所示,标题为Application of SelectBox。在这个窗口中,包含有三个标题分别为Check Box,Radio Box和Combo Box的组合框,在Check Box组合框中包含有两个复选框data和time,以及Enable、Disable、Show Control和Hide Control四个按钮;在Radio Box组合框中,含有两个自组合框、一个按钮和一个编辑框,子组合框名字分别为Sex Select和Age Range,它们分别包含了一组单选按钮,此外还有一个名字为Show Sex and Age的按钮。在Combo Box组合框中,有一组Course的单选按钮组、一个名字为Record的下拉列表框、一个Show_Combo按钮和一个编辑框。
本例的功能如下。
(1) Check Box 组合框中的控件。
• Date 复选框: 单击Date 复选框,在其下面的编辑框中显示当前的日期,并在复选
框中显示选中标志。
• tim e 复选框: 单击T i me 复选框,在其下面的编辑框中显示当前的系统时间,并在
复选框中显示选中标志。
• disabl e 按钮: 单击Disable 按钮上面两个复选框变成无效,不响应操作,并且复选
框和编辑框都变灰。
• En a ble 按钮:单击Enabl e 按钮,复选框又变成有效,可对其进行操作。
• Hide the C lock Setting 按钮:单击几d e 按钮,隐藏掉复选框和编辑框,使它们不
可见。
• Show Again 按钮:重新显示被隐藏的复选框和编辑框。
(2) Radio Box 组合框中的控件。
• Sex Selecting 子组合框: 在此子组合框中有boy 和girl 单选按钮,单击其中的任
何一项进行性别的选择。
• Age Range 子组合框:在此框中进行年龄段的选择。
• Show the Sex and Age 按钮:单击此命令按钮,在其下面的编辑框中显示一行信
息,报告当前单选按钮的状态。
(3) Combo Box 组合框中的控件。
• Course 子组合框:在此子组合框中有Eng li sh 、Computer 和Nature 三门课的选
项,单击其中的任何一项进行课程科目的选择。
• Record 下拉列表框:在此框中进行成绩的选择。
• Show_Combo 按钮:单击此命令按钮,在其下面的编辑框中显示一行信息,报告
当前单选按钮及下拉列表框的状态。
(4) Exit 按钮。
单击此按钮,退出应用程序。
本程序为几种控件的综合使用,编写应用程序其主窗口如图所示,标题为Application of SelectBox。在这个窗口中,包含有三个标题分别为Check Box,Radio Box和Combo_第1张图片

  1. 新建MFC项目,并选择基于对话框

本程序为几种控件的综合使用,编写应用程序其主窗口如图所示,标题为Application of SelectBox。在这个窗口中,包含有三个标题分别为Check Box,Radio Box和Combo_第2张图片
本程序为几种控件的综合使用,编写应用程序其主窗口如图所示,标题为Application of SelectBox。在这个窗口中,包含有三个标题分别为Check Box,Radio Box和Combo_第3张图片

  1. 点击资源视图-MFCApplication1(这是项目的名字,每个人不一样,记好自己的即可)-MFCApplication1.rc*-Dialog-IDD_MFCApplication1_DLALOG
    在工具箱(可在视图中打开)的对话框编辑器里选择相应控件(基本在红色框内)添加到对话框,用蓝色框内工具进行快速调整(如对齐等)

本程序为几种控件的综合使用,编写应用程序其主窗口如图所示,标题为Application of SelectBox。在这个窗口中,包含有三个标题分别为Check Box,Radio Box和Combo_第4张图片

3.最终图如下图所示。需要注意的是带圆圈的控件必须按下图顺序添加,否则后果我也不清楚
本程序为几种控件的综合使用,编写应用程序其主窗口如图所示,标题为Application of SelectBox。在这个窗口中,包含有三个标题分别为Check Box,Radio Box和Combo_第5张图片
4.由下表(9-34)进行各控件属性设置
本程序为几种控件的综合使用,编写应用程序其主窗口如图所示,标题为Application of SelectBox。在这个窗口中,包含有三个标题分别为Check Box,Radio Box和Combo_第6张图片本程序为几种控件的综合使用,编写应用程序其主窗口如图所示,标题为Application of SelectBox。在这个窗口中,包含有三个标题分别为Check Box,Radio Box和Combo_第7张图片
5.以Date复选框为例子 ,点击控件,在属性中找到Caption和ID按照上图进行修改

  • !!!28个控件每个都要添加,我为了节约时间只加了一个作为示范
    本程序为几种控件的综合使用,编写应用程序其主窗口如图所示,标题为Application of SelectBox。在这个窗口中,包含有三个标题分别为Check Box,Radio Box和Combo_第8张图片

本程序为几种控件的综合使用,编写应用程序其主窗口如图所示,标题为Application of SelectBox。在这个窗口中,包含有三个标题分别为Check Box,Radio Box和Combo_第9张图片
6.由表(表9-35)在控件上右键-添加变量
同样以Date(IDC_DATE_CHECK)为例本程序为几种控件的综合使用,编写应用程序其主窗口如图所示,标题为Application of SelectBox。在这个窗口中,包含有三个标题分别为Check Box,Radio Box和Combo_第10张图片

根据变量类型在类别中选择值或者控件

本程序为几种控件的综合使用,编写应用程序其主窗口如图所示,标题为Application of SelectBox。在这个窗口中,包含有三个标题分别为Check Box,Radio Box和Combo_第11张图片

7.由下表(表9-36)添加消息处理方法

  • 同样以Date复选框(IDC_DATE_CHECK)为例

本程序为几种控件的综合使用,编写应用程序其主窗口如图所示,标题为Application of SelectBox。在这个窗口中,包含有三个标题分别为Check Box,Radio Box和Combo_第12张图片
本程序为几种控件的综合使用,编写应用程序其主窗口如图所示,标题为Application of SelectBox。在这个窗口中,包含有三个标题分别为Check Box,Radio Box和Combo_第13张图片
本程序为几种控件的综合使用,编写应用程序其主窗口如图所示,标题为Application of SelectBox。在这个窗口中,包含有三个标题分别为Check Box,Radio Box和Combo_第14张图片
8.由表(表9-36)给消息函数方法添加具体实现代码
同样以Date复选框为例子
双击Date复选框,本程序为几种控件的综合使用,编写应用程序其主窗口如图所示,标题为Application of SelectBox。在这个窗口中,包含有三个标题分别为Check Box,Radio Box和Combo_第15张图片
9.添加的代码如下

UpdateData(TRUE);
	if (m_DateCheck == TRUE)
	{
		CTime tNow;
		tNow = CTime::GetCurrentTime();
		CString sNow = tNow.Format("% y. %m. % d");
		m_DateEdit.SetSel(0, -1);
		m_DateEdit.ReplaceSel(sNow);
	}
	else
	{
		m_DateEdit.SetSel(0, -1);
		m_DateEdit.ReplaceSel(L"");
	}
	UpdateData(FALSE);

10.其他8个函数的代码如下(时间仓促,手打代码可能出现个别错误)

void CMFCApplication1Dlg::OnBnClickedDateCheck()
{
	// TODO: 在此添加控件通知处理程序代码
	UpdateData(TRUE);
	if (m_DateCheck == TRUE)
	{
		CTime tNow;
		tNow = CTime::GetCurrentTime();
		CString sNow = tNow.Format("% y. %m. % d");
		m_DateEdit.SetSel(0, -1);
		m_DateEdit.ReplaceSel(sNow);
	}
	else
	{
		m_DateEdit.SetSel(0, -1);
		m_DateEdit.ReplaceSel(L"");
	}
	UpdateData(FALSE);
	
}
void CMFCApplication1Dlg::OnBnClickedTimeCheck()
{
	// TODO: 在此添加控件通知处理程序代码
	UpdateData(TRUE);
	if (m_TimeCheck==TRUE)
	{
		CTime tNow;
		tNow = CTime::GetCurrentTime();
		CString sNow = tNow.Format(" %I : %M: %S ");
		m_TimeEdit.SetSel(0, -1);
		m_TimeEdit.ReplaceSel(sNow);
	}
	else
	{
		m_TimeEdit.SetSel(0, -1);
		m_TimeEdit.ReplaceSel(L"");
	}
	
	UpdateData(FALSE);
}

``

void CMFCApplication1Dlg::OnBnClickedEnableButton()
{
	// TODO: 在此添加控件通知处理程序代码
	GetDlgItem(IDC_DATE_CHECK) -> EnableWindow(TRUE);
	GetDlgItem(IDC_TIME_CHECK) -> EnableWindow(TRUE);
	m_DateEdit.EnableWindow(TRUE);
	m_TimeEdit.EnableWindow(TRUE);
}
void CMFCApplication1Dlg::OnBnClickedDisableButton()
{
	// TODO: 在此添加控件通知处理程序代码
	GetDlgItem(IDC_DATE_CHECK) ->EnableWindow(FALSE);
	GetDlgItem(IDC_TIME_CHECK)-> EnableWindow(FALSE);
	m_DateEdit.EnableWindow(FALSE);
	m_TimeEdit.EnableWindow(FALSE);
}
void CMFCApplication1Dlg::OnBnClickedShowButton()
{
	// TODO: 在此添加控件通知处理程序代码
	GetDlgItem(IDC_DATE_CHECK) -> EnableWindow(SW_SHOW);
	GetDlgItem(IDC_TIME_CHECK) -> EnableWindow(SW_SHOW);
	GetDlgItem(IDC_DATE_EDIT)->EnableWindow(SW_SHOW);
	m_DateEdit.ShowWindow(SW_SHOW);
	GetDlgItem(IDC_TIME_EDIT)->EnableWindow(SW_SHOW);
	m_TimeEdit.ShowWindow(SW_SHOW);
}

void CMFCApplication1Dlg::OnBnClickedHideButton()
{
	// TODO: 在此添加控件通知处理程序代码
	GetDlgItem(IDC_DATE_CHECK) -> EnableWindow(SW_HIDE);
	GetDlgItem(IDC_TIME_CHECK) ->EnableWindow(SW_HIDE);
	m_DateEdit.ShowWindow(SW_HIDE);
	m_TimeEdit.ShowWindow(SW_HIDE);
}
void CMFCApplication1Dlg::OnBnClickedShowSexAgeButton()
{
	// TODO: 在此添加控件通知处理程序代码
	TCHAR sEdit[50];
	int iSexRADIO;
	int iAgeRADIO;
	iSexRADIO = GetCheckedRadioButton(IDC_Boy_RADIO, IDC_Girl_RADIO);
	if(iSexRADIO == IDC_Boy_RADIO)
		_tcscpy(sEdit, L"The boy ' s age is ");
	if (iSexRADIO == IDC_Girl_RADIO)
		_tcscpy(sEdit, L"The girl ' s age is");
	iAgeRADIO = GetCheckedRadioButton(IDC_Age1_RADIO, IDC_Age3_RADIO);
	if (iAgeRADIO ==IDC_Age1_RADIO)
		_tcscat(sEdit, L" great than 20");
	if (iAgeRADIO == IDC_Age2_RADIO)
		_tcscat(sEdit, L" between 15 and 20 ");
	if (iAgeRADIO == IDC_Age3_RADIO)
		_tcscat(sEdit, L" less than 15");
	m_ResultEdit.SetSel(0, -1);
	m_ResultEdit.ReplaceSel(sEdit);
}
void CMFCApplication1Dlg::OnBnClickedShowComboButton()
{
	// TODO: 在此添加控件通知处理程序代码
	UpdateData(TRUE);
	TCHAR sCourseEdit[30];
	TCHAR sRecordEdit[15];
	int iCourseRadio;
		iCourseRadio = GetCheckedRadioButton(IDC_ENGLISH_RADIO, IDC_NATURE_RADIO);
	if(iCourseRadio == IDC_ENGLISH_RADIO)
		_tcscpy(sCourseEdit, L"English record is ");
	if(iCourseRadio == IDC_COMPUTER_RADIO)
		_tcscpy(sCourseEdit, L"Computer record is ");
	if(iCourseRadio == IDC_NATURE_RADIO)
		_tcscpy(sCourseEdit, L"Natural record is ");
	m_Record.GetWindowText(sRecordEdit, 15);
	_tcscat(sCourseEdit, L"");
	_tcscat(sCourseEdit, sRecordEdit);
		m_ComboEdit = sCourseEdit;
	UpdateData(FALSE);
}
void CMFCApplication1Dlg::OnBnClickedExitButton()
{// TODO : Add your control notification handler code here
     OnOK();
}

你可能感兴趣的:(本程序为几种控件的综合使用,编写应用程序其主窗口如图所示,标题为Application of SelectBox。在这个窗口中,包含有三个标题分别为Check Box,Radio Box和Combo)