C&C++   发布时间:2022-04-03  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了visual-c – 如何使MFC复选框为只读但保持文本启用?大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
似乎通过Disabled属性禁用复选框也会使标题变灰.有谁知道如何保持标题启用但禁用输入?

编辑

基于Paul的想法,我已经完成了以下操作(现在我发现静态标签和复选框具有透明属性).

>添加了几个复选框.
>将复选框标题设置为空.
>将复选框透明属性设置为true.
>在复选框旁边添加几个标签.
>将标签的透明属性更改为true.
>展开复选框以包含标签(因此单击标签将触发复选框).

但是,这给了我非常奇怪的结果.当我在标签上展开复选框时,它会覆盖标签,即使两者都是透明的.再说一次,我是MFC的新手(我是C#家伙)所以也许我错过了一些东西.

解决方法

快速而简单的解决方法是不使用复选框“文本成员(将其设置为”“),将复选框的大小缩小到可点击的方块,只需在复选框旁边放置一个标签即可.

为了获得一点点发烧友,你可以创建一个自定义控件来托管一个复选框和一个可以重用的标签.它也是使自定义复选框按最终用户的预期行为更容易的方式,例如能够在单击标签时将复选框设置为选中或取消选中,以及复选框本身. (简单的解决方案不会自动关联标签和复选框.您可以在表单中对其进行编码,但如果您倾向于重用范例,那么可能会很快变得难看.)

你也可以四处查看第三方复选框控件(那里有很多MFC UI库),但这可能有点过分.

看到这个伪布局:

你有这个:(孤立的复选框控件)

[x "checkBox text"]

像这样放置:(标签控件在复选框旁边对齐)

[x][label: "label text"]

处理标签的点击事件,例如:

void OnLabelClick(...) {
    if (checkBox.Enabled)
        checkBox.checked = !checkBox.checked;
}

大佬总结

以上是大佬教程为你收集整理的visual-c – 如何使MFC复选框为只读但保持文本启用?全部内容,希望文章能够帮你解决visual-c – 如何使MFC复选框为只读但保持文本启用?所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。