3

截至目前,我正在使用以下代码来调整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)。因为这似乎是一个非常不雅且难以维护的解决方案,所以我想改变它。经过一番研究,我想我有一个基本的想法;这是:

  1. 使用 获取所需文本的像素宽度和高度GetTextExtentPoint32
  2. CStatic如上面的代码示例所示,获取控件的当前窗口位置。
  3. 如果当前宽度<获得的像素宽度,则添加获得的像素宽度。对身高做同样的事情。
  4. 按照上面的代码示例设置窗口位置。
  5. 按照上面的代码示例设置窗口文本。

这会是一个好的、有效的方法吗?另外,是否GetTextExtentPoint32使用像素或对话框单位?

4

0 回答 0