簡體   English   中英

更改應用程序標題欄的顏色

[英]Change the color of the applications title bar

使用Delphi 7嘗試從窗口主題更改軟件標題欄的顏色。 我已經看到了允許您更改所有程序的所有標題欄的代碼,但是我只是想更改我的程序。

任何人都看過/做過這樣的事嗎? 如果需要,不要介意為組件付費。

我相信Windows在繪制包括標題欄的窗口框架時會向應用程序發送WM_NCPAINT消息。 默認行為是回退到繪制默認框架的默認Windows處理程序。 您可以替換它,也可以在此之后重新繪制標題欄部分。

這看起來像一個很好的例子: http : //delphi.about.com/od/adptips2006/qt/draw_captionbar.htm

Stijn的答案還不完整,因為(取消)激活窗口時,標題和邊框也會重新繪制。 因此,除了WM_NCPAINT之外,您還需要處理WM_NCACTIVATE 不幸的是,這不能簡單地替換,因為默認消息處理程序中有其他代碼(除了圖形代碼)需要執行。 但是,調用默認處理程序將導致首先繪制默認標題和邊框,然后您需要使用所需的顏色進行繪制,從而導致閃爍。

解決此問題的一種方法是調整調用默認消息處理程序的繪圖區域。 有關使用Windows API調用的示例的示例,請參閱“在XP上使用主題繪制標題欄” ,該示例應輕松轉換為Delphi。 請注意,這僅處理標題欄中的文本,但該原則適用。

您可能會看一下外觀庫。 DevExpress的ExpressSkin是一個不錯的選擇。

暫無
暫無

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

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