OnInitDialog erzwingen
-
Hallo,
Ich habe hier ein PropertySheet Objekt mit mehreren Registerseiten. Der OnInitDialog(), der einzelnen Registerseiten, wird ja erst beim "erstmaligen" Aufrufen/anklicken/auswählen, dieser anderen Registerseiten, ausgeführt. Wie kann ich also den OnInitDialog schon vorher erzwingen sodas das erstmalig Auswählen nicht mehr nötig ist?
Ich hab nämlich eine Funktion die auf allen Registerseiten die Editfelder leert (diese kann von jedem Blatt aus aufgerufen werden). Das Problem ist, wenn sie gleich nach dem Start des Programms aufgerufen wird (durch irgendeine Eingabe oder so), kommt eine Fehlermeldung da die anderen Seiten noch nicht Initialisiert wurden und die zu leerenden Editfelder noch gar nicht existieren.
gruß Chris++
-
Zeig mal, wie du so ein Eingabefeld leerst.
Da läßt sich bestimmt eine Bedingung einbauen, damit es nicht mehr knallt.
-
Macht es Sinn, in OnInitDialog Eingabefelder zu leeren ?
[edit]
*nachdenk*
*noch mehr nachdenk*
Mmmmhhh, ich glaube, ich liege irgendwie falsch...
Vergesst es.[/edit]
-
es ist etwas umfangreicher.
void Dialog::Clear() { //die beiden buttons Hinzufügen und Abbrechen positionieren m_cbtn_HinzuAendern.SetWindowPos(&CWnd::wndTop, 0, 0, _btn_HinzufuegenGross, 24, SWP_NOMOVE | SWP_SHOWWINDOW); //auf breite von 210 ziehen m_cbtn_HinzuAbbrechen.SetWindowPos(&CWnd::wndTop, 0, 0, _btn_HinzufuegenKlein, 24, SWP_NOMOVE | SWP_HIDEWINDOW); //kleinermachen und verstecken SetDlgItemText(IDC_txt_DisziplinName,""); //Editfeld leeren m_cbtn_HinzuAendern.SetWindowText("Erfassung Anlegen"); //beschriftung ändern m_cbtn_HinzuAbbrechen.EnableWindow(FALSE); m_cbtn_HinzuAendern.EnableWindow(FALSE); Flag_NameExistiert = _NameExistiertNicht; //da das Editfeld jetzt leer ist, existiert auch kein Name m_ctxt_DisziplinName.SetFocus(); }
aufgerufen wird diese Clear() funktion über einen Zeiger auf das Objekt dieser Dialogseite.
-
isabeau schrieb:
Macht es Sinn, in OnInitDialog Eingabefelder zu leeren ?
[edit]
*nachdenk*
*noch mehr nachdenk*
Mmmmhhh, ich glaube, ich liege irgendwie falsch...
Vergesst es.[/edit]
Ich leere sie ja nicht im OnInitDialog. Aber wenn er nicht aufgerufen wurde, dann lassen sie sich auch nicht leeren