M
Melanie_27 schrieb:
Ein Windows Forms Projekt wäre perfekt.
Du musst Dich entscheiden Wenn Du die Steuerelemente komfortabel mit C++
(ohne .NET und CLI) nutzen willst (Resourcen-Editor) bleibt ein MFC-Projekt
mit C++ fast alternativlos.
Melanie_27 schrieb:
Ich möchte eine grafische Oberfläche in C++ , bei der ich die vielen Steuerelemente der Windows Forms verwenden kann (Choicebox, Button usw...) bei der mir aber ein onclickevent(....) nicht in die header geschrieben wird (nur der Funktionskopf). Ich bin wirklich ratlos.
Hast Du das vorgeschagene MFC-Projekt mit CFormView ausprobiert ?
Habe gerade mit VS2010 ein MFC-Projekt mit SDI und CFormView angelegt und
wie erwartet landet z.b. ::OnBnClickedButton1() in der zum View gehörenden
cpp-Datei. Im Header steht nur die Deklaration (auch wie erwartet ..)
Möglicherweise hast Du da was anders gemacht ?
Hier die Einzelschritte zum nachvollziehen:
1. MFC-Anwendung (hier z.B. Name projektgui)
2. Einfaches Dokument, Projektstil: Windows Explorer, Unterstützung Dokument-/Ansichtarchitektur,
Stil + Farben: Windows 7, ohne Wechsel des visuellen Stils
3. Menü + Symbolleite verwenden, ohne Benutzerdef. Symbolleite und pers. Menüverhalten
4. Allgemeines Steuerelementemanifest, ohne ActiveX-Steuerelemente, ohne Neustartmanager
5. Den View bei den generierten Klassen auf CFormView ändern
(Den CLeftView kann man nicht ändern und wird ihn auch nicht los)
6. Fertig stellen
Wenn man den CLeftView nicht will kann man den natürlich löschen:
Die beiden Dateien LeftView.cpp und LeftView.h löschen (sowohl im Projekt alsauch die Dateien selbst.)
Vorher sollte man die Anweisung "class CprojektguiDoc;" aus LeftView.h in die projektguiView.h kopieren.
Da der Compiler nun alles mit LeftView nicht kennt muss die Anweisung
#include "LeftView.h" in projektgui.cpp gelöscht und in MainFrm.cpp durch
#include "projektguiView.h" ersetzt werden.
Im Template in projektgui.cpp muss das 'CLeftView' wie folgt ersetzt werden:
RUNTIME_CLASS(CprojektguiDoc),
RUNTIME_CLASS(CMainFrame), // Haupt-SDI-Rahmenfenster
RUNTIME_CLASS(CprojektguiView));
In MainFrm.cpp muss dann nur noch die Erzeugung des Splitterfensters komplett
auskommentiert werden, da es bei nur einem View keinen Sinn macht. Am Besten
entfernt man das Überschreiben von OnCreateClient sowie die Membervariable des
Splitterfensters in MainFrm.h komplett.
// CSplitterWnd m_wndSplitter;
// virtual BOOL OnCreateClient(LPCREATESTRUCT lpcs, CCreateContext* pContext);
Melanie_27 schrieb:
Vorallem das Entfernen von Objekten aus dem Ressourcenbereich macht mir Probleme.
Notfalls die .rc Datei mit einem Texteditor bearbeiten