带字符串

时间:2018-04-04 01:37:06

标签: winapi

我使用GetTextExtentPoint32来计算具有特定HFONT的字符串的宽度和高度。我的代码如下:

SIZE size;
HDC hdc = GetDC(handle);
SelectObject(hdc, hFont);
GetTextExtentPoint32(hdc, boost::nowide::widen(text).c_str(), static_cast<int>(boost::nowide::widen(text).length()), &size);
ReleaseDC(handle, hdc);
//using size.cx, size.cy as size

除非字符串包含水平制表符(字符文字&#34; \ t&#34;),否则大部分时间都可以正常工作。虽然GetTextExtentPoint32的文档指出:

  

GetTextExtentPoint32并不考虑&#34; \ n&#34; (新行)或&#34; \ r \ n&#34;   (回车和换行)字符计算高度时   文本字符串。

没有任何关于&#34; \ t&#34; (水平标签),所以我想知道这是GetTextExtentPoint32的预期行为还是我错过了什么? 是否有另一种方法来获取具有特定HFONT的字符串的文本范围(不为Graphics.MeasureString引入Gdiplus的依赖关系)?

0 个答案:

没有答案