Могу ли я изменить высоту строки заголовка указанного окна?

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

Кто-нибудь может сказать мне, как это сделать? Благодарю вас!


person user26404    schedule 30.12.2008    source источник


Ответы (2)


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

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

person Rob Kennedy    schedule 30.12.2008

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

person Z80    schedule 29.07.2010