Попытка создать свою собственную панель инструментов внутри класса мэйнфреймов VS 6.0 - PullRequest
0 голосов
/ 03 апреля 2009

У меня проблемы с созданием собственной панели инструментов внутри мэйнфрейма. У меня есть растровые изображения кнопок, которые я хочу использовать для своей собственной панели инструментов, но проблема в том, что панель инструментов отображается внутри представления моего приложения SDI. Вот изображение неправильно отображаемой панели инструментов.

http://www.flickr.com/photos/14402427@N02/3409050475/

Вот код внутри функции OnCreate класса Mainframe: у меня также есть

// CToolBarCtrl m_wndToolBar; declared inside the MainFrame.h class.


      if(m_wndToolBar.Create(WS_CHILD |  TBSTYLE_FLAT | WS_VISIBLE | CBRS_TOP
        | CBRS_GRIPPER | CBRS_TOOLTIPS | CBRS_FLYBY | CBRS_SIZE_DYNAMIC
            ,CRect(0,0,250,50),this,0))
    {
        TRACE0("Failed to create toolbar\n");
        return -1;      // fail to create
    }

        TBBUTTON       tbbutton[3] = {0};
      CSize        button_size(90,90);      
      CSize        bitmap_size(80,80);     

      //m_wndToolBar.AddStrings("String 1\0String 2\0String 3\0");

      tbbutton[0].iBitmap                  = 0;      
      tbbutton[0].idCommand            = ID_CONNECT;
    tbbutton[0].fsState                  = TBSTATE_ENABLED;      
      tbbutton[0].fsStyle                  = TBSTYLE_BUTTON;
      tbbutton[0].dwData                  = 0;     
      tbbutton[0].iString                  = 0;

      tbbutton[1].iBitmap                  = 1;      
      tbbutton[1].idCommand            = ID_DISCONNECT;
    tbbutton[1].fsState                  = TBSTATE_ENABLED;       
      tbbutton[1].fsStyle                  = TBSTYLE_BUTTON;
    tbbutton[1].dwData                  = 0;     
      tbbutton[1].iString                  = 1;

      tbbutton[2].iBitmap                  = 2;      
      tbbutton[2].idCommand              = ID_STOP;
    tbbutton[2].fsState                  = TBSTATE_ENABLED;      
      tbbutton[2].fsStyle                  = TBSTYLE_BUTTON   ;
    tbbutton[2].dwData                  = 0;     
      tbbutton[2].iString                  = 2;

m_wndToolBar.SetButtonSize(button_size);
m_wndToolBar.SetBitmapSize( bitmap_size);

m_wndToolBar.AddButtons(3,tbbutton);
m_wndToolBar.AddBitmap(1,IDB_BITMAP1);
m_wndToolBar.AddBitmap(1,IDB_BITMAP2);
m_wndToolBar.AddBitmap(1,IDB_BITMAP3);

return TRUE;

Ответы [ 2 ]

1 голос
/ 23 сентября 2010

Добавить вызов к DockControlBar(&m_wndToolBar) непосредственно перед return.

0 голосов
/ 04 апреля 2009

Из вашего изображения кажется, что оно не нарисовано или не нарисовано правильно, вы пытались сначала добавить растровые изображения, а затем добавить кнопки? или вы можете вызвать AutoSize на m_wndToolbarBar .?

...