相信枚举过组件的人都知道 按钮 单选框 选择框/复合框 分组框 等他们共同的类名都是:BUTTON
这时候要区分是谁就需要取风格来查看了
最近有人问了 选择框/复合框 的三态问题,就是
研究了下发现,本身是支持的,只需要改一下组件风格就行
参考资料:按钮样式 (Winuser.h) - Win32 apps | Microsoft Learn
这里面有个风格是:BS_AUTO3STATE 也就是3态
平时的选择框风格是:BS_AUTOCHECKBOX 普通的选择框
至于怎么修改和获取,我看了下论坛也有大佬写过,这里就不发代码了:https://bbs.125.la/forum.php?mod=viewthread&tid=14666899
-----------------------------------------------------------------------------------
言归正传,我发现这个风格有点不一样,别人风格类型都是 0 1 2 4 8 16 这种错开方便组合的
但是他们是 0到15种风格,后面开始就是正常的16 32 这种了
所以取到风格后取位与一下15就知道他到底是什么风格,代码如下:
根据返回值判断类型:
0/1=按钮
2/3=复选框
5/6=三态复选框
7/8=分组框
4/9=单选框
10/11=类似标签按钮
12/13=类似组合框
14/15=类似标签
|