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:

codice:
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;
}
Ovviamente la message box restituirà il messaggio "Cliccato id: 1280". Spero di aver capito bene cosa intendevi
No, questa è la notifica del messaggio che il controllo manda alla window!!!
Grazie lo stesso.

Comunque ho evitato di trasformarlo in char lavorando con un intero in questo modo:

unsigned int mItem=LOWORD(wParam);