Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 12
  1. #1
    Utente di HTML.it L'avatar di Il Pazzo
    Registrato dal
    Jul 2004
    Messaggi
    1,071

    [C]Recuperare contenuto di un edit

    Allora... Parlo di programmazione Win32...

    Ho creato la mia Textbox che accetta in input solo interi... ora devo salvare il contenuto della textbox in una variabile di tipo int... Ho fatto così:

    codice:
    int coppie = GetDlgItemInt(TextBox,
    				   IDC_TXTBOX,
    		                   NULL,
    				   FALSE
    				   );
    Debuggando però vedo che assume valore 0... che mi pare di aver capito lo assuma anche in caso di errore....
    come posso correggere???

    grazie...

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

    Re: [C++]Recuperare contenuto di un edit

    Originariamente inviato da Il Pazzo
    Ho creato la mia Textbox che accetta in input solo interi... ora devo salvare il contenuto della textbox in una variabile di tipo int... Ho fatto così:

    codice:
    int coppie = GetDlgItemInt(TextBox,
    				   IDC_TXTBOX,
    		                   NULL,
    				   FALSE
    				   );
    Debuggando però vedo che assume valore 0... che mi pare di aver capito lo assuma anche in caso di errore....
    come posso correggere???

    grazie...
    Il primo parametro deve essere l'handle della dialog-box, non della text-box. Inoltre sarebbe buona cosa ottenere il BOOL con il terzo parametro (che ti dice se la funzione ha avuto successo o meno).

    P.S.: Nel titolo forse è meglio se metti "C", in quanto è più "C" che C++.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    Java Versions Cheat Sheet

  3. #3
    Utente di HTML.it L'avatar di Il Pazzo
    Registrato dal
    Jul 2004
    Messaggi
    1,071
    Allora forse non va bene per me questa funzione.... perchè io lo devo prendere dalla text-box... no da una dialog box...


    (per quanto riguarda il titolo non me lo cambia.. caso mai poi ci pensano i mod... cavolo ancora non riesco a distinguere le istruzioni del c dal c++)

  4. #4
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,254
    Originariamente inviato da Il Pazzo
    Allora forse non va bene per me questa funzione.... perchè io lo devo prendere dalla text-box... no da una dialog box...
    Ma scusa ... gli passi l'ID del controllo!!!
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    Java Versions Cheat Sheet

  5. #5
    Utente di HTML.it L'avatar di Il Pazzo
    Registrato dal
    Jul 2004
    Messaggi
    1,071
    ma l'ID è sempre della textbox non di una dialog box

  6. #6
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,254
    Originariamente inviato da Il Pazzo
    ma l'ID è sempre della textbox non di una dialog box
    Ahhhh

    Nel Platform SDK ci sono certe funzioni che prendono in input semplicemente un handle di finestra (che può essere l'handle di una finestra top-level o di un controllo) e ci sono certe funzioni che prendono l'handle di una finestra (in genere tipicamente una dialog-box) insieme all'identificativo di un controllo.

    In quest'ultimo caso, ci pensa la funzione ad ottenere l'handle del controllo!

    Prendiamo l'esempio di SendMessage / SendDlgItemMessage.

    SendMessage (HWND hWnd, UINT Msg, ........);

    SendDlgItemMessage (HWND hDlg, int nIDDlgItem, UINT Msg, ......);

    SendDlgItemMessage fa nient'altro che chiamare SendMessage, dopo aver ottenuto l'handle del controllo con GetDlgItem().

    Spero che sia chiaro, ora.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    Java Versions Cheat Sheet

  7. #7
    Utente di HTML.it L'avatar di Il Pazzo
    Registrato dal
    Jul 2004
    Messaggi
    1,071
    non ho capito mi dispiace...

    comunque ho notato (sempre debugando) che non mi entra più nella funzione in cui c'è scritto il codice che ho postato prima... cioè.. arriva alla chiamata... però anzicchè entrare passa all'istruzione sotto...

  8. #8
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,254
    Originariamente inviato da Il Pazzo
    non ho capito mi dispiace...
    Allora ...

    Per poter operare con i controlli, è necessario avere l'handle HWND del controllo, ok? Ci sono delle funzioni, quelle che nel nome contengono *DlgItem* che si aspettano l'handle HWND di una dialog-box (ma vale ovviamente anche per finestre "normali") e l'identificativo numerico di un controllo "child". Questo perché al loro interno vanno a prendersi l'handle HWND del controllo con GetDlgItem.

    Quindi alla GetDlgItemInt tu devi passare: 1) L'handle della finestra/dialog-box 2) L'ID numerico del controllo.

    Al suo interno la GetDlgItemInt farà le seguenti cose:
    a) Ottiene l'handle del controllo usando la funzione HWND GetDlgItem(HWND hDlg, int nIDDlgItem)
    b) Invia al controllo il messaggio WM_GETTEXT per ottenere la stringa di testo nel controllo.
    c) Esamina e converte la stringa in un numero e restituisce il valore opportuno ed eventualmente lo status in *lpTranslated.

    Chiaro adesso???
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    Java Versions Cheat Sheet

  9. #9
    Utente di HTML.it L'avatar di Il Pazzo
    Registrato dal
    Jul 2004
    Messaggi
    1,071
    no.. cioè forse si... mi pare sia quello che ho fatto infatti... posto tutto il codice per essere sicuri...

    codice:
    #include "GUI.h"
    #include "resource.h"
    
    int conversione(HWND TextBox){
    	int valore;
    	BOOL A,B;
    
    	valore = GetDlgItemInt(TextBox,
    					IDC_TXTBOX,
    		                        &A,
    					B
    					);
    
    return valore;
    Intendevi questo?

  10. #10
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,254
    Originariamente inviato da Il Pazzo
    no.. cioè forse si... mi pare sia quello che ho fatto infatti... posto tutto il codice per essere Intendevi questo?
    Se come suppongo HWND TextBox contiene l'handle della text-box ... allora è sbagliato!!
    Ripeto: il primo parametro deve essere l'handle della finestra che contiene la text-box.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    Java Versions Cheat Sheet

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.