- 两个按钮状态互锁。
- 初始状态为 选中“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);
}
完成。
- 两个按钮状态互锁。
- 初始状态为 选中“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);
}
完成。