se il bottone destro del mouse è 0x0201 il tasto A cos'è????![]()
grazie ciao!!!!
se il bottone destro del mouse è 0x0201 il tasto A cos'è????![]()
grazie ciao!!!!
Non è affatto chiara la tua domanda! Cosa vuoi sapere: il codice ASCII del carattere 'A'?? Lo scan-code che invia la tastiera per il tasto 'A'?? E sopratutto con quali funzioni di gestione dell'input??Originariamente inviato da mamo139
se il bottone destro del mouse è 0x0201 il tasto A cos'è????![]()
Il codice ASCII della 'A' è 65 (0x41) e lo scan-code (se non mi sbaglio) è 0x1C sulle tastiere AT.
Andrea, andbin.dev – Senior Java developer – SCJP 5 (91%) • SCWCD 5 (94%)
java.util.function Interfaces Cheat Sheet — Java Versions Cheat Sheet
Spreca un po' di tempo nel porre le tue domande aggiungendo qualche dettaglio in più, visto che spesso i titoli non aiutano ("messaggi" è forse un po' criptico e sintetico, oltreché oscuro) e il testo neppure (così impedisci anche di risalire ad un titolo decente da attribuire alla discussione, cosa che normalmente dovresti fare tu, non io).Originariamente inviato da mamo139
se il bottone destro del mouse è 0x0201 il tasto A cos'è????![]()
![]()
MARCO BREVEGLIERI
Software and Web Developer, Teacher and Consultant
Home | Blog | Delphi Podcast | Twitch | Altro...
scusami ma la guida che sto leggendo li chiama prorpio "messaggi"![]()
i messaggi (vedi anche ciclo dei messaggi)
nella programmazione win32 a finistre da quel che ho capito sono degli input che puoi dare al programma...codice:while(GetMessage(&Msg, NULL, 0, 0) > 0) { TranslateMessage(&Msg); DispatchMessage(&Msg); }
la guida mi fa degli esempi
#define WM_INITDIALOG 0x0110
#define WM_COMMAND 0x0111
#define WM_LBUTTONDOWN 0x0201
io vorrei però avere una lista completa di anche tutti i tasti...
spero di essere stato chiaro questa volta...
grazie ciao![]()
Anche la guida di un biologo parla genericamente di "cellule", ma ovviamente ci aggiunge qualcosa di contorno per contestualizzare la cosa.Originariamente inviato da mamo139
scusami ma la guida che sto leggendo li chiama prorpio "messaggi"![]()
![]()
Ho corretto il titolo.
MARCO BREVEGLIERI
Software and Web Developer, Teacher and Consultant
Home | Blog | Delphi Podcast | Twitch | Altro...
Ti servono i file di intestazione di Windows, inclusi nel platform SDK (ad es. windows.h, winbase.h, ...); nello specifico la definizione delle costanti dei messaggi è situata nel file winuser.h.
Il platform SDK, che include un'ampia guida di riferimento alle API, esempi, le intestazioni in questione e molto altro, può essere scaricata a questo indirizzo: http://www.microsoft.com/downloads/d...displaylang=it
Amaro C++, il gusto pieno dell'undefined behavior.
Ok ... è già decisamente più chiaro. Stiamo quindi parlando di programmazione Win32.Originariamente inviato da mamo139
i messaggi (vedi anche ciclo dei messaggi)
nella programmazione win32 a finistre da quel che ho capito sono degli input che puoi dare al programma...codice:while(GetMessage(&Msg, NULL, 0, 0) > 0) { TranslateMessage(&Msg); DispatchMessage(&Msg); }
la guida mi fa degli esempi
#define WM_INITDIALOG 0x0110
#define WM_COMMAND 0x0111
#define WM_LBUTTONDOWN 0x0201
io vorrei però avere una lista completa di anche tutti i tasti...
spero di essere stato chiaro questa volta...
grazie ciao![]()
Quelli che tu chiami "input da dare al programma", sono dei messaggi. In Win32 ogni thread ha la sua coda dei messaggi e tutta l'interfaccia utente (GUI) è gestita "ad eventi". Ogni messaggio ricevuto viene traslato con TranslateMessage (per quanto riguarda i virtual-key code) e poi "dispacciato" con DispatchMessage alla corretta window-procedure.
All'interno della struttura MSG è contenuto il campo 'message' che contiene appunto il messaggio come quelli che hai indicato (WM_INITDIALOG, ecc....).
I messaggi che credo ti possano interessare (per la gestione della tastiera, intendo) sono WM_KEYDOWN e WM_KEYUP. Per questi messaggi il parametro WPARAM contiene un codice che si chiama virtual-key code. L'elenco di questi codici lo trovi <qui>.
Poi comunque non so cosa devi fare di preciso. Sappi solo che se vuoi fare qualche gestione di questi messaggi non la devi fare in quel loop dei messaggi ma all'interno di una window-procedure.
![]()
Andrea, andbin.dev – Senior Java developer – SCJP 5 (91%) • SCWCD 5 (94%)
java.util.function Interfaces Cheat Sheet — Java Versions Cheat Sheet
intendi qua dentro???Originariamente inviato da andbin
Poi comunque non so cosa devi fare di preciso. Sappi solo che se vuoi fare qualche gestione di questi messaggi non la devi fare in quel loop dei messaggi ma all'interno di una window-procedure.
![]()
![]()
quindi nel codice per intendere ad esempio la A dovrei scriverecodice:LRESULT CALLBACK WndProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam) { switch(msg) { case WM_CLOSE: DestroyWindow(hwnd); break; case WM_DESTROY: PostQuitMessage(0); break; default: return DefWindowProc(hwnd, msg, wParam, lParam); } return 0; }
WM_KEYDOWN 41????
Esatto. Esempio:Originariamente inviato da mamo139
intendi qua dentro???![]()
codice:LRESULT CALLBACK WndProc (HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam) { switch (uMsg) { .... .... case WM_KEYDOWN: if (wParam == 'A') { .... } return 0; .... .... } return DefWindowProc (hWnd, uMsg, wParam, lParam); }
Andrea, andbin.dev – Senior Java developer – SCJP 5 (91%) • SCWCD 5 (94%)
java.util.function Interfaces Cheat Sheet — Java Versions Cheat Sheet
Programmando in win32 devi utilizzare un switch contenuto nella CALLBACK che processi i vari case ai quali fai corrispondere la pressione dei tasti.
Definisci all'interno di questo switch i case di cui hai bisogno.
Ciao!