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