Подтвердить что ты не робот

VS 2008, MFC: добавить OnInitDialog - как?

Это мое первое приложение MFC от VC6, и я чувствую себя немного глупо:

Как добавить обработчик OnInitDialog? (Я знаю, как добавить его вручную, но это боль в конечном итоге).

двойной щелчок по диалогу - ничего. щелкните правой кнопкой мыши диалог - "add event handler" отключен. Свойства. Сообщения имеют "обычные" сообщения, но не WM_INITDIALOG Свойства. События содержат только уведомления из содержащихся элементов управления. щелчок правой кнопкой мыши в представлении класса - "Добавить.." имеет только функции и переменные

царапины головы

[edit] d'oh - это виртуальная функция в MFC, но все же...

4b9b3361

Ответ 1

Не чувствуй себя глупо, мне потребовалось время, чтобы понять это, когда я впервые перешел с VC6 на VS2008!

В любом случае, а также для моей справки, вот полные шаги для добавления диалогового окна и переопределения метода OnInitDialog:

  • Выберите Просмотр ресурсов и разверните файл .rc.
  • Щелкните правой кнопкой мыши запись Диалог в древовидном представлении и выберите Вставить диалог.
  • Выберите окно Свойства. (Примечание. Если вы не видите это окно, выберите пункт Вид > Другие окна > Окно свойств.)
  • В окне Свойства установите идентификатор для диалога, например IDD_MYDIALOG.
  • Щелкните правой кнопкой мыши диалог в редакторе ресурсов и выберите Добавить класс. Примечание. Если у вас установлен IE8, это может привести к ошибке Internet Explorer Script. См. этот пост в блоге, чтобы узнать, как исправить это.
  • В диалоговом окне MFC Class Wizard введите имя класса, например CMyDialog, выберите CDialog в качестве базового класса, затем нажмите Готово. Это создаст файлы с именем MyDialog.cpp и MyDialog.h и добавит их в ваш проект.

Чтобы переопределить метод OnInitDialog в классе CMyDialog:

  • Откройте файл MyDialog.h.
  • Выберите окно Свойства.
  • Поместите курсор на строку, которая читает class CMyDialog : public CDialog. (В верхней части окна "Свойства" должно отображаться " CMyDialog VCCodeClass" - это важно, потому что окно Свойства сильно зависит от контекста, и вы получаете разные параметры в зависимости от местоположения курсора в редакторе.)
  • Щелкните значок Переопределить в окне Свойства.
  • Прокрутите окно свойств, чтобы найти OnInitDialog.
  • Нажмите стрелку вниз против этой записи и выберите < Добавить > OnInitDialog. Это должно создать вашу функцию CMyDialog::OnInitDialog.

Надеюсь, это поможет!

Ответ 2

Кажется, вам даже не нужно открывать файл заголовка и помешать размещению курсора... После создания класса выберите класс в панели ClassView и вы можете изменить переопределения/сообщения/события на панели свойств как описано выше.