Zugriff auf GUI-Objekt
-
Hallo Zusammen,
ich habe auf meinem GUI ein Kotrollkästchen, daß man anklicken kann - dann wird ein Häkchen gesetzt oder gelöscht. Ich möchte aber diese Kästchen aus dem Programm heraus disablen bzw. enablen, wenn ein anderes Kästchen angeklickt wird. Wie kann ich auf diese Eigenschaft des Kontrollkästchens zugreifen? Auf dessen Wert greife mittels einer Membervariable zu - es gibt auch ein Controlvariable, aber wie kann ich damit was anfangen und was muß ich wo deklarieren, damit's funktioniert?
Vielen Dank im Voraus für Eure Antworten!
-
Ehm ... um das Häckchen zu setzen übergibst du der Membervariable den Wert TRUE und um es wegzunehmen übergibst du FALSE. Und nachdem du den neuen Wert gesetzt hast, musst du nur UpdateData(FALSE) aufrufen. Also alles was du in den Membervariablen hast, wieder an die GUI schicken. Und das ist es schon.
Grüssli
-
Du kannst es auch ohne UpdateData machen indem Du auf die Controlvariable zugreifst und SetCheck ausführst sofern es sich um eine Checkbox handelt (wie ich vermute).
-
vielen Dank für die pormpten Antworten
OK - das Häkchem der Chekbox kann ich manipullieren, aber ich möchte
1. die Checkbox vom programm aus quasi ausschalten und wieder einschalten (also quasi eingrauen, so daß der User die Checkbox nicht mehr anklicken kann) und
2. Möchte ich diese Aktion durchführen, falls eine andere Checkbox vom User angeklickt wurde.
Wie geht das denn?
-
1. EnableWindow() auf dein Control-Element anwenden
2. Die nötigen Codes kannst du überall hinpacken, auch in die Nachrichtenbehandlung einer anderen Checkbox.
-
leider weiß ich eben nicht wie ich diese funktion (od. ähnliche) auf meine chheckbox "anwende"!??
wo steht denn wie der wert hinterher sein soll (z.B. true od. false) und wo steht welche checkbox denn nu' gemeint ist?!? Ich kapier' nix!???

-
ein paar zeilen beispielcode könnten vielleicht was helfen!?

-
Man kann auch in einem Forum nicht alles vorkauen. Manchmal sollte man einfach mal die MSDN wälzen wenn man z.B. das Stichwort EnableWindow bekommt. Just my 2 cents.
m_chkMyBox.EnableWindow(FALSE);
-
Lieber Martin,
vielen Dank für die Codezeile - es hat genau so funktioniert.
Ich würde diese Forum gar nicht mit Fragen belästigen, wenn man aus der MS-Hilfe irgendwas lernen könnte. Leider steht da oft nur die Hälfte und man versteht letztlich nichts.
Meistens ist es ganz einfach, wenn man weiß wie - nur wen nicht, hat man ein Problem. Da ist es - denke ich - für den wissenden sehr vile einfacher eben mal 20 ASCII-Zeichen einzutippen, als für den unwissenden sich die notwendigen Informationen aus x Bücher mühsam in stundenlanger Kleinarbeit zusammenzusuchen.
Grüße
greenhorn
-
Meist kann man auch ohne MSDN o.ä. eine unbekannte Funktion selber finden und kommt ganz gut damit zurecht.
Wenn du z.B. schon eine Controlvariable hast, und mit diesem Control etwas anstellen willst, reicht es oft, einfach mal einen Punkt hinter die Variable zu setzen. Dann bekommst du nämlich alle Funktionen dieser Klasse aufgelistet, von denen die meisten dann selbsterklärend sind... (und die Parameter meist auch -> z.b. TRUE/FALSE bei EnableWindow)
-
Das mit der MSDN habe ich früher auch gedacht, inzwischen bin ich anderer Meinung. Man muss sich nur genügend mit der MSDN auseinander setzen, dann fängt man immer wie mehr an zu verstehen. Das Teil ist unglaublich nützlich, das einzige was fehlt ist ein besserer Filter für das Suchen. Ansonsten ist es geradezu perfekt.
Natürlich wird alles sehr kurz gehalten, es ist ja schon so ein riesen Teil. Die MSDN verlangt halt, dass man ein wenig selber mitdenkt
Also ich würde dir empfehlen es mindestens zu probieren die MSDN zu gebrauchen. Man freundet sich dann schnell mit ihr an.
Grüssli