无符号整形 发表于 2016-11-12 08:52:55

【MFC入门文字教程】6-基于CButton的复选框

本帖最后由 无符号整形 于 2016-11-12 10:14 编辑

还记得第3篇的小例子吗?就是那个设置Style那个。
从那儿可以看到,复选框是基于 CButton 的。
好了,进入正题。
我们先不急着实践,先了解一些重要概念。
一个复选框打了勾,那么这个复选框的 Check 状态就是 TRUE,否则为 FALSE
所以我们可以用 GetCheck 成员函数获取 Check 状态,如果是1就是打了勾,否则就是没打勾
还可以使用 SetCheck 成员函数强行设置 Check状态,以达到强行打勾或不打勾。
注:因为复选框实际上是基于 CButton的,所以变量类型也是 CButton(意味着成员函数和 CButton 的成员函数完全一样)。

实践时间
1.创建一个基于对话框的 mfc 工程,在工具箱拖一个 Check Box 控件到对话框的中间,然后把复选框的标题改成Test1(修改属性中的 Caption项)。

2.给Checkbox添加一个变量,便于获取 Check状态(建议把名称设为 m_checkbox)

3.拖一个按钮,并且给他添加事件处理程序。(目标:当用户按下这个按钮时,我们要检测刚才拖的 Checkbox 的 CHECK 状态,并且告诉用户复选框打勾了没有)

4.在事件处理函数中添加如下内容(带注释):
if (m_checkbox1.GetCheck() == 1) //获取Check状态,如果打勾的话GetCheck会返回1,不打勾的话就会返回0
        {
                MessageBox(TEXT("Check Box打了勾"), TEXT("提示"), 0); //弹出提示框
        }
        else //如果        GetCheck返回了0,那就是没打勾
        {
                MessageBox(TEXT("Check Box没打勾"), TEXT("提示"), 0);
        }
        m_checkbox1.SetCheck(1); //设置Check状态,设置为1即为打勾,设置为0为取消打勾。这里即为让CheckBox打勾
5.编译并且运行,最终结果:


是不是很激动呢~{:10_254:}

limbo666 发表于 2018-7-19 21:40:07

Test1变量名应该叫m_checkbox1吧

SuikaTvT 发表于 2019-8-6 20:52:09

添加的变量在哪
页: [1]
查看完整版本: 【MFC入门文字教程】6-基于CButton的复选框