怎样才能制作一个CStatic
文本自动换行(多行)将结果垂直居中在控件的矩形中?
我试图解决的问题是:我有一个CStatic
控制旁边的CComboBox
根据选择更新信息文本。该文本可以短也可以长,需要CStatic
有时使用多线,有时不使用。我希望信息文本与垂直居中对齐CComboBox
.
现在问题来了:
如果我不能轻松获得垂直居中CStatic
多行控件,另一种方法是根据其中的文本量调整控件矩形的大小。但在这种情况下我有一个不同的问题:
如何以编程方式找出文本在一个文本中需要多少行CStatic
具体宽度?
不幸的是,您无法将多行文本置于中心CStatic
.
你的下一个问题有一个解决方案,但使用起来有点痛苦。你所做的就是你使用CDC::DrawTextEx
与DT_CALCRECT
标志来获取要格式化的文本的大小(以像素为单位)。通过将其除以一行文本的高度(在字体信息中给出,您可以从DC
,加上一些间距,我不确定它是多少 - 大概是一个固定的量,我不认为你可以指定行距DrawText
),您将得到您将获得的行数(近似值)。然后您可以调整控制矩形的大小。
想想看,您可能最好不要转换为线条,而只需将控件的大小调整到您从中获得的程度DrawTextEx
:)
像这样的事情通常需要一些实验才能完全正确,并且有时在操作系统版本之间的行为有所不同。谨慎行事。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)