在VB6中居中字体

时间:2008-12-30 16:24:44

标签: string fonts vb6

如何确定Arial Bold字体中文本字符串的长度,然后将其置于VB6中心?

我们没有使用“标签”或“图片框”将文字打印到屏幕上。我们正在调整文本大小,并允许用户根据自己的喜好扩展应用程序的大小。我们使用代码将文本写入屏幕。

4 个答案:

答案 0 :(得分:5)

一种方法是使用隐藏的图片框并按照您想要的方式设置该图片框的字体规格。

然后使用PictureBox的TextHeight和TextWidth方法进行测量。单位将处于图片框设置的任何比例模式。

如果您要直接打印到打印机或表格,请先设置字体,然后进行测量。

以中心为中心

MyText = "Hello World"
<displayarea>.FontName = "Arial"
<displayarea>.FontSize = 14
<displayarea>.FontBold = True
TextWidth = <displayarea>.TextWidth(MyText)
TextLeftCoordinate = <displayarea>.ScaleLeft+<displayarea>.ScaleWidth/2-TextWidth/2
<displayarea>.CurrentX = TextLeftCoordinate
<displayarea>.Print MyText

用您正在使用的任何对象替换displayarea。

根据您更新的答案提示,隐藏的图片框建议不会用于打印。它只能得到文本测量。但是,您直接打印到表单,因此您只需使用上面的代码示例。

答案 1 :(得分:1)

我记不清具体细节(自从我上次使用VB 6以来已经过了3年),但是在Form上有一个类似“MeasureString”的方法。它接受字符串,并根据表单的字体设置进行测量。

此外,这是Jason Lepack发布的评论,以防我误解并过度复杂您的要求:

“标签通常具有对齐属性。如果将其设置为对齐到中心,则无论字体是否应该居中在标签中”。

答案 2 :(得分:0)

您可以调用Win32 GDI函数:例如参见http://msdn.microsoft.com/en-us/library/ms534223(VS.85).aspx的GetTextExtentPoint32

答案 3 :(得分:0)

您最好的选项可能是Form.TextWidth,它似​​乎以缇为单位返回字符串的宽度。我刚刚采用这种方法,以根据需要在其中出现的标签长度​​动态调整按钮的大小。

还有一个名为Form.TextHeight的相应函数,它允许您在垂直维度中执行相同的操作。

确保将表单的Font属性设置为与您要测量文本的控件的Font属性相匹配,否则您将得到不正确的结果。

http://msdn.microsoft.com/en-us/library/aa267168(VS.60).aspx

了解详情