MFC Zeichenfeld



  • Hey, ich möchte ein steuerelement erstelle in dem ich einzelne punkte und ein Koordinatensystem zeichnen kann
    Geht so etwas mit MFC?
    Danke für die Antworten

    Gruß
    C++Developer2000



  • Ja, geht.

    Du kannst von CButton ableiten und ihn dann selbst zeichnen (OwnerDraw Button). Da gibt es unter codeproject.com einige Beispiele.

    Edit:

    Ich habe mal in die MSDN geschaut und noch ein Beispiel aus codeproject herausgesucht Owner Draw Button Helper Class



  • Wieso grad CButton? Das geht mit jedem CWindow, ich les hier jetzt nicht raus, dass es um einen Button gehen würde.



  • Mechanics schrieb:

    Wieso grad CButton?

    CWindow ist schon OK, CButton ist am Ende auch nur ein Nachkomme von CWindow aber die Klasse gehört zur ATL.

    Ich habe aber CButton vorgeschlagen, weil er nach MFC und Steuerelement gefragt hat und da finde ich, ist der Button die einfachste Version.



  • Warum man bei einer Frage nach einem Steuerelement gerade auf CButton kommt kann ich auch nicht nachvollziehen. Denn laut Definition von MS sind alles Steuerelemente die von CWindow abgeleitet werden oder will hier jemand behaupten das ein CListbox oder ein CScrollBar kein Steuerelement ist?

    Soll das ganze einfach in einem Dialog dargestellt werden, würde ich dafür ein CStatic nehmen. kann man einfach in den Dialog Positionieren und in der größe anpassen. Mebervariable dazu, Klasse überladen und schon hat man seine eigene Klasse mit allem was man braucht.

    Soll das ganze in einem View dargestellt werden dann nimmt man halt eine Klasse die von CWindows abgeleitet ist und erstellt diese.



  • Es ist doch egal was man als Basis nimmt. Die Herangehensweise ist immer ähnlich, OWNERDRAWed Control und dann selber zeichnen.

    Und nein CListBox, CScrollBar, ... sind nicht von CWindow abgeleitet. Diese stammen alle von CWnd ab. Man kann natürlich auch von CWnd/CView ableiten und das Control selbst registrieren - ist mir aber meistens zu viel Arbeit.

    Hier auch noch das Hierachydiagramm der MFC. CWindow ist Bestandteil der ATL und hat mit der MFC nicht direkt was zu tun.



  • Du hast Recht, ich meinte CWnd und nicht CWindow. Details 😉 Auf jeden Fall würde ich nicht gerade einen Button als Ausgangsbasis nehmen.


Anmelden zum Antworten