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?