Visualizzazione dei risultati da 1 a 5 su 5
  1. #1
    Utente di HTML.it
    Registrato dal
    Jul 2001
    Messaggi
    97

    Visual C++, come passare da un EditBox ad un altra ?

    Ciao,
    sono un novellino nella programmazione in VC++ ( giusto un paio di giorni, per cui perdonatemi per la banalita' del quesito che vi sto' per proporre ( sara' anche banale, ma non riesco a risolverlo...).

    Dunque, ho creato una semplicissima DialogBox contenente solo 4 EditBox.
    Cio' che vorrei fare e' poter inserire una stringa nella prima EditBox e, terminato l' inserimento ( premendo il tasto return) vorrei che il cursore passasse all' ultima EditBox.

    Come si puo' fare ?( senza sfruttare i caratteri di tabulazione...)


    Vi dico cio' che ho fatto io senza pero' un buon esito:
    Ho cercato di risolvere il problema con la funzione membro SetFocus().
    Ecco come :
    Ho fatto il subclasing dei controlli di modifica.
    In pratica, ho creato una nuova classe ( Initialize, classe derivata da CEdit).

    Tale classe contiene una funzione membro:
    void primo::OnChar(UINT nChar, UINT nRepCnt, UINT nFlags);

    Lo scopo di tale funzione e' quella di testare il carattere inviato dalla tastiera e, nel caso in cui venisse premuto il tasto return
    (VK_RETURN) sostituirlo con un carattere NULL, poi processarlo con la funzione DefWindowProc(....)
    Fatto cio' eliminato quindi il carattere return, la funzione prosegue con l' istruzione SetFocus().

    ecco come ho interpretato l' istruzione di SetFocus()
    Codice PHP:
         MessageBox"Sposto il cursore in un altra EditBox ( forse..)");
            
    CWnd pText1;
        
    pText1 =  GetDlgItem(IDC_EDIT_TEXT2);
        
    pText1->SetFocus(); 
    (Ho ovviamente creato una variabile di controllo di tipo CInitialize collegata all' HANDLE dell' EditrBox in questione)

    Il programma giunto in prossimita' della funzione SetFocus() si blocca ed appare la finestra d' errore di Windows ( Il programma ha eseguito un operazione non valida ecc..).

    Se invece creo una funzione OnSetfocusEditText2() membro della classe principale del progetto ( dlg) e riporto le istruzioni soprocitate, SetFocus() funziona correttamente.
    Come mai ?


    Mi rendo conto di non essere stato molto chiaro, ( anche perche' ho una grande confusione in testa), ma se qualcuno ha capito qualcosa e mi vuol rispondere, o solo se sa come cambiare il focus da un EditBox all' altra premendo il tasto return, fatemi sapere...
    Buona nottata a tutti
    Sergio

  2. #2
    Utente di HTML.it
    Registrato dal
    Jul 2001
    Messaggi
    97
    :quote:
    Up Up....
    Ciao a tutti

  3. #3
    Utente di HTML.it L'avatar di Invio
    Registrato dal
    Sep 2003
    Messaggi
    60
    Ciao io programmo con CBuilder
    non ho idea se ti potra essere utile,

    io dopo dopo aver premuto il tasto return
    uso la funzione

    ActiveControl=Edtit1;
    e passo il cursore alle varie edit che voglio
    o altri componenti;


  4. #4
    Utente di HTML.it
    Registrato dal
    Jan 2003
    Messaggi
    60
    prova ad usare la PreTranslateMessage

  5. #5
    Utente di HTML.it
    Registrato dal
    Jul 2001
    Messaggi
    97
    Grazie per la dritta...
    Buona serata
    Sergio

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.