VS 2008, MFC: dodaj OnInitDialog-jak?

To moja pierwsza aplikacja MFC z dala od VC6 i czuję się trochę głupio:

Jak dodać obsługę OnInitDialog? (Wiem, jak dodać go ręcznie, ale to ból na dłuższą metę).

Podwójne kliknięcie okna dialogowego-nic. kliknij prawym przyciskiem myszy okno dialogowe - "Dodaj obsługę zdarzeń" jest wyłączone. Właściwości-wiadomości mają" normalne " wiadomości, ale nie WM_INITDIALOG Właściwości-zdarzenia przechowują tylko powiadomienia z kontrolek kliknięcie prawym przyciskiem myszy w widoku klasy - " Dodaj.."tylko ma funkcje i zmienne

scratches head

[edytuj] d ' Oh - to funkcja wirtualna w MFC, ale i tak...

Author: Joel Coehoorn, 2009-06-07

2 answers

Nie czuj się głupi, Zajęło mi wieczność, aby dowiedzieć się o tym, kiedy po raz pierwszy przeniósł się z VC6 do VS2008!

W Każdym Razie, a także dla mojego własnego odniesienia, oto pełne kroki dodawania okna dialogowego i nadpisywania metody OnInitDialog:

  1. Wybierz Resource View i rozwiń .plik rc.
  2. kliknij prawym przyciskiem myszy okno dialogowe w widoku drzewa i wybierz Wstaw okno dialogowe .
  3. wybierz okno właściwości. (Uwaga: jeśli nie widzisz tego okna, wybierz Widok > inne okna > okno Właściwości pozycja menu.)
  4. W oknie właściwości Ustaw ID okna dialogowego, np. IDD_MYDIALOG.
  5. kliknij prawym przyciskiem myszy okno dialogowe w edytorze zasobów i wybierz Dodaj klasę. Uwaga: Jeśli masz zainstalowany IE8, może to spowodować błąd skryptu Internet Explorer. Zobacz ten post na blogu aby uzyskać szczegółowe informacje na temat tego, jak to poprawić.
  6. w klasie MFC Okno dialogowe kreatora , wprowadź nazwę klasy, np. CMyDialog, Wybierz {[3] } jako klasę bazową, a następnie naciśnij Zakończ. Spowoduje to utworzenie plików o nazwach MyDialog.cpp i MyDialog.h i dodanie ich do twojego projektu.

Aby nadpisać metodę OnInitDialog w klasie CMyDialog:

  1. Otwórz plik MyDialog.h.
  2. wybierz okno właściwości.
  3. Umieść kursor na linii, która czyta class CMyDialog : public CDialog. (W górnej części okna Właściwości powinien znajdować się "CMyDialog VCCodeClass " - jest to ważne, ponieważ okno właściwości jest wysoce wrażliwe na kontekst i dostajesz różne opcje w zależności od położenia kursora w edytorze.)
  4. Kliknij ikonę nadpisuje w oknie właściwości .
  5. przewiń w dół okna Właściwości, aby znaleźć OnInitDialog.
  6. Kliknij strzałkę w dół przed tym wpisem i wybierz OnInitDialog. To powinno utworzyć twoją CMyDialog::OnInitDialog funkcję.

I mam nadzieję, że to pomoże!

 33
Author: ChrisN,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-06-07 13:24:36

Wygląda na to, że nie trzeba nawet otwierać pliku nagłówkowego i bałaganić umieszczania kursora... Po utworzeniu klasy wybierz klasę w panelu ClassView i możesz zmienić przesłonięcia / wiadomości/zdarzenia w panelu właściwości, jak opisano powyżej.

 3
Author: wayne,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-12-19 20:30:10