programmi Win32 in genere hanno un ciclo di messaggi che loop chiamando GetMessage o PeekMessage, e quindi chiama DispatchMessage di inviare il messaggio alla finestra proceedure della relativa finestra.È necessario chiamare DispatchMessage nei programmi win32?
Ma è davvero necessario farlo? Posso invece cercare nell'oggetto MSG direttamente nel loop dei messaggi ed eseguire le azioni necessarie senza chiamare DispatchMessage? Sto parlando di casi in cui ho una sola finestra senza altri controlli della finestra, ad esempio se la finestra viene utilizzata solo come finestra di visualizzazione direct3d, quindi i messaggi verranno sempre indirizzati all'unica finestra.
Principalmente sono solo curioso ma potrebbe anche portare a certi aspetti del mio codice che sono anche più puliti.
Questo ha senso, grazie! – jcoder
'DispatchMessage' e' CallWindowProc' fanno anche cose come considerare gli hook di Windows. Anche con una singola finestra è necessario utilizzarli. Credo che alcuni messaggi non possano essere elaborati correttamente al di fuori di "DispatchMessage", ma non ho esempi in cima alla mia testa. Forse cose come 'WM_PAINT'. – tenfour
@tenfour, forse più correttamente è dire che alcuni messaggi saranno comunque chiamati tramite WindowProc e non esisteranno come messaggi separati sulla coda. Quindi, WindowProc è un must in ogni caso. Ancora quelli pubblicati in coda possono essere gestiti in entrambi i modi. Non riesco a pensare ai motivi per cui uno vorrebbe gestirli proprio lì sul lato della pompa. –