2009-01-28 9 views
0

Lorsque j'essaie de déplacer ma fenêtre (avec une souris) au-dessus de mon écran pour que la barre de titre soit masquée, les fenêtres la déplacent. Et si j'essaie de modifier la taille de la fenêtre en plus grand que l'espace de l'écran, les fenêtres la redimensionneront pour "ajuster" la résolution de l'écran. Il semble que Windows envoie un message wm_move s'il n'aime pas la taille ou la position. Est-ce qu'il y a un moyen d'éviter cela?Comment empêcher les fenêtres de redimensionner et de déplacer votre fenêtre?

Il semble que je peux appeler setwindowpos et placer la fenêtre où je voudrais avec quelle taille je voudrais.

+0

Qu'essayez-vous de faire? En règle générale, si vous devez combattre le système d'exploitation, vous abordez le problème sous un mauvais angle ou vous essayez de faire quelque chose que vous ne devriez pas faire. –

Répondre

2

Dans la terre Win32, vous gérer WM_MOVING, WM_SIZING et WM_WINDOWPOSCHANGING et les transformer en un non-op. Vous voudrez probablement également gérer WM_ENTERSIZEMOVE et WM_EXITSIZEMOVE.

C'est en fait assez ennuyeux à moins que vous écrivez l'application pour vous-même.

1

Quel système d'exploitation? XP, Vista?

Dans XP, il semble que vous pouvez déplacer la barre de titre de 90% de l'écran avec la souris. Vous pouvez également essayer de faire un clic droit sur la barre de titre et en sélectionnant déplacer. Puis déplacez votre souris vers le bas de l'écran et à l'écart et utilisez les flèches vers le haut sur le clavier pour le déplacer. Pas vraiment aussi pratique que ça.

Editer: sur la seconde si la méthode Move avec les flèches ne fonctionne pas car une fois que vous appuyez sur Entrée, elle se réinitialise. Essayez peut-être le déplacement de la grille du programme. Je sais que vous pouvez créer une mise en page personnalisée, mais je ne suis pas sûr que vous puissiez le faire en dehors de l'écran.

0

Si vous essayez de masquer la barre de titre (appelée la zone non-client), vous devriez être en mesure d'attraper les messages NC_PAINT et d'empêcher leur traitement ... il y a un tas de message NC_ qui contrôle l'affichage de la zone non-client d'une fenêtre.

Questions connexes