如何检测控制文本的行号?

时间:2011-06-28 09:24:38

标签: c++ winapi controls wtl

该对话框包含静态文本控件。在初始化对话框时,应用程序会将自定义文本设置为此静态文本控件:

HWND hWnd = GetDlgItem(IDC_MY_STATIC_TEXT);
::SetWindowText(hWnd, szMyCustomText);

我需要知道指定文本将被分解的行数以及在UI中显示时的文本宽度。你能分享一下你的想法吗?

1 个答案:

答案 0 :(得分:0)

这取决于字体,DPI和其他设置。我建议查找static text controls,其中说:

  

系统会在静态控件中显示尽可能多的文本,并剪切任何不适合的文本。要计算控件的适当大小,请检索文本的字体度量标准。有关字体和字体度量的详细信息,请参阅字体和文本。

结合此post关于计算结果文本的大小应该可以让您计算文本宽度(并且知道文本高度的行数)。