Windows Fenster mit MFC



  • Hallo, ich hoffe die Frage wurde nicht schon zu oft gestellt, aber ich habe in den FAQs keine Antwort gefunden.

    Ich möchte meine Programmen nun auch mal eine grafische Oberfläche geben, also eine Windows-Applikation. Ich habe zwar den Petzold und anderer Bücher schon durchgewelzt, aber finde kein einfaches MFC-Skript, um ein normales WS_OVERLAPPEDWINDOW zu erstellen, nur über die WINAPI.... Ich möchte aber ein MFC-Code dazu?? Ich habe einen gefunden, der läuft aber nicht, muss ich in einem "Win32-Anwendung"-Arbeitsbereich/Projekt erst Änderungen vornehmen, sodass das funktioniert?

    Für Antworten oder Verweise auf ein gutes Tutorial wäre ich sehr dankbar.

    mfg Björn Fromm



  • Hi!

    Vielleicht hilft dir das, hab ich aus einem Buch:

    // Quelltextdatei Anwendung.cpp
    #include "Anwendung.h"
    
    // Anwendungs-Objekt erzeugen
    CMyApp  Anwendung;
    
    // Ansichtsfenster
    CAnsicht::CAnsicht(CFrameWnd *parent) {
      Create(0,0, WS_CHILD | WS_VISIBLE, 
             CRect(), parent, AFX_IDW_PANE_FIRST);
      }
    
    // muss überschrieben werden, da sonst abstrakte Klasse
    void CAnsicht::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!");
      }
    
    // Rahmenfenster
    CRahmenfenster::CRahmenfenster() {
      // Fenster erzeugen
      Create(0,"Rahmen mit View", 
             WS_OVERLAPPEDWINDOW, rectDefault); 
    
      // Ansicht erzeugen
      new CAnsicht(this);
      }
    
    // Anwendung initialisieren
    BOOL CMyApp::InitInstance() {
      // Rahmenfenster-Objekt erzeu-gen und Fenster anzeigen
      CRahmenfenster *pMainWnd = new CRahmenfenster;
    
      m_pMainWnd = pMainWnd;    
      m_pMainWnd->ShowWindow(m_nCmdShow);
      m_pMainWnd->UpdateWindow();
    
      return TRUE;
      }
    
    // Header-Datei Anwendung.h
    #include <afxwin.h>
    
    class CAnsicht : public CView {
     public:
       CAnsicht(CFrameWnd *parent);
     protected:
       afx_msg void OnDraw(class CDC *);
     };
    
    class CRahmenfenster : public CFrameWnd {
     public:
       CRahmenfenster();
     };
    
    class CMyApp : public CWinApp {
      public:
        virtual BOOL InitInstance();
      };
    


  • hab es leider nicht geschafft, den code zum laufen zubringen ! spuckt immernoch folgende fehlermeldungen aus:

    test.cpp
    H:\test.cpp(6) : error C2146: syntax error : missing ';' before identifier 'Anwendung'
    H:\test.cpp(6) : error C2501: 'CMyApp' : missing storage-class or type specifiers
    H:\test.cpp(6) : fatal error C1004: unexpected end of file found
    Error executing cl.exe.

    test.obj - 3 error(s), 0 warning(s)



  • ne sorry, fehler sind weg, jetzt habe ich nur noch die fehler, die ich immer bei den skripts habe, egal aus welchem buch:

    den linkerfehler 2001 und 1120 !!

    ich weiß echt nicht was ich da tun soll!!



  • Benutz doch einfach den Assi und erstell dir ein MFC Projekt, dann hast du den fertigen Code mit einem Window...


Anmelden zum Antworten