Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Visual C++/MFC/WTL > Изменение стилей плавающего controlbar


Автор: cast0r 2.10.2008, 17:04
Драсте, уважаемые. у мну есть проблемка((
чего нужно: показать controlbar  в плавающем фрейме так, чтобы у фрейма панель заголовка была шире, чем у CMiniDockFrameWnd, и чтоб была видна иконка в левом верхнем углу.
что есть: 
Код

         //unasledovan ot CSizingControlBar http://www.datamekanix.com/sizecbar/
         //_SCB_REPLACE_MINIFRAME i _SCB_MINIFRAME_CAPTION  ne opredelyayu
         MyBar *newbar = new MyBar(...);
         CMainFrame* pMainFrame = (CMainFrame*) ::AfxGetMainWnd();
         newbar->Create(title, pMainFrame, 123,
                                   WS_CHILD |CBRS_TOP ));
  
        DWORD dwBarStyle = newbar->GetBarStyle() | CBRS_TOOLTIPS |
                         CBRS_FLYBY |CBRS_SIZE_DYNAMIC;
        newbar->SetBarStyle(dwBarStyle);
        newbar->EnableDocking(0); // no docking
        pMainFrame->FloatControlBar(newbar, CPoint(...));

        //pytayus' rashirit'panel' zagolovka i razresit' ikonku
         DWORD dwExStyle = ::GetWindowLong(newbar->GetParentFrame()
                            ->m_hWnd, GWL_EXSTYLE);
         dwExStyle & ~WS_EX_TOOLWINDOW;
         ::SetWindowLong(newbar->GetParentFrame()->m_hWnd,
                                 GWL_EXSTYLE, dwExStyle);

         newbar->GetParentFrame()->SetIcon(pMainFrame->GetIcon(FALSE), FALSE);

         pMainFrame->ShowControlBar(newbar, TRUE, FALSE);

         pMainFrame->RecalcLayout();

чего получаю: плавающий фрейм с более широкой панелью заголовка и с иконкой.  когда нажимаю левую клавишу мыши на панели заголовка,  появляется рамка выделения, как обычно для плавающих контролбаров. и все бы было хорошо, но рамка эта не точно обтягивает фрейм, а сдвинута на пару пикселей вправо и вниз, плюс ее размеры меньше - такие, как если бы панель заголовка не менялась. после того, как отжимаю клавишу мыши, фрейм с контролом сдвигается вслед за рамкой

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)