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 归档位置:

关于 “MFC-按钮与静态文本控件” 的 3 个意见

  1. great points altogether, you just gained a emblem new reader.
    What may you suggest about your publish that you simply made a
    few days ago? Any positive?

评论关闭。