VS 2008, MFC: добавить OnInitDialog - как? - PullRequest
19 голосов
/ 07 июня 2009

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

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

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

царапает голову

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

Ответы [ 2 ]

33 голосов
/ 07 июня 2009

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

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

  1. Выберите Просмотр ресурсов и разверните файл .rc.
  2. Щелкните правой кнопкой мыши запись Dialog в древовидном представлении и выберите Вставить диалог .
  3. Выберите окно Свойства . (Примечание: если вы не видите это окно, выберите Вид > Другие окна > Окно свойств пункт меню.)
  4. В окне Свойства установите идентификатор для диалога, например, IDD_MYDIALOG.
  5. Щелкните правой кнопкой мыши диалоговое окно в редакторе ресурсов и выберите Добавить класс . Примечание. Если у вас установлен IE8, это может привести к ошибке сценария Internet Explorer. Подробнее о том, как это исправить, см. в этом блоге .
  6. В диалоговом окне MFC Class Wizard введите имя класса, например, CMyDialog, выберите CDialog в качестве базового класса, затем нажмите Finish . Это создаст файлы с именами MyDialog.cpp и MyDialog.h и добавит их в ваш проект.

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

  1. Открыть файл MyDialog.h.
  2. Выберите окно Свойства .
  3. Поместите курсор на строку, которая гласит class CMyDialog : public CDialog. (В верхней части окна свойств должно отображаться « CMyDialog VCCodeClass» - это важно, потому что окно Properties очень чувствительно к контексту, и вы получаете различные варианты в зависимости от расположения курсор в редакторе.)
  4. Щелкните значок Переопределения в окне Свойства .
  5. Прокрутите окно свойств, чтобы найти OnInitDialog.
  6. Нажмите стрелку вниз против этой записи и выберите OnInitDialog . Это должно создать вашу CMyDialog::OnInitDialog функцию.

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

4 голосов
/ 19 декабря 2014

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...