Newsgroup: it.comp.programmare.win32
Titolo: Edit in MFC

Allora...
A quanto pare ho dimestichezza con C++ ed ho deciso di avvicinarmi ad MFC.
Ma sono rimasto come un cretino...
E' possibile che non riesco a scrivere in una Edit Box?
Ho una funzione in C++ che rileva l'indirizzo IP del client.
Per esercizio ho creato un Dialog e su di esso ho inserito una label con
scritto "Indirizzo IP" ed una edit dove vorrei inserire l'indirizzo IP
rilevato dalla mia funzione. Se sull'evento OnOnInitDialog della mia dialog
scrivo
CMFCDlg::MessageBox(IPAddress(),"Funziona!",MB_OK);
va tutto ok.
Cosa devo fare per scriverlo della edit?
Grazie a tutti!

 Cosa devo fare per scriverlo della edit?
Modo 1:
Setti una variabile membro CString con ClassWizard legata alla tua EditBox:
poi con una semplice assegnazione sTuaVar = "Testo"; inserisci il testo che
vuoi; infine devi chiamare UpdateData(FALSE); per visualizzarlo.
Modo 2:
Ottieni il CWnd della tua EditBox scrivendo
(CWnd*) pEdit = (CWnd*) GetDlgItem(IDC_MYEDIT);
poi con pEdit->SetWindowText("Testo"); cambi il testo al suo interno.
Buon lavoro
Drugo

 ha scritto nel messaggio
news:9k6nvg$fmg$1...@lacerta.tiscalinet.it...


 visualizzare il risultato di una funzione  [ ... ]
Dipende da cosa ritorna la tua funzione;
void SetWindowText( LPCTSTR lpszString );
se gli passi un parametro diverso non funziona.
Infine un consiglio:
quando hai dei dubbi impara a consultare MSDN: ci vuole un pò di tempo
(soprattutto le prime volte quando non sai cosa cercare), ma una volta che
ti sei abituato, risulta essere una vera manna.
Ancora buon lavoro ( o buone Ferie!?!)
Drugo

 ha scritto nel messaggio
news:9k9iop$e8j$1...@pegasus.tiscalinet.it...


 La mia funziona ritorna una semplice stringa con >l'indirizzo IP della
macchina...
[ ... ]
Onestamente non lo so; dici che con una MsgBox la cosa funziona e MSDN
riporta lo stesso tipo di parametro:
LPCTSTR is A 32-bit pointer to a constant character string
quindi è un puntatore 32 bit a una stringa di caratteri.
e questo per entrambe le funzioni, poi precisa
SetWindowText
lpszString
Points to a CString object or null-terminated string to be used as the new
title or control text
MessageBox
lpszText
Points to a CString object or null-terminated string containing the message
to be displayed.
che se non sbaglio è la stessa cosa.
Di che tipo è la stringa che ritorna la tua funzione ?
Una CString ? Oppure è un puntatore ?
Drugo

 ha scritto nel messaggio
news:9kc6c1$t43$1...@lacerta.tiscalinet.it...


 }
[...]
Provo a rispondere io a quanto succede. Se ho ragione il problema è che la
MessageBox riconosce il carattere '\n' come new-line (con la message box
puoi anche andare a capo e scrivere quindi testi su più linee).
Con l'edit control no; o meglio se l'edit control non è multi linea non
riconosce il '\n' come carattere speciale ma "tenta" di stamparlo (e così ti
trovi della sporcizia come ultimo carattere).
Se non ricordo male l'edit control non multi-linea non riconosce neanche il
carattere tabulazione '\t'.
Se togli il new-line dalla wsprintf dovrebbe funzionare correttamente.
Ciao
Porlock

 riconosce il '\n' come carattere speciale ma "tenta" di stamparlo (e cosě



La risposta semplice a "perché il testo resta selzionato" è perché si !
Immagino che funzioni così l'edit-ctrl ... boh non so comunque ti posso dare
il codice per rimuovere la selezione
CEdit* pEdit;
pEdit = (CEdit*)GetDlgItem(IDC_TXTIP);
pEdit->SetSel( -1, 0);
Ciao
Porlock.

Ho inserito il tuo codice... ma non va...
Vado a rivedere i parametri del metodo SetSel.
Ciao.
"Porlock" <por...@SUPERSPAMfreemail.it> ha scritto nel messaggio
news:9kmfm3$ah0$1...@fe2.cs.interbusiness.it...
