ciao, sto provando a fare un programmino con GUI con le winAPI ma ho qualche problema....
ho creato un dialogo e l'ho inizializzato con la main (tralascio gli include delle librerie e dei file delle risorse)
codice:
int WINAPI WinMain( HINSTANCE hInstance,
HINSTANCE hPrevInstance,
LPSTR lpCmdLine,
int nCmdShow)
{
DialogBoxParam(hInstance,MAKEINTRESOURCE(IDD_DIALOGO),0,DlgProc,0);
return 0;}
poi ho la seguente funzione di gestione degli eventi.
penso il mio problema stia nell'avere l'handle dell'EDIT oppure nel cast dei parametri passati ai messaggi
codice:
BOOL CALLBACK DlgProc( HWND hwndDlg,
UINT Msg,
WPARAM wParam,
LPARAM lParam)
{
if (Msg==WM_CLOSE) //se è cliccata la X in alto a sinistra chiude il prog,
{ EndDialog(hwndDlg, 0);
return TRUE; }
if (Msg==WM_COMMAND) //gestione del comando
{
WORD wNotifica = HIWORD(wParam); //prendo i
WORD wId = LOWORD(wParam); //parametri
if (wNotifica == STN_CLICKED && wId == IDC_BUTTON)
//se è premuto il bottone di mio interesse //cambio il testo del bottone, leggo il
//testo e setto l'edit come readonly
{ HWND hStat = (HWND)lParam;
//handle del bottone
const char* pTesto;
char*buff;
pTesto = "Disconnetti";
//cambio il testo, tutto OK
SendMessage( hStat, WM_SETTEXT, 0, (LPARAM)pTesto);
//questo non funziona
HWND Text =GetDlgItem(hwndDlg, IDC_USERID);
//ottengo l'handle del testo
SendMessage(Text, EM_GETLINE, (WPARAM)0, (LPARAM)(LPCSTR)buff); //leggo il testo.... non va(ho //provato a inviare il testo
//ottenuto //con una socket ma non funziona
SendMessage(Text, EM_SETREADONLY, 0, TRUE);
//setto readonly
//ma non va
return TRUE;
}
}
return FALSE;
}