Sdílet prostřednictvím


Ruční přidání ovládacích prvků

Ovládací prvky můžete přidat do dialogového okna pomocí editoru dialogového okna nebo je přidat sami pomocí kódu.

Pokud chcete vytvořit řídicí objekt sami, obvykle vložíte řídicí objekt C++ do dialogového okna C++ nebo objektu okna s rámečkem. Stejně jako mnoho dalších objektů v rámci vyžadují ovládací prvky dvoufázovou konstrukci. Jako součást vytvoření nadřazeného dialogového okna nebo okna rámce byste měli volat členskou funkci ovládacího prvku. V dialogových oknech se to obvykle provádí v OnInitDialogu a u oken s rámečkem v OnCreate.

Následující příklad ukazuje, jak můžete deklarovat CEdit objekt v deklaraci třídy odvozené třídy dialogového okna a potom volat Create členské funkce v OnInitDialog. Vzhledem k tomu, že CEdit objekt je deklarován jako vložený objekt, je automaticky vytvořen při vytváření objektu dialogového okna, ale musí být stále inicializován pomocí vlastní Create členské funkce.

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

Následující OnInitDialog funkce nastaví obdélník a potom zavolá Create k vytvoření ovládacího prvku pro úpravy Systému Windows a připojí ho k neinicializovanému CEdit objektu.

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;
}

Po vytvoření objektu pro úpravy můžete také nastavit vstupní fokus na ovládací prvek voláním SetFocus členské funkce. Nakonec vrátíte hodnotu 0 z OnInitDialog , abyste ukázali, že jste nastavili fokus. Pokud vrátíte nenulovou hodnotu, správce dialogů nastaví fokus na první položku ovládacího prvku v seznamu položek dialogového okna. Ve většině případů budete chtít do dialogových oken přidat ovládací prvky pomocí editoru dialogových oken.

Viz také

Příprava a použití ovládacích prvků
Ovládací prvky
CDialog::OnInitDialog