使用单选和多选框

单选

1.拖控件

设置名字,CTRL+D设置顺序,属性设置第一个GROUP为TRUE;

2.设置第一个按钮绑定变量为 值 INT型 名称m_RadioIndxe;

3.设置单击响应内容。

// 响应按钮点击的事件: 获取单选选项
void CDefaultDlg::OnBnClickedGetradiobutton()
{
// 1. 通过 Updatedata(TRUE) 获取控件的信息到绑定的变量
UpdateData(TRUE);

// 2. m_RadioIndex 保存的是以 0 为起始的当前选中项
CString RadioText;
GetDlgItemText(IDC_RADIO1 + m_RadioIndex, RadioText);

// 3. 弹出选中的单选项
MessageBox(RadioText);

// 4. 通过 UpdateData(FALSE) 重新设置新的选项
m_RadioIndex = 0;
UpdateData(FALSE);
}

多选框

1.拖复选框控件

2.设置绑定变量属性。值的设置BOOL类型。控件默认类型。tri的会默认控件类型。

3.ON_COMMAND_RANGE调用自定义的OnchecBox函数。

BEGIN_MESSAGE_MAP(CMFCApplication1Dlg, CDialogEx)
ON_COMMAND_RANGE(IDC_CHECK2, IDC_CHECK4, OnCheckBox)
END_MESSAGE_MAP()
   // 多个多选按钮的响应函数,nId 表示响应的是哪个按钮
   VOID CMFCApplication1Dlg::OnCheckBox(UINT nId)
{
// 当前选中了几项
int count = 0;

// 获取控件当前的状态到变量
UpdateData(TRUE);

// 检查当前的几个多选框是否被选中
if (m_CheckBoxA == TRUE)
count++;
if (m_CheckBoxCtrlB.GetCheck() == BST_CHECKED)
count++;
// 既有值类型又有控件类型,优先设置值类型
if (m_CheckBoxC == TRUE)
count++;

// 根据选中的项,设置三态复选框的状态
if (count == 0)
m_CheckBoxState.SetCheck(BST_UNCHECKED);
else if (count == 3)
m_CheckBoxState.SetCheck(BST_CHECKED);
else
m_CheckBoxState.SetCheck(BST_INDETERMINATE);

// 将变量设置到控件上
UpdateData(FALSE);
}
   

4.

// 根据当前的选中状态,修改其它的选项
void CDefaultDlg::OnBnClickedCheck4()
{
UpdateData(TRUE);

// 判断当前是否选各种
if (m_CheckBoxState.GetCheck() == BST_CHECKED)
{
m_CheckBoxA = m_CheckBoxC = TRUE;
m_CheckBoxCtrlB.SetCheck(BST_CHECKED);
}
else if (m_CheckBoxState.GetCheck() == BST_UNCHECKED)
{
m_CheckBoxA = m_CheckBoxC = FALSE;
m_CheckBoxCtrlB.SetCheck(BST_UNCHECKED);
}

UpdateData(FALSE);
}


5.显示被勾选的选项信息。

//UpdateData()用来更新信息。在自定义的OncheckBox函数调用了。

//如果没有调用的话,绑定值的控件会无法更新数据,会一直显示没有被勾上。

void CDefaultDlg::OnBnClickedButton2()
{
CString CheckString;
CString TempString;

// 检查当前的几个多选框是否被选中
if (m_CheckBoxA == TRUE)
{
GetDlgItemText(IDC_CHECK1, TempString);
CheckString += TempString + L" ";
}
if (m_CheckBoxCtrlB.GetCheck() == BST_CHECKED)
{
m_CheckBoxCtrlB.GetWindowTextW(TempString);
CheckString += TempString + L" ";
}
if (m_CheckBoxC == TRUE)
{
m_CheckBoxCtrlC.GetWindowTextW(TempString);
CheckString += TempString;
} // 输出选中的项

MessageBox(CheckString);
}

最新文章

  1. JavaScript-location:封装当前窗口正在打开的url的对象
  2. 详细对比IB开发与纯手码开发的优劣。
  3. 【深入ASP.NET原理系列】--ASP.NET页面生命周期
  4. jsp与php混用的漏洞
  5. 去哪儿网2017校招在线笔试(前端工程师)编程题及JavaScript代码
  6. html+CSS--水平居中设置(定宽块状元素)
  7. mysql之sql语句导入与导出讲解
  8. [转]easyui常用控件及样式收藏
  9. java线程学习——汉堡销售问题
  10. 比较不熟的JavaScript点滴,慢慢前行,附带简单复杂化的php小计算器一份
  11. thinkphp做搜索功能
  12. D01 Elon Mulsk The future we're building — and boring
  13. Git 处理tag和branch的命令
  14. html meta标签使用及属性介绍
  15. Java Web 开发进阶案例之人事管理系统的完整实现
  16. C++ mysql 乱码
  17. spring initializr 创建项目时,依赖对应的 artifactId
  18. AIX常用命令学习(一)
  19. kubernetes namespace
  20. llinux获取系统时间

热门文章

  1. URAL 题目1553. Caves and Tunnels(Link Cut Tree 改动点权,求两点之间最大)
  2. SpringMVC导出Excel
  3. Android API Guides –System Permissions
  4. karaf增加自己定义log4j的配置
  5. expand_dims
  6. VS-按F12无法跳转到函数定义,点击右键也无法跳转
  7. YTU 2509: 奇怪的分式
  8. python库学习笔记——re库:正则表达式入门(一)
  9. linux 基础 —— 网络管理
  10. Java 高级数据结构 —— Properties