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)
poi ho la seguente funzione di gestione degli eventi.codice:int WINAPI WinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow) { DialogBoxParam(hInstance,MAKEINTRESOURCE(IDD_DIALOGO),0,DlgProc,0); return 0;}
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; }


Rispondi quotando