2009-01-17 10 views
1

J'utilise le Win32 Platform SDK (sur XP Pro) pour créer une application composée d'une seule fenêtre principale avec un certain nombre de fenêtres enfants. Les styles passés à CreateWindow sont WS_OVERLAPPEDWINDOW | WS_VISIBLE (pour la fenêtre principale) et WS_CHILDWINDOW | WS_VISIBLE pour les enfants. L'erreur que je vois est que lorsqu'une autre application est déplacée au-dessus de mon application, les fenêtres sous-jacentes ne sont pas redessinées. Une façon simple (mais astucieuse) de forcer une mise à jour est de «trémousser» la barre de titre.Win32 SDK fenêtre enfant peinture (C/C++)

Je suppose qu'il me manque un message Windows ou n'appelant pas une fonction win32 correctement. La majeure partie de mon code provient directement du livre 95 de Petzold. Si cela est important, la fenêtre principale n'a pas besoin de dessiner quoi que ce soit: les fenêtres enfants s'occupent de toutes les tâches d'affichage.

Répondre

0

Il semble que vous n'appeliez pas DefWindowProc pour le message WM_PAINT. Êtes-vous sûr de vouloir correctement gérer l'événement WM_PAINT? En particulier assurez-vous que ce message WM_PAINT que vous appelez:

DefWindowProc(hwnd,msg,wParam,lParam); 

WM_PAINT sera appelée lorsque la fenêtre doit être repeint.

Si vous essayez de gérer votre propre dessin de la fenêtre, assurez-vous que vous appelez BeginPaint et EndPaint dans votre gestionnaire.

Questions connexes