簡體   English   中英

如何使文本在編輯框中滾動?

[英]How to make text scroll in an edit box?

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

這是顯示編輯框的圖像

這是顯示問題的圖像

我相信您已使用'IDWriteTextFormat :: SetTextAlignment'使文本與布局框的中心對齊。 同樣,您可以使用“ IDWriteTextFormat :: SetParagraphAlignment”來控制文本的垂直對齊方式。

但是它不能完成您所謂的“文本始終在文本框中”的操作。 您必須更改字體大小以適合靜態布局框。 “滾動”對您無濟於事。

這完全取決於您要使用它的功能以及控件的復雜程度。 如果僅顯示一行限制,則可以嘗試強制DWRITE_WORD_WRAPPING_NO_WRAP包裝模式。 如果您希望它是多行的,並且只想使用單個字體,則可以計算一次行高,然后在新行上顯示下一行而不是當前行; 例如在VK_UP上類似,您可以向后滾動一行。 關鍵是使用多行控件時,很自然地希望它以行高的倍數顯示文本的一部分。

無論如何,您都必須自己滾動,例如更新渲染目標,並一次只顯示其中一部分。 這樣做不是DirectWrite或D2D作業。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM