Subclass von CStatic in eine MFC-basierte Dialogfeld-App einbauen



  • Hi
    Ich habe eine MFC-Klasse aus alten Tagen, die auf CStatic basiert. Die möchte ich gern in eine neue MFC-Dialogfeldanwendung einbauen (VS 2017).

    Im grafischen Dialogfeldeditor kann ich ja ein normales CStatic verwenden, bloß legt der Codegenerator keine Variable dafür an. Oder ich finde sie nicht. Weiß jemand, wie ich das machen kann? Danke schonmal!



  • Leg sie doch von Hand an. Und mach den Subclass in OnInitDialog. Oder per DdxControl in DoDataExchange?
    Wo ist das Problem?

    Oder eben Control im Dialog Editor anklicken. Rechte Maus. Variabel anlegen. Dann kannst Du sogar den Typ definieren.

    Manchmal Frage ich mich warum man nur noch mit Wizards arbeiten kann...



  • @martin-richter sagte in Subclass von CStatic in eine MFC-basierte Dialogfeld-App einbauen:

    Manchmal Frage ich mich warum man nur noch mit Wizards arbeiten kann...

    Das ist offenbar so gewollt, weil es schnell gehen soll.

    Danke für deine Antwort. Ja, ich habe ein altes Projekt von VS6 als Beispiel genommen und den entsprechenden Kram händisch eingefügt.

    Sorry für die Frage, aber ich hatte ca. 8 Jahre nichts mehr mit MFC zu tun und das meiste vergessen.



  • Die neuen Wizards können auch mit den alten Projekten. Die neuen Wizards richten sich auch nicht nach den Platzhaltern wie in VC6. Die parsen Deinen Code.

    Also insofern sollte es direkt gehen mit den vorhandenen Tools.



  • @martin-richter sagte in Subclass von CStatic in eine MFC-basierte Dialogfeld-App einbauen:

    Die neuen Wizards können auch mit den alten Projekten. Die neuen Wizards richten sich auch nicht nach den Platzhaltern wie in VC6. Die parsen Deinen Code.

    Naja, so direkt hat das nicht geklappt. Das Projekt war nach der Konvertierung von VS6 zu VS2017 nicht mehr buildbar. Zahlreiche Fehler, Unicode statt MBCS, SDK auf Win 8.1 gestellt, das nicht vorhanden war, usw.

    Ich hab dann einfach eine neue Dialoganwendung erzeugen lassen, mit der alten verglichen. War recht unproblematisch.

    Btw, die alte Anwendung kam auch nicht 100% aus dem Wizard. Ich habe früher gern daran rumgeschraubt um einiges abzukürzen oder Dinge zu tun, die per MFC nicht gingen. Das hat sich jetzt wohl gerächt.



  • MBCS läuft auch auf VS-2017. Was hast Du für Probleme?
    Hast Du es evtl. nicht installiert?



  • @martin-richter
    Ist installiert, aber wenn im Code irgendwo z.B. MessageBox ("blabla", ....) steht, dann hätte er gern MessageBox (L"blabla", ....) gesehen. Konvertierung ging schief. MessageBoxA vs. MessageBoxW.

    Ich mache gerade ein Update meines VS2017. Sind schlappe 3,6GB. Vielleicht läuft die Konvertierung dann fehlerfrei.

    Dieses proprietäre Microsoft-Zeug holt einen immer wieder ein. Es ist wie ein Fluch, LOL 🤣



  • Dann hast Du aber MBCS nicht deklariert sondern Unicode.
    Wenn der Compiler schon meckert, dann stimmen da die Einstellungen nicht.

    Ich habe noch nie Probleme bei einem Upgrade noch so alter Projekte gehabt, außer es gab wirkliche Compiler Probleme oder Fehler im alten Code...