Apply Button aktivieren in einem PropertySheet
-
Hi,
also ich hab nun folgendes Problem. Ich hab mein PropertySheet erstellt und möchte nun den ApplyButton aktivieren. Das soll aber erst geschehen, nachdem in allen Edit Boxen auf der Page Werte stehen, die verschieden von 0 sind(also eben ausgefüllt). Im Netzt findet man schon Einiges dazu, jedoch finktioniert das bei mir alles nich.:(
Für Hilfe bedanke ich mich schon einmal im Voraus und wünsch euch allen, falls man sich nicht mehr liest, n frohes Weihnachtsfest. :xmas1:
-
Hi,
versuch es mal mit diesem CodeBOOL CMySheet::OnInitDialog() {
CPropertySheet::OnInitDialog();// this show the Apply button
CWnd* pApplyButton = GetDlgItem (ID_APPLY_NOW);
ASSERT (pApplyButton);
pApplyButton->ShowWindow (SW_SHOW);return TRUE;
}
bzw. prüfe in deiner CMyProjektWinApp-Klasse und kommentiere/lösche diese
Anweisung "sheet.m_psh.dwFlags |= PSH_NOAPPLYNOW;" aus!
-
Hi Tocha,
vielen Dank für die schnelle Antwort. Wenn ich das eingebe:
CWnd* pApplyButton = GetDlgItem (ID_APPLY_NOW);
ASSERT (pApplyButton);
pApplyButton->ShowWindow (SW_SHOW);
ändert sich leider gar nichts. Alles wie gehabt. Aber vielleicht hab ich mich bei der Formulierung auch ein wenig unpräzise ausgedrückt. Also der ApplyButton ist da, und das ist auch gut so.;) Aber er ist grau und nicht wählbar, was auch gut ist. Aber wenn alle Editboxen gefüllt sind, soll er aktiv sein.
Im Internet steht, ich soll CPropertysheet::SetModified aufrufen. Und dann noch das:void SetModified(
BOOL bChanged = TRUE
);
SetModified(TRUE) soll eigentlich bezwecken, dass das der ApplyButton immer auswählbar ist, aber das funktioniert bei mir nicht. Ich bin hier echt am Verzweifeln. Versuch das jetzt schon 2 Tage...
Gruß
-
Also ich hab den Button jetzt aktiviert bekommen. Hab vergessen eim Programm eine Anweisung zu geben, was er denn nun mit dem aktivierten Button tun soll, wenn man ihn klickt.;)
Nun komm ich natürlich gleich zum nächsten Problem. Wie schreib ich nun die Abfrage, ob denn in meinen Editboxen auch was steht? Dachte an ne Multiplikation aller Werte in den Boxen und die if-Anweisung wenn das Ergebnis != 0. Funktioniert das so einfach?
Grüße
-
Wenn der entsprechende Stil gesetzt ist genügt enfach
CPropertyPage::SetModified
http://msdn2.microsoft.com/en-us/library/0hkws258(VS.80).aspx