簡體   English   中英

如何檢查窗口中行的長度或寬度是否大於其父窗口的寬度C ++

[英]How to check if the length or width of Row in a window is greater than the width of its parent window C++

如果行的寬度超過其父窗口的寬度,我想將復選框的現有文本包裝成多行。 我不太確定該怎么做。

我要顯示復選框字符串的圖像

裁剪字符串的圖像,僅在調整窗口大小或最大化窗口時顯示

恐怕您將對此有疑問。

制作復選框多行的設置為ES_MULTILINE ,如果您在此處查看,則會看到它指出:

要使用CreateWindowCreateWindowEx函數創建編輯控件,請指定EDIT類,適當的窗口樣式常量以及以下編輯控件樣式的組合。 控制被創建 ,這些樣式不能修改,特別注明的除外

因此,在我看來,您有三種前進的方式,這取決於您覺得對您來說最好還是最優雅。

  1. 無論如何,在資源編輯器中將控件設置為多行。 那就沒關系,並且會自動換行。 無需更改設置。

  2. 實現所需的功能以限制可縮小到的窗口的大小。 如果您有興趣,我可以告訴您。 這樣,如果正確設置控件的調整大小屬性,則可以將其調整為更大的大小,但只能縮小已知的尺寸(即:您在資源編輯器中創建的尺寸)。

  3. 可能在同一位置有兩個控件,一個為多行,一個為單行。 當您決定要顯示哪個時,請交換可見性。 但是我認為這是一個壞主意,有點頭疼,不值得麻煩。

恕我直言,我會同時做主意1和主意2,並且很樂意將我的回答擴展為提供更多信息。

更新

看完您的圖像和有關翻譯的評論后,便有了第四個想法。 如果您使用第三方應用程序來管理翻譯並使用衛星DLL文件,則可以根據語言來調整資源。 由於有些冗長的性質,有時我不得不使某些窗口的默認寬度變寬。

我已經為復選框設置了BS_MULTILINE。 窗口的最小大小是固定的,但我只希望復選框適合其中。 我希望它在與其他標簽相同的行中至少顯示一個單詞,在第二行中顯示其余單詞。 因此,我正在檢查第一行的總寬度是否大於窗口的寬度,然后在其中顯示帶有\\ r \\ n的字符串,否則顯示正常的字符串。 但是,我想使復選框的第一行或第一個單詞與復選框對齊,其余單詞應位於第一個單詞之下。 當前,該復選框位於兩行之間,看起來很奇怪。 反正我能做到這一點嗎?

暫無
暫無

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

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