ERLEDIGT
NEIN
NEIN
ANTWORTEN
6
6
ZUGRIFFE
1214
1214
EMPFEHLEN
-
Hi,
habe folgendes Problem:
Ich habe in meinem Programm (mit MFC) eine zweite Symbolleiste angelegt. Diese erscheint jetzt jedoch immer unter der ersten.
Was muss ich machen, damit die zweite Symbolleiste rechts neben der ersten angzeigt wird und nicht darunter?
Gruß Andi
-
21.02.04 18:00 #2
- Registriert seit
- Jul 2003
- Ort
- Duisburg (NRW)
- Beiträge
- 1.788
Du kannst die Methode DockControlBar verwenden.
CFrameWnd:
ockControlBar
void DockControlBar( CControlBar * pBar, UINT nDockBarID = 0, LPCRECT lpRect = NULL );
Ich habe hier ein Funktion, die das erledigt - leider weiss ich nicht mehr, wer den Schnipsel geschrieben hat:
Bar wird links von LeftOf eingesetzt.Code :1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
void CMainFrame::DockControlBarLeftOf( CToolBar* Bar, CToolBar* LeftOf ) { CRect rect; DWORD dw; UINT n; // get MFC to adjust the dimensions of all docked ToolBars // so that GetWindowRect will be accurate RecalcLayout( TRUE ); LeftOf->GetWindowRect( &rect ); rect.OffsetRect( 1, 0 ); dw=LeftOf->GetBarStyle(); n = 0; n = ( dw & CBRS_ALIGN_TOP ) ? AFX_IDW_DOCKBAR_TOP : n; n = ( dw & CBRS_ALIGN_BOTTOM && n==0) ? AFX_IDW_DOCKBAR_BOTTOM : n; n = ( dw & CBRS_ALIGN_LEFT && n==0) ? AFX_IDW_DOCKBAR_LEFT : n; n = ( dw & CBRS_ALIGN_RIGHT && n==0) ? AFX_IDW_DOCKBAR_RIGHT : n; // When we take the default parameters on rect, DockControlBar will dock // each Toolbar on a seperate line. By calculating a rectangle, we // are simulating a Toolbar being dragged to that location and docked. DockControlBar( Bar, n, &rect ); }
-----
Du kannst die Funktion am besten aus CMainFrame::OnCreate() aufrufen, nachdem die Toolbars created sind.Geändert von Kachelator (21.02.04 um 18:09 Uhr)
Chor: "Wir sind der Chor, und wir stimmen zu. Wir stimmen zu, wir stimmen zu, wir stimmen zu."
-
Hi,
gerade ausprobiert! Klappt prima, danke!
Gruß Andi
-
22.02.04 15:43 #4
- Registriert seit
- Jul 2003
- Ort
- Duisburg (NRW)
- Beiträge
- 1.788
Bitte! Freut mich!
Chor: "Wir sind der Chor, und wir stimmen zu. Wir stimmen zu, wir stimmen zu, wir stimmen zu."
-
...hätte aber noch eine Frage bezüglich Symbolleisten.
Ich habe gerade festgestellt, dass es keine Funktion gibt, die die Hauptsymbolleiste ausblendet, sondern nur über ID_VIEW_TOOLBAR geregelt wird.
Wie kann ich das jetzt ändern, dass ich meine eigene Symbolleiste auch auf die Art und Weise ein- bzw. ausblenden kann?
Habe schon in der Hilfe nachgesehen, doch da bin ich nicht durchgestiegen.
Gruß
André
-
22.02.04 16:21 #6
- Registriert seit
- Jul 2003
- Ort
- Duisburg (NRW)
- Beiträge
- 1.788
Weiss ich auch nicht, aber du könntest versuchen, den Toolbar mit FloatToolbar() zu lösen und ihn dann mit toolbar.ShowWindow( SW_HIDE ) verstecken.
Chor: "Wir sind der Chor, und wir stimmen zu. Wir stimmen zu, wir stimmen zu, wir stimmen zu."
-
Hi,
habe etwas in einem Beispiel gefunden, das klappt prima:
Code :1 2 3 4 5 6 7 8 9 10
void CMainFrame::OnToolBarRWToolsCheck() { m_wndRWTools.ShowWindow(m_wndRWTools.IsWindowVisible() ? SW_HIDE : SW_SHOWNA); } void CMainFrame::OnUpdateToolBarRWToolsMenu(CCmdUI* pCmdUI) { ASSERT(pCmdUI->m_nID == ID_VIEW_TOOLBAR_RWTOOLS); pCmdUI->SetCheck(m_wndRWTools.IsWindowVisible()); }
Müssen dann nur noch im Meldungshandler aufgerufen werden.
Trotzdem Danke!
Gruß André
Ähnliche Themen
-
Cursor Position festlegen
Von hairy im Forum C/C++Antworten: 4Letzter Beitrag: 28.03.08, 19:35 -
SWT: Border Position im Textfeld festlegen
Von Xanthus im Forum Swing, Java2D/3D, SWT, JFaceAntworten: 0Letzter Beitrag: 19.07.07, 13:00 -
mit DIV die Position festlegen
Von gingerswelt im Forum CSSAntworten: 12Letzter Beitrag: 10.01.06, 06:09 -
ExcelMakro Diagramm Position festlegen
Von Gamedemos im Forum Visual Basic 6.0Antworten: 3Letzter Beitrag: 22.11.05, 15:56 -
Mc Position festlegen
Von michback im Forum Flash PlattformAntworten: 1Letzter Beitrag: 16.04.05, 10:00





Zitieren
Login






