Suche "richtiges" MFC Tutorial
-
Hallo,
ich suche ein richtiges MFC Tutorial, bisher konnte ich nur Anleitungen finden, die ständig den Klassen Wizard oder ähnliches verwenden. Ich möchte aber gerne alles zumindest einmal selber schreiben...
Außerdem wurden in den Anleitungen immer irgendwelch Dialoge mit mit Resourcen erstellt.... wo verdammt nochmal kommt der Dialog her? Ich kann keine Quellcode dafür finden (außer der von CDialog abgeleiteten Klasse, aber woher kommen die Buttons etc.).
Ich bin über deutsch- und englischsprachige Links dankbar.mfg
Hubibi
-
Ansich musst du 'nur' ein WinApi - Programm schreiben und die Klassen der MFC nutzen. Du hast da die WinMain() - Funktion, erstellst deine Nachrichtenschleife,etc.
Die Dialoge kannst du dann entweder mit Create() erstellen oder anhand der Ressourcen-Skriptsprache. Diese Dateien haben die Endung .rc.
-
Ich glaube, dann solltest du dir besser mal die WinAPI ansehen.
Die MFC nimmt dir ja nur die Detailarbeit ab, die du mit der API hättest.
-
auch estardus meinung.
möchtest du die mfc dinge doch nutzen (cstring, array..), hier ein beispiel:
http://www.cpp-tutor.de/mfc/mfc/kap3/_intern/simplemfc.htm
zum einbinden der header
-
Naja, für welche VC-Version ist denn das MFC-Tutorial? Denn mit VC++2002 hat sich das alles sehr geändert, mit den ganzen Wizards und Resource-Dialogen. Wenn dann brauchst du ein aktuelles Tutorial und die sind irgendwie seltener.
Von Hand würde ich es aber trotzdem nicht versuchen. Der Sinn von VC++-IDE und der MFC ist ja gerade, das man _schnell_ und mit wenig Handarbeit an sein Ziel kommt. Es geht bei der MFC und der IDE darum produktiv zu sein, d.h. viel Output (in Form von Funktionalität) in kurzer Zeit zu haben -> Zeit ist Geld.
Du kannst trotzdem mit Wizards lernen wie die MFC funktioniert. In dem man sich einfach den erzeugten Code anschaut. Weiterhin wird in der MSDN auch der erzeugte Code erklärt.
Wenn du alles von Hand machen willst, solltest du auch Notepad anstatt einer IDE benutzen.
-
Hmmm, die WinApi habe ich mir schon mal angeschaut.
Ich bin das ganze nur von HTML gewöhnt, und da sind die WYSIWYG Editoren ja der größte Schrott. Ich würde einfach gerne Wissen wie ich z.B. ein Button und ähnliches meinem Fenster hinzufüge.
Ich meine ich habe folgendes:
//MFC_Tutorial_5.cpp #include <afxwin.h> class MFC_Tutorial_Window :public CFrameWnd { public: MFC_Tutorial_Window() { Create(NULL,"MFC Tutorial Part 1 CoderSource Window"); } }; class MyApp :public CWinApp { MFC_Tutorial_Window *wnd; public: BOOL InitInstance() { wnd = new MFC_Tutorial_Window(); m_pMainWnd = wnd; m_pMainWnd->ShowWindow(1); return 1; } }; MyApp theApp;
Was mir auch klar ist, warum und wie (Anwendungsklasse hat Nachrichtenschleife, erstellt Fenster usw.).
Aber jetzt möchte ich gerne noch ein mein Fenster einen button usw...
Wie bekomme ich die darein?P.S. hab Visual C++ 6
-
Hubibi schrieb:
Hmmm, die WinApi habe ich mir schon mal angeschaut.
Ich bin das ganze nur von HTML gewöhnt, und da sind die WYSIWYG Editoren ja der größte Schrott. Ich würde einfach gerne Wissen wie ich z.B. ein Button und ähnliches meinem Fenster hinzufüge.
Ich meine ich habe folgendes:
//MFC_Tutorial_5.cpp #include <afxwin.h> class MFC_Tutorial_Window :public CFrameWnd { public: MFC_Tutorial_Window() { Create(NULL,"MFC Tutorial Part 1 CoderSource Window"); } }; class MyApp :public CWinApp { MFC_Tutorial_Window *wnd; public: BOOL InitInstance() { wnd = new MFC_Tutorial_Window(); m_pMainWnd = wnd; m_pMainWnd->ShowWindow(1); return 1; } }; MyApp theApp;
Was mir auch klar ist, warum und wie (Anwendungsklasse hat Nachrichtenschleife, erstellt Fenster usw.).
Aber jetzt möchte ich gerne noch ein mein Fenster einen button usw...
Wie bekomme ich die darein?P.S. hab Visual C++ 6
Ganz einfach...
... class MFC_Tutorial_Window :public CFrameWnd { public: MFC_Tutorial_Window() { Create(NULL,"MFC Tutorial Part 1 CoderSource Window"); CButton button; button.Create(NULL, WS_CHILD | BS_CENTER ,CRect(10,10,100,100), this, 10001); button.ShowWindow(SW_SHOW); button.UpdateWindow(); } ...
-
ja.... endlich...
sowas wollte ich, danke.Edit:
Habs versucht, bei mir wird allerdings kein Button angezeigt, nur der Weiße Bereich, muss ich eventuell eine Client Area oder ähnliches erstellen?
-
So wird der Button aber nicht lange zu sehen sein.
-
Hubibi schrieb:
ja.... endlich...
sowas wollte ich, danke.Edit:
Habs versucht, bei mir wird allerdings kein Button angezeigt, nur der Weiße Bereich, muss ich eventuell eine Client Area oder ähnliches erstellen?Sorry,
muss natürlich so aussehen#include <afxwin.h> class MFC_Tutorial_Window :public CFrameWnd { public: CButton button; MFC_Tutorial_Window() { Create(NULL,"MFC Tutorial Part 1 CoderSource Window"); button.Create(NULL, WS_CHILD | BS_CENTER ,CRect(10,10,100,100), this, 10001); button.ShowWindow(SW_SHOW); button.UpdateWindow(); } }; ...
@Kenner des Stacks
War ein dummer Fehler meinerseits...Gruss
Tobi