截至目前,我正在使用以下代码来调整CStatic
控件的大小:
WINDOWPLACEMENT wndpl;
m_myStaticControl.GetWindowPlacement(&wndpl);
// Increase the static box's width
wndpl.rcNormalPosition.right += 10;
m_myStaticControl.SetWindowPlacement(&wndpl);
m_myStaticControl.SetWindowText("Some text");
我通过反复试验获得了常数(在上述情况下为 10)。因为这似乎是一个非常不雅且难以维护的解决方案,所以我想改变它。经过一番研究,我想我有一个基本的想法;这是:
- 使用 获取所需文本的像素宽度和高度
GetTextExtentPoint32
。 CStatic
如上面的代码示例所示,获取控件的当前窗口位置。- 如果当前宽度<获得的像素宽度,则添加获得的像素宽度。对身高做同样的事情。
- 按照上面的代码示例设置窗口位置。
- 按照上面的代码示例设置窗口文本。
这会是一个好的、有效的方法吗?另外,是否GetTextExtentPoint32
使用像素或对话框单位?