我試圖使用像這樣MFC代碼中的狀態欄中顯示一個長字符串:使用SB_SETTEXT在狀態欄中顯示的字符數是否有限制?
// i've set only one pane in the status bar using CStatusBar::SetIndicators()
pFrameWnd->m_wndStatusBar.SetPaneText(0, szText, TRUE);
但在狀態欄中顯示的字符串被截斷127個字符。
由於MFC類成員CStatusBar::SetPaneText()內部使用消息SB_SETTEXT,我想知道是否對使用SB_SETTEXT可以在狀態欄中顯示的數字字符有任何限制?
我搜索了一下,發現一些討論論壇指出確實存在一個限制,但是他們中沒有一個對MSDN文檔的任何引用都表示相同。
那麼,任何人都可以提供一個MSDN鏈接來支持他們的答案,如果存在對字符數量的限制嗎?
另外,如果確實有限制,是否有辦法解決這個問題,並在狀態欄的單個窗格中顯示更多數量的字符?
據我所知,字符串的長度沒有記錄的限制。您是否嘗試發送[WM_SETTEXT](https://msdn.microsoft.com/en-us/library/windows/desktop/ms632644.aspx)消息(如[狀態欄文本操作](https:// msdn .microsoft.com/en-us/library/windows/desktop/bb760728.aspx#Status_Bar_Text_Oper)),並且行爲是否改變?爲了確保這不是狀態欄大小的問題,請嘗試將文本設置爲「L」Left \ tCenter \ tRight「'。這樣做將幫助您查看狀態欄的幾何圖形。 – IInspectable
這不是一個記錄的限制,但'DrawStatusText'函數似乎在內部使用大小爲128的靜態緩衝區,並且在繪製每個狀態欄部分的文本時默認使用此函數。所以你可以使用所有者繪製來解決它。 –
我試過使用CWnd :: SetWindowText()(它反過來發送一個WM_SETTEXT味精),但它沒有奏效。 狀態欄大小正常,因爲顯示「Left \ tCenter \ tRight」會在狀態欄的各自位置顯示左邊,中間和右邊的字符串。 此鏈接指向文件的字符數限制: https://social.msdn.microsoft.com/Forums/vstudio/en-US/1082b08e-6efa-46c8-9382-36e51247e1ba/status-bar-text-長度限制??論壇= vclanguage –