2008-12-30 9 views
2

Je veux dessiner moi-même la barre de légende de la fenêtre de mon application, j'ai donc décidé de remplacer les méthodes OnNcPaint(). Mais je ne sais pas comment définir une hauteur différente de la barre de légende. Chaque fois que j'utilise GetSystemMetrics (SM_CYCAPTION), il retranscrit la même valeur.Puis-je modifier la hauteur de la barre de légende d'une fenêtre spécifiée?

Quelqu'un peut-il me dire comment le faire? Je vous remercie!

Répondre

4

Vous ne pouvez pas modifier la taille d'une barre de légende Windows normale. Cela est déterminé par les paramètres de l'utilisateur et le thème. Si vous dessinez vous-même, vous définissez également les dimensions de la légende. Vous pouvez peindre ce que vous voulez où vous voulez, de sorte que vous pouvez peindre votre barre de légende sur ce qui serait normalement considéré comme la zone client. Pour faire en sorte que cette région supplémentaire se comporte comme si elle était réellement la barre de légende, gérer le message wm_NCHitTest et renvoyer htCaption.

Notez que GetSystemMetrics n'accepte pas un descripteur de fenêtre comme l'un de ses paramètres. Cela signifie qu'il ne peut pas renvoyer des métriques spécifiques à une fenêtre. Comme son nom l'indique, il vous donne des métriques à l'échelle du système.

0

Au lieu de jouer avec la légende, ne l'utilisez pas du tout. Au lieu de cela, «inventez» votre propre légende. Définissez un TPanel pour l'aligner en haut de votre fenêtre et utilisez-le comme légende pour cette fenêtre.

Questions connexes