Добавление элементов управления вручную
Вы можете добавить элементы управления в диалоговое окно с помощью редактора диалогов или добавить их самостоятельно с кодом.
Чтобы создать объект элемента управления самостоятельно, обычно вы встраиваете объект элемента управления C++ в диалоговое окно C++ или объект окна кадра. Как и многие другие объекты в платформе, элементы управления требуют двухэтапного построения. Вы должны вызвать функцию создания элемента элемента управления в рамках создания родительского диалогового окна или окна кадра. Для диалоговых окон обычно это делается в OnInitDialog и для окон фрейма в OnCreate.
В следующем примере показано, как объявить объект в объявлении CEdit
класса производного диалогового класса, а затем вызвать Create
функцию-член в OnInitDialog
. CEdit
Так как объект объявлен как внедренный объект, он автоматически создается при создании объекта диалогового окна, но он должен быть инициализирован с помощью собственной Create
функции-члена.
class CCustomDialog : public CDialog
{
CEdit m_edit;
virtual BOOL OnInitDialog();
};
Следующая OnInitDialog
функция настраивает прямоугольник, а затем вызывает Create
создание элемента управления редактирования Windows и присоединение его к неинициализированному 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;
}
После создания объекта редактирования можно также задать фокус ввода для элемента управления, вызвав SetFocus
функцию-член. Наконец, вы вернетесь от 0, OnInitDialog
чтобы показать, что вы задали фокус. Если вы возвращаете ненулевое значение, диспетчер диалогов устанавливает фокус на первый элемент управления в списке элементов диалогового окна. В большинстве случаев вы хотите добавить элементы управления в диалоговые окна с помощью редактора диалогов.
См. также
Создание и использование элементов управления
Controls
CDialog::OnInitDialog