Nachricht an CSplitterWnd senden?



  • Hi, ich bins (mal wieder). Also ich hab jetzt rausbekommen das ich eine Nachricht per PostMessage an das Parent-Fenster schicken muss (hier ein Splitter-Fenster) und das erst das die Nachricht zu einem anderen Child-Fenster weiterleiten kann.
    Ich habs aml mit folgenden Code probiert.

    Die Splitter-Klasse ist von CSplitterWnd abgeleitet.

    class CMainSplitter :
    	public CSplitterWnd
    {
    public:
    	CMainSplitter(void);
    	~CMainSplitter(void);
    protected:
    	virtual LRESULT WindowProc(UINT message, WPARAM wParam, LPARAM lParam);
    };
    

    Hier werden die Frames erzeugt.

    BOOL CMainFrame::OnCreateClient(LPCREATESTRUCT /*lpcs*/,
    	CCreateContext* pContext)
    {
    	// Unterteiltes Fenster erstellen
    	if (!m_wndSplitter.CreateStatic(this, 2, 1)) //m_wndSplitter ist als CMainSplitter deklariert
    		return FALSE;
    
    	if (
    		!m_wndSplitter.CreateView(0, 0, RUNTIME_CLASS(CNavigation), CSize(100, 40), pContext) ||
    		!m_wndSplitter.CreateView(1, 0, RUNTIME_CLASS(CChildFrame), CSize(100, 100), pContext))
    	{
    		m_wndSplitter.DestroyWindow();
    		return FALSE;
    	}
    
    	return TRUE;
    }
    

    Die Message-Funktion des Splitter-Fensters.

    LRESULT CMainSplitter::WindowProc(UINT message, WPARAM wParam, LPARAM lParam)
    {
    	if(message == WM_MESSAGE_TEST)
    	{
    		MessageBox("Hallo!", "Meldung!", MB_ICONERROR);
    	}
    
    	return CSplitterWnd::WindowProc(message, wParam, lParam);
    }
    

    Eine Nachricht zum Testen schicken...

    void CNavigation::OnInitialUpdate() 
    {
    	CFormView::OnInitialUpdate();
    
    	((CNavigation*)GetParent())->PostMessage(WM_MESSAGE_TEST, 0, 0); // Einfach mal ne Nachricht senden...
    
    }
    

    Das Dumme ist, es funktioniert nicht, also es kommt keine Nachricht an.
    BTW. Bekomm ich eigentlich den Splitter-Pointer über die GetParent()-Funktion?

    Und noch eine Frage zum Schluss, was muss ich machen, damit die "Abgrenzungen" zwischen den einzelnen Splitter-Chils verschwinden, oder dünner werden?

    Danke,
    DarkLord


Anmelden zum Antworten