Aktualisieren des Texts eines Statusleisten-Bereichs



  • Ich möchte zur Laufzeit die Einträge in meiner Statusleiste ändern. Ich habe das nach http://msdn.microsoft.com/de-de/library/a9ys3wsb umgesetzt. Dies Funktioniert auch soweit ganz gut. Jetzt möchte ich aber die Breite der Panes ebenfalls dynamisch anpassen. Dazu habe ich folgenden Ansatz:

    void CMainFrame::OnUpdateStatus(CCmdUI *pCmdUI)
    {
        pCmdUI->Enable();
    	CString strPage;
        strPage.Format( _T("Page %i"), m_nPage );
    	CDC* pDC_Status=m_wndStatusBar.GetDC();
    	CSize Size=pDC_Status->GetOutputTextExtent(strPage);
    	m_wndStatusBar.SetPaneWidth(m_wndStatusBar.CommandToIndex(ID_AP), Size.cx);
        pCmdUI->SetText( strPage );
    
    }
    

    Allerdings ist die Pane immer breiter als der Text. Wie kann ich die exakte Breite für die Pane ermitteln?


Log in to reply