簡體   English   中英

MFC自定義控件背景/文本顏色

[英]MFC Custom Control Background/Text Color

因此,我已經使用MFC幾年了,制作了包括自定義控件在內的各種界面。 最近有人要求我開始制作一個可以動態設置背景和文本顏色的界面。 我開始研究此問題,並且遇到了使某些自定義控件無法正常運行的問題。 使用該接口,所有生成WM_CTLCOLOR消息的控件都可以很好地工作,以允許父級設置子級控件的顏色,但是並非我自定義的所有控件都會生成這些消息。 具體來說,我是基於CTabCrtl建立的一個類,還有一些基於CWnd的類。 這些類在調用繪畫之前似乎不會生成WM_CTLCOLOR消息。 我想知道是否有人對如何獲取控件父級CWnd的背景和文本顏色或如何手動創建WM_CTLCOLOR消息有任何想法。 我試圖獲取控件父級的當前DC,以便可以調用GetBkColor()和GetTextColor(),但這樣做似乎總是返回默認值。 我也嘗試過創建WM_CTLCOLOR消息,但不知道我應該在哪里創建它們或確切的語法。.任何幫助都將非常有用。

WM_CTLCOLOR的想法是必須從WM_PAINT和WM_ERASEBKGND內部調用。 在這種情況下,您將擁有DC。 您將消息發送給父母,然后得到畫筆,並設置了文本和背景顏色。

我只看到一個主要問題,即WM_CTLCOLOR不是真正的窗口消息...它只是從SDK中描述的各種WM_CTLCOLOR ...消息中合成的。

因此,該語法已在MSDN中進行了記錄。 將DC手柄投射到WPARAM上,並將窗口手柄投射到LPARAM ...

暫無
暫無

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

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