
Radio Button
设计如下单选框
在CMFCApplication1Dlg::onInitDialog()中,为单选框设置缺省项目。
//开始选项框的ID,结束选项框的ID,选中的框 CheckRadioButton(IDC_RADIO1,IDC_RADIO2,IDC_RADIO2);
为提交按钮添加点击事件,同时创建存储文字CString的变量。
void CMFCApplication1Dlg::OnBnClickedButton1()
{
// TODO: 在此添加控件通知处理程序代码
if (IsDlgButtonChecked(IDC_RADIO1)) {
m_str = TEXT("男 ");
}
else if (IsDlgButtonChecked(IDC_RADIO2)) {
m_str = TEXT("女");
}
MessageBox(m_str);
}
二、多选框
Check Box
通过对话框设计添加如下项目
修改按钮部分
void CMFCApplication1Dlg::OnBnClickedButton1()
{
// TODO: 在此添加控件通知处理程序代码
if (IsDlgButtonChecked(IDC_RADIO1)) {
m_str = TEXT("男rn");
}
else if (IsDlgButtonChecked(IDC_RADIO2)) {
m_str = TEXT("女rn");
}
if (IsDlgButtonChecked(IDC_CHECK1)) {
m_str = m_str + TEXT("游戏rn");
}
if (IsDlgButtonChecked(IDC_CHECK3)) {
m_str = m_str + TEXT("音乐rn");
}
if (IsDlgButtonChecked(IDC_CHECK2)) {
m_str = m_str + TEXT("小说rn");
}
if (IsDlgButtonChecked(IDC_CHECK4)) {
m_str = m_str + TEXT("运动rn");
}
MessageBox(m_str);
}
结果:
用变量调整多选框为一个CheckBox添加成员变量。
其可以在CMFCApplication1Dlg::OnInitDialog设置如下,使得在初始化时,其属性被改动。
m_check.SetWindowTextW(TEXT("电影"));//设置标签
m_check.SetCheck(1);//设置是否选中,1选中,0未选中
三、列表框
为窗口添加ListBox、button、EidtControl
为文本编辑框添加一个值变量
为列表框(listbox)添加控制变量
为“添加”按钮设置点击事件
void CMFCApplicationDlg::OnBnClickedButton1()
{
// TODO: 在此添加控件通知处理程序代码
UpdateData();//将编辑框中数据写入变量
if (m_str.GetLength() == 0) {
MessageBox(_T("内容不可以为空"));
return;
}
//为列表框添加内容
m_listBox.AddString(m_str);
m_str.Empty();
UpdateData(FALSE);//内容更新至编辑区
}
为“删除”按钮添加点击事件,顺序是从上到下第一个i为0(字典序)
void CMFCApplicationDlg::OnBnClickedButton2()
{
// TODO: 在此添加控件通知处理程序代码
int i = m_listBox.GetCurSel();//获取当前选中的行
m_listBox.DeleteString(i);// 删除
}
为“列表框添加点击事件,用以更新编辑框
void CMFCApplicationDlg::OnLbnSelchangeList1()
{
// TODO: 在此添加控件通知处理程序代码
//获取选中内容,更新到编辑框
int i = m_listBox.GetCurSel();
m_listBox.GetText(i, m_str);
//更新到编辑区
UpdateData(FALSE);
}
为“确定更新”按钮添加点击事件
注意,”添加“按钮用的是字典排序,但此处修改是直接插入i处,若想字典排序,可以用”添加“按钮的相同操作。
void CMFCApplicationDlg::OnBnClickedButton3()
{
// TODO: 在此添加控件通知处理程序代码
UpdateData();//更新编辑区内容到m_str
if (m_str.GetLength() == 0) {
MessageBox(_T("内容不可以为空"));
return;
}
//获取选中内容
int i = m_listBox.GetCurSel();
//删除指定内容
m_listBox.DeleteString(i);
//向指定位置插入内容,即向i处元素之前插入,原i处元素后移动
m_listBox.InsertString(i, m_str);
//更新到编辑区
m_str.Empty();
UpdateData(FALSE);
}
四、组合框
组合框(comboBox)除了获取内容的函数与列表框不同,其余一致。
如图,为对话框添加一个组合框。
其属性data即为选项, 以"';"分隔,字母序。为其设置几个值
其属性Type中:
本文用默认的可编辑下拉框。
为其添加以控制变量:
在CMFCApplicationDlg::OnInitDialog中,初始化该控制变量
// TODO: 在此添加额外的初始化代码 m_combo.SetCurSel(2);//设置默认显示项目 CString str; m_combo.GetLBText(0, str);//获取第0行内容 //在整个对话框生成完成之前弹出,确认后继续 MessageBox(str);
其余基本功能和列表框一致,此处省略。