Je suis en train de coder une fenêtre non rectangulaire personnalisée avec des boutons tels que minimiser et fermer les bitmaps. Here is my code just for now Le problème est que la fenêtre personnalisée ne reçoit pas les messages de la souris lorsqu'elle survole des régions alpha non nulles.La fenêtre WS_EX_LAYERED ne reçoit pas les événements souris
Répondre
Depuis minimiser et les boutons de fermeture sont espace client de fenêtre à l'extérieur, vous devez capturer WM_NCLBUTTONUP en plus WM_LBUTTONUP
Je vois. Comme je renvoie presque toujours HTCAPTION dans WM_NCHITTEST, j'ai besoin de traiter les messages de la souris non-client. Mais j'ai maintenant un problème avec WM_NCLBUTTONUP - il est déclenché seulement après un double clic sur la fenêtre. Est-ce spécifique au système d'exploitation? J'ai Win XP SP3. J'ai vu une solution pour ce problème impliquant SetWindowsHook pour les messages de la souris, mais c'est plutôt moche. – vian
Il existe une différence entre WM_NCLBUTTONUP et WM_LBUTTONUP. À partir de MSDN ** WM_LBUTTONUP **: * Si la souris n'est pas capturée, le message est publié dans la fenêtre sous le curseur. Sinon, le message est enregistré dans la fenêtre qui a capturé la souris. * ** WM_NCLBUTTONUP **: * Si une fenêtre a capturé la souris, ce message n'est pas publié. * – mmonem
Il ne compile pas. Au revoir. –