![]() |
1
13
我很确定复选框的宽度等于
然后你可以通过减去以下内容来计算出里面的区域…
我在代码中使用它,到目前为止还没有遇到任何问题… |
![]() |
2
7
简短回答:
长版来自MSDN Layout Specifications: Win32 ,我们有一个复选框的尺寸规格。 它是 12个对话单元 从控件的左边缘到文本开头:
复选框控件的高度为10个对话框单元:
首先,我们计算水平和垂直对话框单元的大小:
使用Handy Helper函数:
现在我们知道有多少像素(
|
![]() |
3
1
很遗憾,微软没有提供一种方法来确定这一点。我也在为同样的问题苦苦挣扎,上面给出的答案并不完整。它的主要问题是,如果将对话框窗口的字体设置为默认大小以外的其他值,则该解决方案将不起作用,因为将调整复选框的大小。 以下是我如何解决这个问题(这只是一个近似值,似乎对我有用)。代码用于MFC项目。 1-在窗体上创建两个测试控件、一个复选框和一个单选框:
2-定义以下自定义结构:
3-当表单为每个测试控件初始化时调用以下代码(这将测量并删除它们,以便最终用户看不到它们):
4-现在,您可以通过调用以下命令轻松调整任何复选框或单选框的大小:
|
![]() |
4
0
此代码不适用于具有缩放用户界面(字体大125%或大150%)的Win7。唯一可行的是:
|
![]() |
5
0
好吧,伙计们,我的方法也许不是在运行时使用的禁食,但它对我来说无论如何,我已经测试过了。 在程序开始时,我放入一个函数来获取大小并将其存储在一个全局变量中(是的,我听说这会很糟糕,但我不在乎这个)。 解释如下:
在我的程序开始时,这段代码只需要几微秒,我每次需要它时都可以使用这个值。 |
![]() |
6
0
序言:
我的调查:
请注意,这一切都假定您的应用程序显示为DPI感知。否则,我发现该复选框在某些Windows7系统上显示得更大(并非全部)。 我的(主要是葡萄酒)解决方案:
|
![]() |
Alex · 引导对齐表单开关左侧的标签 3 年前 |
![]() |
Khilen Maniyar · 角度2:带有复选框的阵列工作不正常 7 年前 |
![]() |
Kais · 带有输入复选框的表格选中/取消选中 7 年前 |
|
yuggmeister · 如何使自定义复选框可访问? 7 年前 |