2008-12-30 22 views
2

如何確定Arial粗體字體中文本字符串的長度,然後將其居中置於VB6中?在VB6中居中字體

我們不使用「標籤」或「圖片框」將文本打印到屏幕上。我們正在動態調整文本大小,並允許用戶根據自己的喜好調整應用程序的大小。我們使用代碼將文本寫入屏幕。

+0

標籤通常有取向性。如果將其設置爲居中對齊,則無論其字體面應居中在標籤中。 – LeppyR64 2008-12-30 16:29:38

+0

我假設您正在嘗試使用打印語句。您可能需要修改問題以澄清事情。 – 2008-12-30 16:40:32

+0

您是否使用Print方法執行此操作? – 2008-12-30 16:51:16

回答

1

我不記得具體情況(自從我上次使用VB 6以來已經過去3年了),但Form上有一個名爲「MeasureString」的方法。它接受字符串,並根據表單的字體設置進行測量。

而且,這裏是由Jason Lepack的情況下,發佈的評論我誤解和過於複雜的要求:

「標籤通常有取向性如果設置對齊到中心,然後,不管字體應該以標籤爲中心「。

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。

根據您更新的答案說明,隱藏的圖片框建議不用於打印。它只是獲得文字測量。但是,您直接打印到表單,因此您只需使用上面的代碼示例。

0

你最好的選擇可能是Form.TextWidth,它似​​乎以緹爲單位返回一個字符串的寬度。我剛剛採取了這種方法,以根據需要在其中出現的標籤的長度動態調整按鈕的大小。

還有一個名爲Form.TextHeight的相應函數,它可以讓你在垂直維度上做同樣的事情。

確保您將表單的Font屬性設置爲與您打算測量文本的控件的Font屬性相匹配,否則您將得到不正確的結果。

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