Visualizzazione dei risultati da 1 a 4 su 4
  1. #1
    Utente di HTML.it L'avatar di Gigi84
    Registrato dal
    May 2001
    Messaggi
    569

    [C++ MFC] Riferimento ad un oggetto

    Ciao!!
    Ho appena iniziato a fare un lavoretto con le mfc per windows CE (sto usando evc++ 4), e ho subito un gran problema , come faccio a fare riferimento agli oggetti creati nell'editor delle finistre di dialogo??!

    non ho trovato da nessuna parte la dichiarazione degli oggetti che creo dell'editor..
    se invece li creo a mano tutto funge, ma la cosa verrebbe un po' lunga, e i tempi che ho sono ristretti!

    Grazie in anticipo!
    Ciao!!

    Take it easy babe.. take it as it comes

  2. #2
    Gli oggetti che crei nelle finestre di dialogo (i controlli) sono semplicemente descritti nel file .rc (scritto con un apposito linguaggio di descrizione delle interfacce).Con le mfc quando vuoi interagire su un controllo hai due possibilità:
    1)associare una variabile membro della clase che gestisce il dialogo al controllo (con associazione della variabile al controllo e non al valore) e usare i metodi della classe a cui appartiene la variabile per fare le tue cose sul controllo.

    2) ricavarti sul momento un puntatore alla finestra che gestisce il controllo con GetDlgItem(UINT controlID)

    Ti faccio un esempio.
    1)Supponi di avere nel dialogo un editbox (casella di testo),fai tasto destro sul controllo e gli associ una variabile che potrà essere di due tipi : CEdit (associazione al controllo),CString (associazione al valore).Nel caso di CEdit potrai usare tutti i metodi di questa classe che rappresenta un controllo di questo tipo per gestire il controllo.Se la variabile si chiama m_myEdit allora con m_myEdit.SetWindowText("pippo") farai si che il box si riempia comn quel valore.Se l'associazione è per valore (e quindi m_myEdit è di tipo CString)otterrai lo stesso risultato con m_myEdit = "Pippo" seguito da UpdateData(FALSE);

    2)Supponi che in fase di creazione del controllo tu lo abbia chiamato IDC_EDIT,allora quando ti servirà fare qualcosa sul controllo dovrai fare:
    codice:
    ((CEdit*)GetDlgItem(IDC_EDIT))->MetodoDellaClasseCedit();
    Se qiualcosa non è chiara fai un fischio
    Il centro dell'attenzione non è sempre un buon posto in cui trovarsi

    Mai discutere con uno stupido, la gente potrebbe non capire la differenza. (O. W.)

  3. #3
    Utente di HTML.it L'avatar di Gigi84
    Registrato dal
    May 2001
    Messaggi
    569
    Veramente molto chiaro!
    mi è stata utilissima la tua risposta, da un giorno all'altro mi sono trovato nelle MFC di Pocket PC 2003 usando evc++ senza neanche avere mai usato VC++ per il PC!

    quindi grazie tante!

    (adesso ho un altro problema, ma aprirò un nuovo 3D..)

    Ciao!
    Take it easy babe.. take it as it comes

  4. #4
    Son contento che ti sia servito.Se ti stai chiedendo a cosa può servire associare una variabile al valore di un controllo e non al controllo stesso la risposta è questa:l'associazione per valore ti consente di assegnare un valore ad esempio ad un editbox prima che il dialogo che lo conterrà sia creato (e quindi che l'edit sia creato).Ad esempio è utile quando devi inizializzare i controlli di una finestra di dialogo prima di mostrare il dialogo stesso.Infatti una cosa è creare l'oggetto che rappresenta la finestra di dialogo,un'altra è creare la finestra vera e propria.Ciao
    Il centro dell'attenzione non è sempre un buon posto in cui trovarsi

    Mai discutere con uno stupido, la gente potrebbe non capire la differenza. (O. W.)

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 © 2025 vBulletin Solutions, Inc. All rights reserved.