Могу ли я изменить высоту панели заголовка указанного окна? - PullRequest
2 голосов
/ 30 декабря 2008

Я хочу самостоятельно нарисовать заголовок окна моего приложения, поэтому я решил переопределить методы OnNcPaint (). Но я не знаю, как установить другую высоту панели заголовка. Каждый раз, когда я использую GetSystemMetrics (SM_CYCAPTION), он повторяет одно и то же значение.

Может кто-нибудь сказать мне, как это сделать? Спасибо!

Ответы [ 2 ]

4 голосов
/ 30 декабря 2008

Вы не можете изменить размер обычной нарисованной в Windows панели заголовков. Это определяется настройками пользователя и темой. Если вы рисуете вещи сами, вы также сами определяете размеры подписи. Вы можете рисовать все, что вы хотите, где угодно, так что вы можете закрасить заголовок над тем, что обычно считается клиентской областью. Чтобы этот дополнительный регион вел себя так, как будто это действительно строка заголовка, обработайте сообщение wm_NCHitTest и верните htCaption.

Обратите внимание, что GetSystemMetrics не принимает дескриптор окна в качестве одного из своих параметров. Это означает, что он не может возвращать специфичные для окна метрики. Как следует из названия, он дает вам общесистемные показатели.

0 голосов
/ 29 июля 2010

Вместо того, чтобы возиться с подписью, не используйте ее вообще. Вместо этого «придумайте» собственную подпись. Установите TPanel для выравнивания к верхней части окна и используйте его в качестве заголовка для этого окна.

...