我發佈了一個類似於此前的問題,但是,在考慮它並測試答案後,我相信我曲解了答案,並且答案人誤解了我。原來的問題是here。我認爲人們相信我只是想突出字符串,我沒有說明我的確切目的。所以,我現在將:自定義文本框:突出顯示和選擇
我最近一直在嘗試做的是使用GDI +在C++ CLR中創建一個100%從零開始的文本框。當用戶點擊文本框時,我已經接觸到了放入插入符的挑戰。做簡單的數學(他們點擊的地方除以線寬)我可以找出他們點擊了哪一行。但爲了獲得點擊的字符,我需要(除非有更好的方法)比較行中所有字符的邊界矩形,並將鼠標放入鼠標之前的位置。爲了做到這一點,我需要得到每個單個字符的確切範圍,而不是整個字符串。
我已經嘗試了一些東西,其中沒有一個似乎工作:
- Graphics::MeasureString不推薦任何人,也不會 它給我想要的東西
- TextRenderer::MeasureText更準確,但足夠
- Graphics::MeasureCharacterRanges這種不準確的有32個字符 的帽子,我期待線長超過32個字符,在某些情況下,
我相信我不能使用這些方法,除非有辦法解決它們的侷限性。我希望我能讓我的問題和預期的解決方案比我以前做得更清楚。
我看不到Graphics :: MeasureCharacterRanges鏈接中的任何內容,表示32個字符的上限。 – 2012-02-22 19:52:10
@MarkRansom我在某處讀過它,當然我得到一個OverflowException當我做32個字符 – smoth190 2012-02-23 04:33:01