P
Abend zusammen,
ich glaube ich habe mir als Anfänger was verbaut. Da ich das Fenster-Konzept verstehen wollte, habe ich ohne den Assistent getippt. Mein Problem ist nun, dass der folgende Source mein Fenster anzeigt. Dies soll das Hauptfenster sein. Nun möchte ich gerne in diesem angezeigten Fenster weitere Fenster anzeigen lassen. Irgendwie habe ich das Gefühl, da das Fenster nicht den Anschein eines MDIs macht, dass es so nicht gehen wird. Was muss ich jetzt tun? Hier mal mein aktueller Source
myapp.h
//Applikation
#include <afxwin.h>
class CMyApp : public CWinApp {
public:
virtual BOOL InitInstance(); //Hier wird Rahmen erstellt
};
myframe.h
//Rahmen
#include <afxwin.h>
#include <afxext.h>
class CMyFrame : public CFrameWnd {
public:
CMyFrame(); //Konstruktor
};
myview.h
//Ansicht
#include <afxwin.h>
class CMyView : public CView {
public:
CMyView(CFrameWnd *parent); //Konstruktor - Ansicht bekommt Zeiger von Rahmen mitgeteilt
protected:
afx_msg void OnDraw(class CDC *); //OnDraw-Methode
};
myapp.cpp
#include "MyApp.h"
#include "MyFrame.h"
CMyApp Anwendung;
BOOL CMyApp::InitInstance()
{
//Zeiger auf neues Rahmen-Objekt setzen
//Ruft somit auch den Konstruktor auf
CMyFrame *pMyFrame = new CMyFrame;
//Adresse an globale MFC-Variable übergeben, damit die das Startfenster kennt
m_pMainWnd = pMyFrame;
//Hauptfenster anzeigen
m_pMainWnd->ShowWindow(m_nCmdShow);
m_pMainWnd->UpdateWindow();
return TRUE;
}
myframe.cpp
#include "MyFrame.h"
#include "MyView.h"
#include "resource.h"
// Rahmenfenster
CMyFrame::CMyFrame() {
LPCTSTR wndClass = AfxRegisterWndClass(NULL,AfxGetApp()->LoadCursor(IDC_ARROW),
(HBRUSH) (COLOR_WINDOW+1),AfxGetApp()->LoadIcon(IDI_ICON1));
// Fenster erzeugen
Create(wndClass,"EMS 2005.7", WS_SYSMENU|WS_THICKFRAME|WS_MINIMIZEBOX|
WS_MAXIMIZEBOX, rectDefault,0,MAKEINTRESOURCE(IDR_MENU1));
// Rahmen ist erstellt
// Ansicht erzeugen und an Rahmen anhängen
new CMyView(this);
}
myview.cpp
#include "MyView.h"
// Ansichtsfenster
CMyView::CMyView(CFrameWnd *parent) {
Create(0,0, WS_CHILD | WS_VISIBLE, CRect(), parent, AFX_IDW_PANE_FIRST);
}
void CMyView::OnDraw(class CDC *dc) {
RECT rect;
TEXTMETRIC tm;
GetClientRect(&rect);
dc->GetTextMetrics(&tm);
dc->TextOut(10,(rect.bottom-tm.tmHeight)/2, "Dies ist die Ansichtsklasse!");
}