checkbox eines dialoges disablen...
-
Arg... es ist zu warm...
Also:
Mach eine bool Variable (ohne Control dazu), die du setzt.
In der OnInitDialog kannst du dann deine Checkbox ganz nach Inhalt der Variablen de/aktivieren.
-
Brauche keine variable, hab eh alle daten die ich brauche. Ich kann keine OnInitDialog function in der formularklasse einbauen weil dann werden die Daten die ich schon vorher von mainframe aus setze durch den konstruktor überschrieben.....
Es ist schon so wie ich das meinte, ich muß irgendwie von mainFrame aus einen zugriff auf ein anderes formular bekommen, das muß ja gehen?!?!?
-
l00P schrieb:
Brauche keine variable, hab eh alle daten die ich brauche. Ich kann keine OnInitDialog function in der formularklasse einbauen weil dann werden die Daten die ich schon vorher von mainframe aus setze durch den konstruktor überschrieben.....
Also, das sollte sich gegenseitig nix tun.
Der Konstruktor wird auch aufgerufen, wenn du OnInitDialog nicht überschreibst. Setz einen Breakpoint rein und guck nach.
Du solltest nur kein UpdateData(TRUE); machen.
-
ich dachte nur das es das ist, anders weiß ich nlicht weiter...
hast du eine idee wie ich das also machen könnte? Da muß es doch eine möglichkeit geben auf ein "fremdes" formular zuzugreifen oder?!?!?
-
Da der Mainframe nix machen kann, während ein modaler Dialog offen ist, musst du das vorher belegen.
Das geht auch, ich habs ja schon zig mal gemacht.Versuchs nochmal und zeig, wenn es nicht geht mal den Code.
Da wo du aufrufst und die OnInitDialog.
-
Ja das will ich ja, die checkbox disabeln bevor der dialog aufgemacht wird. code kann ich dir morgen posten. Habs ja schon probiert, geht nicht bei mir.
also dann danke schonmal, meld mich morgen wieder
lg
-
hi!
hier mal der code, wird aber nicht viel helfen denk ich...
//in mainFrame, in der funktion die durch enien menüpunkt aufgerufen wird... if(configMisc.m_stopReceiving == true) { A* a; a->GetDlfItem(IDC_CHECKBOX)->EnableWindow(false); } UpdateData(false); //hier wird das propertysheet aufgebaut... CPropertySheet sheet("Configuration", this); sheet.AddPage(&configUser); sheet.AddPage(&configSite); sheet.AddPage(&configMisc);
//Das sit die formularklasse auf die ich von mainFrame aus zugreifen will... //wenn ich aber diesen code drinnen lasse, ist das ganze formular leer, warum //auch immer, sonst könnt ich ja die checkboxen gleich von hier aus disnablen //usw. BOOL ConfigMisc::OnInitDialog() { CButton* autoRe = (CButton*)GetDlgItem(IDC_CHECK_AUTORECEIVE); CButton* stopRec = (CButton*)GetDlgItem(IDC_STOP_RECEIVING); if(stopRec->GetCheck() == 1) { autoRe->EnableWindow(false); } return TRUE; }
-
Du hast den Aufruf der Basisklasse rausgelöscht.
BOOL ConfigMisc::OnInitDialog() { CDialog::OnInitDialog(); // Das MUSS rein! CButton* autoRe = (CButton*)GetDlgItem(IDC_CHECK_AUTORECEIVE); CButton* stopRec = (CButton*)GetDlgItem(IDC_STOP_RECEIVING); if(stopRec->GetCheck() == 1) // und hier nimm eine bool-Variable { autoRe->EnableWindow(false); } return TRUE; }
Also, die CDialog::OnInitDialog brauchst du auf jeden Fall, denn die erstellt die Controls.
Bevor diese Funktion aufgerufen wurde, existieren die Controls nicht, deswegen kannst du sie nicht von außen manipulieren und musst eine bool-Variable nehmen.
-
AAAAH jetzt funktionierts, ich hatte das CDialog::OnInitDialog(); vergessen , shit *g*
ja klar ich machs jetzt über eine bool, ich lade ja eh eine komplette Structur die das configfile ausliest und jetzt kann ich auch disablen
also danke für dein egeduld
lg
l00P
-
Kein Problem.