Grundlegende Frage: Aus 4 Controls mach 1 eigenes - wie?



  • Hallo!

    Ich habe folgende Controlkombination mehrfach:
    2 Radiobuttons (Ja/Nein)

    Nun soll die Eingabe bei einigen aber optinal sein. Ich möchte es aus optischen Gründen nicht in eine Combobox mit Ja/Nein/Nix umbauen und drei Radiobuttons haben keinen Platz.

    Bevor ist nun zig mal die selben Zeilen schreibe, würde ich mir gerne ein entsprechendes Control basteln.
    Wie geht das? 😕

    Und wie packt man sowas auf die Resource? 😕
    Geht das überhaupt oder muss ich mit Create arbeiten? 😞



  • Kann dir zwar jetzt nicht direkt weiterhelfen aber mir ist was anderes aufgefallen:

    Wenn ich dein Problem richtig verstanden habe, dann hast du mehrere Paare von Radio Buttons

    OJa    ONein
    
    OJa    ONein
    
    OJa    ONein
    

    Dabei solls auch möglich sein, dass nix ausgewählt wird. Meine Frage ist nun was passiert wenn der Benutzer auf Ja oder Nein geklickt hat aber anschließend möchte er, dass nichts ausgewählt ist. Da kommt der ja meines Wissens nach nie wieder hin. 🙂

    Zum Thema eigenes Control fällt mir im Moment eigentlich nur "ActiveX" ein...aber ich muss auch zugeben, dass ich da nicht viel Ahnung habe mit den eigenen Controls.



  • Du könntest ja versuchen einfach abzufragen ob der Benutzer den angeklickten Wert noch einmal anklickt.
    Also wenn ja ausgewählt ist, und man nochmal auf ja klickt, dann setzt du das ganze wieder auf "-1" und wählst wieder garnix aus.

    Oder du machst 2 miteinander kombinierte Checkboxen, würde natürlich auch gehen 😉



  • BF_31 schrieb:

    Du könntest ja versuchen einfach abzufragen ob der Benutzer den angeklickten Wert noch einmal anklickt.
    Also wenn ja ausgewählt ist, und man nochmal auf ja klickt, dann setzt du das ganze wieder auf "-1" und wählst wieder garnix aus.

    Genau so hatte ich das vor. Ich würde das aber eben ungern 20 mal schreiben. (Das ist ein Fragebogen.)
    Deswegen also die Frage nach dem Control. Da ich gerade etwas Luft (aber auch nur etwas) habe, wollte ich gleich mal was neues lernen. 😃

    ActiveX wäre dann doch etwas zu viel, fürchte ich. 😞



  • hm, hm, also in der Theorie könntest du das evtl. in ein
    CStatic oder so unterbringen, oder versuchen
    einen randlosen Dialog darin Darzustellen.



  • Hast du dazu was zu lesen? 😕



  • Die erste Variante von BF_31 ist definitiv die einfachste und sinnvollste !



  • @estartu_de:
    phlox hat es schon angesprochen:
    Du erstellst dir eine eigene Klasse, von CWnd oder von CStatic abgeleitet. Diese Klasse funktioniert im Grunde als Container. Und darin zeigst du dann deine drei Radiobuttons an. Und dann packst du auf dein Dialog ein Static, weißt ihm eine Variable zu und änderst den Typ der Variable auf deinen Klassennamen. ActiveX musst du dafür sicherlich nciht bemühen.



  • Okay dEUs, die Theorie habe ich jetzt so halbwegs begriffen. Nur habe ich leider noch immer keine Ahnung, wie ich das umsetzen soll. 😕
    Wie kommen die Radiobuttons an Stelle des Static? Wer behandelt wo und wie die Nachrichten?



  • Leite dir doch einfach ne Klasse von CStatic ab.

    Um diese Klasse dann zu benutzen brauchst du einfach nur nen CStatic auszuziehen, ne Membervariable anlegen, dann in die Headerdatei gehen und bei der Deklaration CStatic durch deine KLasse ersetzen. Jetzt hast du schonmal dein WindowRect mit dem du innerhalb deiner KLasse weiterarbeiten kannst.

    Jetzt erzeugst du in dieses Rect 2 Radiobuttons und die dazugehörigen Texte einfach per Create.
    Was für Texte da stehen sollen kannst du dann ja dynamisch halten, indem du deiner neuen Klasse dafür Setter-Methoden verpasst.

    Alles klaro? - Na dann hau rein 👍

    edit: Die Nachrichten müssten du auch in deiner Klasse verarbeiten können, ist dann ja das übergeordnete Fenster der Radiobuttons..



  • Langsam dämmerts... mal gucken wie weit ich komme. 🙂



  • Warum CStatic? Einfach nen Dialog ohne Titelleiste im Resourceneditor anlegen und dann als Child des übergeordneten Dialogs erstellen.



  • @dlg: ist ja im prinzip das gleiche, man kann ihn dann nur nicht so einfach über den Ress-Editor positionieren sonder darf die koordinaten im Quelltext angeben. Daher würde ich zuerst zum static tendieren.


Anmelden zum Antworten