Klassenübergreifender Zugriff in MDI



  • Hallo,
    ich möchte innerhalb einer MDI-Anwendung von einer Klasse aus auf Elemente einer anderen zugreifen. Einen Zugriff von CAppView nach CAppDoc bekomme ich schon hin: 🙂

    CAppDoc * pDoc = GetDocument();
    pDoc-> ... ;
    

    Gescheitert bin ich am Versuch das Ganze auch für CappView nach CmainFrame bzw. für CappDoc nach CappView zu umzuändern. Wie muss ich hier vorgehen ? 😕



  • Hi!

    CMDIFrameWnd* pMainWnd = (CMDIFrameWnd*)AfxGetMainWnd();    
    CMDIChildWnd* pChild = (CMDIChildWnd*)pMainWnd->MDIGetActive();
    pChild->SetWindowText("Hallo");
    

    mfg



  • Erst einmal danke! Soweit funktioniert der Zugriff. 🙂
    Aber, was ich ursprünglich wollte klappt noch immer nicht: Der Zugriff auf Elemente wie ToolBar in CMainFrame oder Steuerelemente in CAppView. Hab’ vielleicht meine Frage falsch gestellt. 🙄



  • Hi!
    Probier mal

    AfxGetMainWnd()->m_wndToolBar....
    CMianFrame* pWnd = (CMainFrame*)AfxGetApp()->m_pMainWnd;
    ((MeineApp*)AfxGetApp())->Funktion();
    

    mfg



  • Musst gucken, ob die Toolbar etc. public sind und ansonsten Zugriffsfunktionen schreiben.



  • Sorry, aber das war’s auch nicht. Die angegebenen Befehle funktionieren zwar alle, ermöglichen aber immer noch nicht zugriff auf Toolbar oder ähnliches. (Ich habe die Implementierung der Toolbar in CMainFrame von protected (Voreinstellung von Assistenten) nach public verschoben aber auch ohne Erfolg.)

    Was genau ist mit

    Musst gucken, ob die Toolbar etc. public sind und ansonsten Zugriffsfunktionen schreiben.

    gemeint?



  • Damit ist eigentlich genau das gemeint was du gemacht hast 😉 Was willst du genau machen? Der Assi legt nämlich nicht ohne Grund den Toolbar als protected an - also muss man mit dne Zugriffen aufpassen.

    mfg



  • Ich möchte von CAppDoc aus die Schaltflächen in den Toolbars verändern z.B. die für Formatierung sodass z.B. die für Fett F eingedrückt ist wenn der Cursor an einer bereits fetten Stelle ist.

    Auf der anderen Seite möchte ich von CAppDoc aus in Serialize auf ein Steuerelement in CAppView zugreifen, das würde einiges vereinfachen.
    (Das ist mir aber nicht so wichtig wie der Zugriff auf die ToolBar)



  • ➡ Hallo,
    ➡ ich wäre nicht sonderlich traurig, wenn mir mal jemand antworten würde! 😞 😞



  • Ich habe mal in der MSDN nach "toolbar button pressed" gesucht und folgenden kleinen Absatz gefunden, der sich als Suchansatz eignet:

    Toolbar Button States
    Each button in a toolbar has a state. The toolbar updates a button's state to reflect user actions, such as clicking the button. The state indicates whether the button is currently pressed or not pressed, enabled or disabled, hidden or visible. Although an application sets a button's initial state when adding the button to the toolbar, it can change and retrieve the state by sending TB_GETSTATE and TB_SETSTATE messages to the toolbar. For a list of toolbar button states, see Toolbar States.

    Viel Spass beim Weitersuchen


Anmelden zum Antworten