我想自繪我的應用程序窗口的標題欄,所以我決定重寫OnNcPaint()方法。但我不知道如何設置標題欄的不同高度。每次使用GetSystemMetrics(SM_CYCAPTION)時,它都會重新獲得相同的值。我可以更改指定窗口標題欄的高度嗎?
誰能告訴我該怎麼做?謝謝!
我想自繪我的應用程序窗口的標題欄,所以我決定重寫OnNcPaint()方法。但我不知道如何設置標題欄的不同高度。每次使用GetSystemMetrics(SM_CYCAPTION)時,它都會重新獲得相同的值。我可以更改指定窗口標題欄的高度嗎?
誰能告訴我該怎麼做?謝謝!
您不能更改正常的Windows繪製的標題欄的大小。這取決於用戶設置和主題。如果你自己繪製東西,那麼你還要自己定義標題尺寸。你可以隨心所欲地繪製任何你想要的東西,這樣你就可以在通常被認爲是客戶區的東西上繪製標題欄。要使該額外區域的行爲與標題欄一樣,請處理wm_NCHitTest
消息並返回htCaption
。
請注意GetSystemMetrics
不接受窗口句柄作爲其參數之一。這意味着它無法返回特定於窗口的指標。顧名思義,它爲您提供系統範圍的指標。
不要搞亂標題,根本不要使用它。相反,「發明」你自己的標題。設置TPanel以對齊窗口的頂部,並將其用作該窗口的標題。