Eigenschaften erweitern



  • Nehmen wir an, ich füge meinem Programm ein ListBox hinzu. Dann kann ich auf die entsprechenden Methoden und Member der Klasse CListBox zugreifen und meine Applikation so gestalten wie ich will. Nehmen wir weiter an, ich suche nach einer Funktion die mfc nicht in die CListBox-Klasse "bereithält". Wie müsste ich da vorgehen? Ich habe dazu folgenden Gedankenansatz:

    1. Eine Klasse von CListBox ableiten (z.B. MyListBox)
    2. MyListBox mit meinen zusätzlichen Funktionen erweitern
    3. Die tatsächliche Listbox in dem Dialog zeichnen
    4. Der gezeichneten Listbox sagen, dass sie vom Typ MyListBox und nicht vom Typ CListBox ist

    Und genau hier reicht mein Verständnis nicht mehr weiter. Gibt es einen Lösungsweg oder bin ich total auf dem falschen Dampfer?



  • Hi,

    du bist vollkommen auf dem richtigen Dampfer.
    Das Zauberwort heißt Subclassen. Du erstellst deine eigene Klasse (abgeleitet von z.B. CListBox oder CButton) und fügst dann zu der Dialog-Klasse eine Membervariable von deiner Klasse hinzu. Dann musst du nur noch SubclassDlgItem aufrufen und das Control hat die neuen Fähigkeiten, die du deiner Klasse hinzugefügt hast.
    Alle Controls (Steuerelemente) bei Codeguru und Codeproject funktionieren nach diesem Prinzip. Dort gibt es auch massig Tutorials.
    Schau einfach mal dort vorbei:
    http://www.codeguru.com
    http://www.codeproject.com

    Grüße Rapha



  • Besten Dank für das Zauberwort 😃


Anmelden zum Antworten