【发布时间】:2009-10-31 03:58:39
【问题描述】:
在 Win32 GUI 应用程序中,我需要确定工具栏按钮上的字符串所占区域的宽度,以便相应地调整按钮宽度。工具栏是普通的旧ToolbarWindow32 windows 类。我使用以下代码:
HDC dc = GetDC( toolbarWindowHandle );
SIZE size;
GetTextExtentPoint32( dc, stringToMeasure, tcslen(stringToMeasure), &size );
对于一些固定字符串(比如“Hello”)size.cx 填充了 72,但是当我制作工具栏的屏幕截图时,按钮上显示的字符串完全相同,我看到该字符串占用了 56 个像素。
差异显然取决于系统字体设置。我使用“大字体”,代码获得的值大于屏幕上的值。在具有“小字体”的机器上,获得的值更小。
我想如果我在窗口设备上下文中使用 GetTextExtentPoint32() 它将返回完全正确的大小。我做错了什么?
【问题讨论】:
标签: c++ windows winapi toolbar