【发布时间】:2013-04-28 13:16:36
【问题描述】:
我正在关注here 的教程,将水平滚动条添加到列表控件。除了 TextWidth() 函数(VC++ 2012 说它是未定义的)之外,那里的一切都有效,所以我找到了this 问题。但我不知道如何初始化 hdc,所以我尝试了this。但是 GetTextExtentPoint32 一直返回零。
知道如何解决这个问题吗?
我的代码如下所示(编辑后):
SIZE Size;
HDC hdc=GetDC(hWnd);
iResult=GetTextExtentPoint32(hdc, szMessage, MESSAGE_SIZE, &Size);
(szMessage 包含用户输入)
【问题讨论】:
-
一个字符串只有在你设置为特定字体时才具有定义的宽度。这就是您需要图形上下文 (hdc) 的原因。使用 hdc 作为输出窗口。
-
@stark 如何为我的输出窗口获取 hdc,这就是我卡住的地方
-
您可以拨打
GetDC(hWnd)获取。 -
你应该使用
SIZE size;并将指针传递给GetTextExtentPoint32(..., &size); -
@Slava 工作,谢谢。如果需要,请继续发布答案
标签: c++ c windows string winapi