Erstellen der "OnInit" Funktion einer Klasse
-
Hallo,
was muss ich beachten, wenn ich einer Dialogklasse eine oninit-Funktion
hinzufügen will ?
Reicht es eine Funktion mit "OnInit" zu erstellen und diese wird dann
automatisch aufgerufen oder muss ein Ereignisshandler (welcher?) mit
eingefügt werden. Oder gibt es dies bei Dialogklassen nicht ?cu
-
OnInitDialog <- MSDN
-
fffffffff schrieb:
OnInitDialog <- MSDN
Das ist ja mein Problem, da steht:
This member function is called in response to the WM_INITDIALOG message. This message is sent to the dialog box during the Create, CreateIndirect, or DoModal calls, which occur immediately before the dialog box is displayed.
....da mach ich dann also einen Rechtsklick auf die Dialogbox und finde Null
WM_INITDIALOG. Zumal dieses auch nicht in einem normalen MFC Dialog erzeugt wird
oder per Rechtsklick erreichbar ist ....
-
Wenn deine Klasse von CDialog abgeleitet ist, muss das auch da sein (unter Nachrichtenbehandlung).
Ansonsten, versuch es mit selbst einbauen. Einen Eintrag in der MessageMap scheint man nicht zu brauchen.
Header
virtual BOOL OnInitDialog();Cpp
BOOL CDeinDlg::OnInitDialog() { CDialog::OnInitDialog(); return TRUE; // return TRUE unless you set the focus to a control // EXCEPTION: OCX-Eigenschaftenseiten sollten FALSE zurückgeben }
-
OnInitDialog in deinem Dialog wird automatisch aufgerufen, weil es eine virtuelle Funktion ist, und nicht die Handler-Funktion für WM_INITDIALOG.
Die Handler-Funktion selbst ist in der MFC (CDialog::HandleInitDialog), von da wird dann die virtuelle Funktion aufgerufen.
-
Und da ward ein Licht geboren ......
thx