Visualizzazione dei risultati da 1 a 3 su 3
  1. #1

    Leggere un int da un control edit

    Ciao! Mi sto apprestando a scrivere il mio primo programmino in visual c++. Per non peccare di presunzione ho deciso di fare una semplicissima finestra di dialogo con 2 control edit ed un pulsante. Il pulsante legge il numero del primo control edit, ne calcola il doppio e mette il risultato nel secondo edit. Piazzare i controlli è stato banale, il problema è arrivato nello scrivere il codice. Mi sono armato di manuale visual c++ e documentazione MFC ma non sono riuscito a trovare una funzione che mi legga un int da un control edit (e neanche una che me lo scriva). Ho trovato delle funzioni (SetWindowText e GetWindowText) che fanno esattamente questo ma con le stringhe e non con gli interi!! Tant'è che il problema l'ho risolto in questa maniera:

    CString str1, str2;
    (GetDlgItem(IDC_EDIT1))->GetWindowText(str1);
    int numero = atoi(str1);
    numero = numero*2;
    str2.Format("%d", numero);
    (GetDlgItem(IDC_EDIT2))->SetWindowText(str2);

    Praticamente invece di leggere l'int dalla casella ne leggo la stringa, la converto in int tramite atoi (funzione di libreria), manipolo aritmeticamente il numero (raddoppiandolo), costruisco una nuova stringa con Format e la piazzo nella seconda casella. Non penso che sia un esempio di buona programmazione, ma è l'unica strada che ho trovato. Avevo provato ad impostare con class wizard una variabile a di tipo int relativa alla prima casella control edit e un'altra b di tipo int; ma non so come usare queste variabili ed il manuale non aiuta molto Nella documentazione ho cercato invano una funzione del tipo SetControlEdit ma ... nisba

    Sapreste darmi qualche un'indicazione ??

  2. #2
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,254

    Re: Leggere un int da un control edit

    Originariamente inviato da xeroflex
    Mi sono armato di manuale visual c++ e documentazione MFC ma non sono riuscito a trovare una funzione che mi legga un int da un control edit (e neanche una che me lo scriva).
    Guarda CWnd::GetDlgItemInt e CWnd::SetDlgItemInt.

    Ah, dall'editor delle risorse imposta il campo di edit in modo che abbia il flag ES_NUMBER.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    Java Versions Cheat Sheet

  3. #3
    grazie tantissimo era proprio quello che cercavo!

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.