2012-11-19 81 views
1

我在Windows上使用豐富編輯控件。我嘗試將SS_OWNERDRAWN的值傳遞給CreateWindowEx調用,但它似乎沒有效果。我如何防止豐富的編輯控件繪製任何東西,以便所有者可以繪製它?如何使用所有者繪製的豐富編輯控件

我還試圖設置一個窗口子類,它簡單地忽略了WM_PAINT,但轉發了所有其他消息。這對我的整個系統造成了巨大的負面影響,也導致我的申請停止。

編輯:顯然,系統仍然期望BeginPaint和EndPaint響應WM_PAINT,即使您返回0並且不繪製任何東西。我的系統不再死亡,並且我的應用程序不再停止,豐富的編輯當然不再繪畫任何東西,但我仍然無法在該區域渲染我的Direct3D9文本。 :(

編輯:。事實證明,其實,你沒有通過ID3DXFont::GetDC()文檔不清楚返回的DC的所有權做的,但問題就迎刃而解了

回答

0

的RichEdit控件不支持業主繪圖窗口麥粒腫,所以你不能使用SS_OWNERDRAWN或相似。

至於WM_PAINT,根本無視繪畫消息不應該造成如此激烈的副作用,所以你一定是做了別人錯了。

+1

顯然,該系統預計調用BeginPaint和EndPaint,即使你回覆你處理消息e並且實際上不繪任何東西。一旦我這樣做了,問題就解決了 - RichEdit控件不再呈現,但它仍然會阻止我在該區域的DirectX9文本呈現。 – Puppy

相關問題