2015-11-04 55 views
0

我正在使用直接2D和直接寫入自定義編輯框。繪畫的東西(盒子)由直接的2D完成。我從WM_CHAR消息中獲取輸入並將其附加到一個字符串。該字符串被寫入框中。現在的問題是,只要文本輸入超出文本框的長度,就會自動向下滾動,現在輸入的文本在文本框中不可見。所以如何滾動文本,以便它始終在文本框中顯示。如何使文本在編輯框中滾動?

here is the image showing the edit box

here is the image that shows the problem

回答

0

我相信你已經使用了「IDWriteTextFormat :: SetTextAlignment」,使對齊佈局框中央的文字。同樣,您可以使用'IDWriteTextFormat :: SetParagraphAlignment'來控制文本的垂直對齊。

但它不能做你所說的「文本總是在文本框中」。您必須更改字體大小以適合靜態佈局框。 「滾動」不能幫助你。

0

這一切都取決於你想用它做什麼,以及你的控制需要多複雜。如果僅限於顯示單行,則可以嘗試強制打包模式。如果你希望它是多行的,你只想使用單一的字體,你可以計算一次行高,然後在新行顯示下一行而不是當前行;例如,類似於VK_UP,您可以向後滾動一行。重點在於,使用多行控制時,期望它能夠以行高的倍數顯示部分文本。

無論如何,你必須自己實現滾動,例如,更新渲染目標,並且一次僅顯示一部分。這不是一個DirectWrite或D2D工作。

相關問題