我有一個mfc應用程序,我必須在其中顯示文本。每當我使用滾動條時,都會調用OnDraw()函數。這是我的OnDraw()函數:在mfc應用程序中顯示文本文件時滾動
CString fileText = pDoc->GetFileText(); //get text from file
CRect rect;
GetClientRect(&rect);
pDC->DrawText(fileText.GetString(), &rect, DT_LEFT|DT_NOCLIP);
這似乎是效率低下,因爲滾動是永遠。問題是我正在重新繪製整個文本文件。我想使用GetClipBox函數重繪只有需要的。任何人都可以給我關於如何繼續的建議嗎?
謝謝。
當你重繪整個字符串時,我同意如果你繪製整個字符串,雙緩衝仍然會變慢。但是,僅用於滾動,根本不需要重新繪製字符串 - 只需使用BitBlt內存位圖進行屏幕顯示即可。不過,我同意你的看法 - 爲了加速完全重新繪製,你需要將文本分成幾部分並計算出你需要繪製的部分。這是棘手的。 – Redeye
嗯,我想前進的方向是將文本分成幾行並只繪製相關的文字。就像你說的那樣,這會很棘手。還有,謝謝你的回答。 – molu