DirectX/Message loop: differenze tra le versioni

Contenuto cancellato Contenuto aggiunto
Nessun oggetto della modifica
Nessun oggetto della modifica
Riga 76:
'''DefWindowProc''' è invece una richiesta che facciamo a Windows di gestire il messaggio. In altre parole, non avendo alcun interesse nel gestire tutti i messaggi esistenti, chiediamo a Windows di gestire in modo ''standard'' tutti quelli che noi scartiamo.
 
== Altri messaggi da conoscere ==
{{Avanzamento|25%|12 ottobre 2011}}
Molti di questi messaggi non li useremo nel nostro libro, ma sono sicuramente utili per un buon videogioco. Evidenzierò in grassetto quelli su cui dovremo lavorare più approfonditamente. Per gli altri si può vedere la [http://msdn.microsoft.com/en-us/library/windows/desktop/ms644927(v=vs.85).aspx libreria MSDN].
{| class="wikitable"
|-
| '''WM_ACTIVATE'''
| Questo messaggio è inviato alla finestra quando viene selezionata (attivata). Per attivare una finestra è sufficiente cliccarvici su, o selezionarla dalla taskbar dopo averla ridotta ad icona ad esempio. Lo stesso messaggio viene inviato anche quando la finestra viene disattivata. E' possibile riconoscere le due situazioni interpretando il valore in wParam.
|-
| WM_KEYDOWN
| Viene inviato quando viene schiacciato un tasto sulla tastiera. Viene inviato più volte se il tasto resta premuto. Il codice del tasto lo si può trovare in wParam, mentre in lParam si trovano alcune flags (conteggio di ripetizione, scancode OEM, ...)
|-
| WM_KEYUP
| Viene inviato quando viene rilasciato un tasto dalla tastiera. Il formato è uguale a WM_KEYDOWN
|-
| WM_CHAR
| Questo messaggio viene creato da TranslateMessage. Viene generato immediatamente dopo un WM_KEYDOWN. Questa volta in wParam sarà contenuto il codice ASCII del carattere da rappresentare. Generalmente si sceglierà se gestire WM_KEYDOWN o WM_CHAR, ignorando l'altro.
|-
| WM_LBUTTONDOWN
| Segnala lo schiacciamento del tasto sinistro del mouse. In wParam sono contenute delle flag che indicano lo stato di altri tasti, e dei tasti SHIFT, ALT, CTRL della tastiera. In lParam invece troviamo le coordinate del mouse.
|-
| WM_LBUTTONUP
| Pulsante sinistro rilasciato. Stesso formato di WM_LBUTTONDOWN
|-
| WM_MBUTTONDOWN, WM_RBUTTONDOWN
| Schiacciamento del pulsante centrale e destro del mouse.
|-
| WM_MBUTTONUP, WM_RBUTTONUP
| Rilascio del pulsante centrale e destro del mouse.
|-
| WM_MOUSEWHEEL
| Indica l'uso della rotellina di scroll. Nella high word di wParam troviamo un valore (delta) che indica una quantità di spostamento. Nella low word altre flags, e in lParam le coordinate del mouse.
|-
| WM_MOUSEHWHEEL
| Usato per segnalare l'uso della rotellina orizzontale. Stesso formato di WM_MOUSEWHEEL.
|-
| '''WM_MOUSEMOVE'''
| Viene inviato ogni volta che il mouse compie un movimento sulla finestra. Il formato è lo stesso di WM_LBUTTONDOWN.
|-
| WM_MOUSEHOVER
| Il mouse entra nella finestra.
|-
| WM_MOUSELEAVE
| Il mouse esce dalla finestra. lParam e wParam non sono usati.
|-
| '''WM_CREATE'''
| Viene inviato subito dopo la chiamata a ''CreateWindow'', prima che la finestra sia visibile.
|-
| '''WM_SIZE'''
| Viene inviato ogni volta che la finestra subisce un ridimensionamento. Se trascinate le ancore ai lati della finestra, verrà inviato un WM_SIZE per ogni pixel di spostamento.
|-
| WM_MOVE
| Per ogni pixel di spostamento della finestra nello schermo, viene inviato un messaggio WM_MOVE.
|-
| '''WM_ENTERSIZEMOVE'''
| Inviato quando l'utente clicca sulle ancore di ridimensionamento ai lati.
|-
| '''WM_EXITSIZEMOVE'''
| L'utente ha rilasciato le ancore di ridimensionamento.
|}
{{Avanzamento|2575%|12 ottobre 2011}}