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...
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
:
- Wybierz Resource View i rozwiń .plik rc.
- kliknij prawym przyciskiem myszy okno dialogowe w widoku drzewa i wybierz Wstaw okno dialogowe .
- wybierz okno właściwości. (Uwaga: jeśli nie widzisz tego okna, wybierz Widok > inne okna > okno Właściwości pozycja menu.)
- W oknie właściwości Ustaw ID okna dialogowego, np.
IDD_MYDIALOG
. - 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ć.
- 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 nazwachMyDialog.cpp
iMyDialog.h
i dodanie ich do twojego projektu.
Aby nadpisać metodę OnInitDialog
w klasie CMyDialog
:
- Otwórz plik
MyDialog.h
. - wybierz okno właściwości.
- 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.) - Kliknij ikonę nadpisuje w oknie właściwości .
- przewiń w dół okna Właściwości, aby znaleźć
OnInitDialog
. - 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!
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.
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