MFC-按钮与静态文本控件



MFC按钮与静态文本

  • 两个按钮状态互锁。
  • 初始状态为 选中“1G”,检查框选“摄像头”,静态文本框为空,“提交选择”按钮为活动状态。

解答:

1、通过可视化操作完成上述界面的设计。

2、为静态文本绑定CString类型的变量m_static。

3、在BOOL CCBaseButtonDlg::OnInitDialog()即对话框初始化函数中完成单选按钮和复选框的初始化工作:

CheckRadioButton(IDC_RADIO1, IDC_RADIO3, IDC_RADIO2);
CheckRadioButton(IDC_CHECK1, IDC_CHECK4, IDC_CHECK1);

4、为“提交选择”按钮添加事件处理程序:

void CCBaseButtonDlg::OnBnClickedButton1()
{
	// TODO: 在此添加控件通知处理程序代码
	CString str = L"用户的选择如下:\n内存:", str_rad, str_chk1, str_chk2, str_chk3, str_chk4;
	
	//获取单选按钮选中ID
	int memory = GetCheckedRadioButton(IDC_RADIO1, IDC_RADIO3);
	
	//获取被选中单选按钮的内容
	GetDlgItemText(memory, str_rad);
	
	//依次检查四个复选框是否被选中,如果选中,则获取其内容
	if (IsDlgButtonChecked(IDC_CHECK1) == 1) {
		GetDlgItemText(IDC_CHECK1, str_chk1);
	}
	if (IsDlgButtonChecked(IDC_CHECK2) == 1) {
		GetDlgItemText(IDC_CHECK2, str_chk2);
	}
	if (IsDlgButtonChecked(IDC_CHECK3) == 1) {
		GetDlgItemText(IDC_CHECK3, str_chk3);
	}
	if (IsDlgButtonChecked(IDC_CHECK4) == 1) {
		GetDlgItemText(IDC_CHECK4, str_chk4);
	}
	if (IsDlgButtonChecked(IDC_CHECK1) == 1) {
		GetDlgItemText(IDC_CHECK1, str_chk1);
	}

	//更新静态文本内容
	m_static = str + str_rad + L"," + str_chk1 + str_chk2 + str_chk3 + str_chk4;
	UpdateData(FALSE);

	//使提交选择按钮为不可选状态
	GetDlgItem(IDC_BUTTON1)->EnableWindow(FALSE);
	GetDlgItem(IDC_BUTTON2)->EnableWindow(TRUE);
}

5、为“重新选择”按钮添加事件处理程序:

void CCBaseButtonDlg::OnBnClickedButton2()
{
	// TODO: 在此添加控件通知处理程序代码
	//界面回到初始状态
	CheckRadioButton(IDC_RADIO1, IDC_RADIO3, IDC_RADIO2);
	CheckRadioButton(IDC_CHECK1, IDC_CHECK4, IDC_CHECK1);
	m_static = L"";//清空文本内容
	UpdateData(FALSE);
	GetDlgItem(IDC_BUTTON1)->EnableWindow(TRUE);
	GetDlgItem(IDC_BUTTON2)->EnableWindow(FALSE);
}

完成。

MFC按钮与静态文本

  • 两个按钮状态互锁。
  • 初始状态为 选中“1G”,检查框选“摄像头”,静态文本框为空,“提交选择”按钮为活动状态。

解答:

1、通过可视化操作完成上述界面的设计。

2、为静态文本绑定CString类型的变量m_static。

3、在BOOL CCBaseButtonDlg::OnInitDialog()即对话框初始化函数中完成单选按钮和复选框的初始化工作:

CheckRadioButton(IDC_RADIO1, IDC_RADIO3, IDC_RADIO2);
CheckRadioButton(IDC_CHECK1, IDC_CHECK4, IDC_CHECK1);

4、为“提交选择”按钮添加事件处理程序:

void CCBaseButtonDlg::OnBnClickedButton1()
{
	// TODO: 在此添加控件通知处理程序代码
	CString str = L"用户的选择如下:\n内存:", str_rad, str_chk1, str_chk2, str_chk3, str_chk4;
	
	//获取单选按钮选中ID
	int memory = GetCheckedRadioButton(IDC_RADIO1, IDC_RADIO3);
	
	//获取被选中单选按钮的内容
	GetDlgItemText(memory, str_rad);
	
	//依次检查四个复选框是否被选中,如果选中,则获取其内容
	if (IsDlgButtonChecked(IDC_CHECK1) == 1) {
		GetDlgItemText(IDC_CHECK1, str_chk1);
	}
	if (IsDlgButtonChecked(IDC_CHECK2) == 1) {
		GetDlgItemText(IDC_CHECK2, str_chk2);
	}
	if (IsDlgButtonChecked(IDC_CHECK3) == 1) {
		GetDlgItemText(IDC_CHECK3, str_chk3);
	}
	if (IsDlgButtonChecked(IDC_CHECK4) == 1) {
		GetDlgItemText(IDC_CHECK4, str_chk4);
	}
	if (IsDlgButtonChecked(IDC_CHECK1) == 1) {
		GetDlgItemText(IDC_CHECK1, str_chk1);
	}

	//更新静态文本内容
	m_static = str + str_rad + L"," + str_chk1 + str_chk2 + str_chk3 + str_chk4;
	UpdateData(FALSE);

	//使提交选择按钮为不可选状态
	GetDlgItem(IDC_BUTTON1)->EnableWindow(FALSE);
	GetDlgItem(IDC_BUTTON2)->EnableWindow(TRUE);
}

5、为“重新选择”按钮添加事件处理程序:

void CCBaseButtonDlg::OnBnClickedButton2()
{
	// TODO: 在此添加控件通知处理程序代码
	//界面回到初始状态
	CheckRadioButton(IDC_RADIO1, IDC_RADIO3, IDC_RADIO2);
	CheckRadioButton(IDC_CHECK1, IDC_CHECK4, IDC_CHECK1);
	m_static = L"";//清空文本内容
	UpdateData(FALSE);
	GetDlgItem(IDC_BUTTON1)->EnableWindow(TRUE);
	GetDlgItem(IDC_BUTTON2)->EnableWindow(FALSE);
}

完成。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

洒满阳光的午后

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值