Condividi tramite


Aggiunta manuale di controlli

È possibile aggiungere controlli a una finestra di dialogo con l'editor di dialoghi o aggiungerli manualmente, con codice.

Per creare manualmente un oggetto controllo, in genere incorporare l'oggetto controllo C++ in una finestra di dialogo C++ o in un oggetto finestra cornice. Come molti altri oggetti nel framework, i controlli richiedono la costruzione a due fasi. È necessario chiamare la funzione create member del controllo come parte della creazione della finestra di dialogo padre o della finestra cornice. Per le finestre di dialogo, questa operazione viene in genere eseguita in OnInitDialog e per le finestre cornice in OnCreate.

Nell'esempio seguente viene illustrato come dichiarare un CEdit oggetto nella dichiarazione di classe di una classe di dialogo derivata e quindi chiamare la Create funzione membro in OnInitDialog. Poiché l'oggetto CEdit viene dichiarato come oggetto incorporato, viene costruito automaticamente quando viene costruito l'oggetto dialog, ma deve comunque essere inizializzato con la propria Create funzione membro.

class CCustomDialog : public CDialog
{
   CEdit m_edit;
   virtual BOOL OnInitDialog();
};

La funzione seguente OnInitDialog configura un rettangolo, quindi chiama Create per creare il controllo di modifica di Windows e collegarlo all'oggetto non inizializzato CEdit .

BOOL CCustomDialog::OnInitDialog()
{
   CDialog::OnInitDialog();
   CRect rect(85, 110, 180, 210);

   m_edit.Create(WS_CHILD | WS_VISIBLE | WS_TABSTOP |
                     ES_AUTOHSCROLL | WS_BORDER,
                 rect, this, IDC_EXTRA_EDIT);
   m_edit.SetFocus();
   return FALSE;
}

Dopo aver creato l'oggetto di modifica, è anche possibile impostare lo stato attivo dell'input sul controllo chiamando la SetFocus funzione membro. Infine, si torna 0 da OnInitDialog per mostrare che si imposta lo stato attivo. Se si restituisce un valore diverso da zero, gestione dialoghi imposta lo stato attivo sul primo elemento del controllo nell'elenco di elementi della finestra di dialogo. Nella maggior parte dei casi, è consigliabile aggiungere controlli alle finestre di dialogo con l'editor di dialoghi.

Vedi anche

Creazione e uso di controlli
Controlli
CDialog::OnInitDialog