Credo di chiedere forse una cosa bizzarra!!!
E' possibile convertire il contenuto, dei 16 bit di LOWORD(wParam) quale identificatore del controllo spedito a WM_COMMAND, in una stringa?
Credo di chiedere forse una cosa bizzarra!!!
E' possibile convertire il contenuto, dei 16 bit di LOWORD(wParam) quale identificatore del controllo spedito a WM_COMMAND, in una stringa?
Se vuoi semplicemente convertire il valore restituito dalla macro LOWORD, che è di tipo WORD, definito come unsigned short int, puoi semplicemente fare una cosa del genere:
Ovviamente la message box restituirà il messaggio "Cliccato id: 1280". Spero di aver capito bene cosa intendevicodice:LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam) { WORD wmId, wmEvent; TCHAR msg[32]; switch (message) { case WM_COMMAND: wmId = LOWORD(wParam); wmEvent = HIWORD(wParam); if(wmEvent == BN_CLICKED) { switch(wmId) { case 0x500: wsprintf(msg,_T("Cliccato Id: %hu"),wmId); MessageBox(hWnd,msg,_T("Cliccato"),32); break; } } case WM_DESTROY: PostQuitMessage(0); break; default: return DefWindowProc(hWnd, message, wParam, lParam); } return 0; }
No, questa è la notifica del messaggio che il controllo manda alla window!!!Originariamente inviato da zero85
Se vuoi semplicemente convertire il valore restituito dalla macro LOWORD, che è di tipo WORD, definito come unsigned short int, puoi semplicemente fare una cosa del genere:
Ovviamente la message box restituirà il messaggio "Cliccato id: 1280". Spero di aver capito bene cosa intendevicodice:LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam) { WORD wmId, wmEvent; TCHAR msg[32]; switch (message) { case WM_COMMAND: wmId = LOWORD(wParam); wmEvent = HIWORD(wParam); if(wmEvent == BN_CLICKED) { switch(wmId) { case 0x500: wsprintf(msg,_T("Cliccato Id: %hu"),wmId); MessageBox(hWnd,msg,_T("Cliccato"),32); break; } } case WM_DESTROY: PostQuitMessage(0); break; default: return DefWindowProc(hWnd, message, wParam, lParam); } return 0; }
Grazie lo stesso.
Comunque ho evitato di trasformarlo in char lavorando con un intero in questo modo:
unsigned int mItem=LOWORD(wParam);