Von CView aus auf CWinApp::OnFileOpen zugreifen



  • Hi,

    wie kann ich das realisieren das ich aus meiner CView auf CWinApp::OnFileOpen zugreifenkann?

    Bekomme immer diese Fehlermeldung:

    :\Programme\Microsoft Visual Studio\MyProjects\SParamSDIReferenzV1.20A 09.07.2003\SParamView.cpp(33) : error C2248: 'OnFileOpen' : cannot access protected member declared in class 'CWinApp'
    c:\programme\microsoft visual studio\vc98\mfc\include\afxwin.h(4167) : see declaration of 'OnFileOpen'
    Error executing cl.exe.

    Reagiere nämlich auf eine OnRechteButtonDown Nachricht in meiner CView klasse und rufe von dort aus ein Popup Menü auf.Von diesem Menü aus möchte ich gerne auf die Fkt. CWinApp::OnFileOpen zugreifen.

    Funktioniert das?



  • Versuchs mal mit

    ((CMyApp*)AfxGetApp())->OnFileOpen();
    

    Das funktioniert zumindest dann, wenn die OnFileOpen() in deiner Apllikationsklasse überschrieben wurde. Falls das nicht der Fall ist, weiß ich nicht, obs trotzdem geht, habe diesen Fall nämlich nicht ausprobiert.

    Vielleicht hilft dir das ja

    Gruß



  • Hi,

    die Idee war nicht schlecht.
    habe es auch gleich ausprobiert aber es funzt so nicht.

    Es muss doch eine möglichkeit geben in einer SDI Anwendung von meiner View Klasse aus die OnFileOpen() aufzurufen.
    Bei anderen SDI Anwendungen funzt das doch auch!

    Vieleicht hat ja jemand noch eine Idee wie man das realisieiren kann?

    THx



  • OnFileOpen macht eigentlich so gut wie gar nichts:

    void CWinApp::OnFileOpen()
    {
    	ASSERT(m_pDocManager != NULL);
    	m_pDocManager->OnFileOpen();
    }
    

    Ruf' doch ganz einfach m_pDocManager->OnFileOpen(); selber auf, die Variable ist nämlich public.



  • Hmm wie meinst du das mit dem Aufrufen?

    m_pDocManager->OnFileOpen();

    funzt so nicht.

    Thx



  • "Funzt so nicht"???
    Compilerfehler? Absturz? Assertion? Aufruf funzt, aber zeigt nix an?

    Ich meine einfach AfxGetApp()->m_pDocManager->OnFileOpen();



  • Thx

    Hat gefunzt...

    C u


Anmelden zum Antworten