Domanda

Sto cercando di rendere una finestra che si chiude quando fai clic all'esterno di esso , e al momento sto cercando di farlo gestendo la funzione WndProc.

Nessuno dei messaggi che sto ricevendo finora sembra utile, ma ce ne sono alcuni che non capisco affatto. Cosa rappresentano i codici 0x0118, 0xC123, 0xC128 e 0xC12E?

È stato utile?

Soluzione

0x0118: WM_SYSTIMER (non documentato) utilizzato per i lampeggi del cursore

Gli altri tre dovrebbero essere messaggi definiti dall'applicazione (qualsiasi cosa nell'intervallo da 0xC000 a 0xFFFF), quindi non li troverai da nessuna parte.

Altri suggerimenti

Un modo semplice sarebbe quello di catturare il mouse. Quando il mouse viene catturato, si ottiene un evento fuori dalla finestra, quindi la cattura viene disattivata.

Un modo più difficile sarebbe quello di impostare un gancio per finestre del mouse di basso livello. Per eseguire un hook globale, dovrai inserire il tuo codice hook in una DLL non gestita.

Un davvero semplice sarebbe chiudere il modulo quando è disattivato.

Modifica :

Spiacenti. Mi sono appena reso conto di non aver risposto alla tua domanda diretta sugli ID messaggio. Il messaggio 0x118 non è definito in winuser.h, quindi presumo sia un ID messaggio non documentato. Gli ID messaggio nell'intervallo da 0xC000 a 0xFFFF sono messaggi definiti dall'applicazione. Questi ID vengono restituiti da RegisterWindowMessage .

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top