CControlBar
-
Hallo, also ich habe folgendes problem ich habe eine Klasse von CControlBar abgeleitet und in der OnNcCalcSize methode die größe das Clientbereichs geändert. Das Klappt alles solange die ControlBar angedockt is an eine der Seiten aba solbald sie Float is dann kann ich den ClientBereich net mehr bestimmen. Wieso net???
Hier mein Code:GetWindowRect(m_rectBorder); m_rectBorder = CRect(0, 0, m_rectBorder.Width(), m_rectBorder.Height()); DWORD dwBorderStyle = m_dwStyle | CBRS_BORDER_ANY; if(IsFloating()) { m_rectBorder.SetRectEmpty(); lpncsp->rgrc[0].left+=2; lpncsp->rgrc[0].right-=2; lpncsp->rgrc[0].top+=2; lpncsp->rgrc[0].bottom-=2; } else { switch(m_nDockBarID) { case AFX_IDW_DOCKBAR_TOP: dwBorderStyle &= ~CBRS_BORDER_BOTTOM; m_pDockSize.cy = CaptionHeight; lpncsp->rgrc[0].left+=2; lpncsp->rgrc[0].right-=2; lpncsp->rgrc[0].top+=2; lpncsp->rgrc[0].bottom-=2; break; case AFX_IDW_DOCKBAR_BOTTOM: dwBorderStyle &= ~CBRS_BORDER_TOP; m_pDockSize.cy = CaptionHeight; lpncsp->rgrc[0].left+=2; lpncsp->rgrc[0].right-=2; lpncsp->rgrc[0].top+=2; lpncsp->rgrc[0].bottom-=2; break; case AFX_IDW_DOCKBAR_LEFT: dwBorderStyle &= ~CBRS_BORDER_RIGHT; m_pDockSize.cx = CaptionHeight; lpncsp->rgrc[0].left+=2; lpncsp->rgrc[0].right-=2; lpncsp->rgrc[0].top+=2; lpncsp->rgrc[0].bottom-=6; break; case AFX_IDW_DOCKBAR_RIGHT: dwBorderStyle &= ~CBRS_BORDER_LEFT; m_pDockSize.cx = CaptionHeight; lpncsp->rgrc[0].left+=2; lpncsp->rgrc[0].right-=2; lpncsp->rgrc[0].top+=2; lpncsp->rgrc[0].bottom-=6; break; } } SetBarStyle(dwBorderStyle); CControlBar::OnNcCalcSize(bCalcValidRects, lpncsp);Vielen dank für jede antwort im voraus.