Добавление элементов управления вручную

Вы можете добавить элементы управления в диалоговое окно с помощью редактора диалогов или добавить их самостоятельно с кодом.

Чтобы создать объект элемента управления самостоятельно, обычно вы встраиваете объект элемента управления 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