2009-04-03 6 views
0

メインフレーム内に独自のツールバーを作成する際に問題があります。自分のツールバーに使用したいボタンのビットマップがありますが、問題はツールバーがSDIアプリケーションのビュー内に表示されていることです。以下は誤って表示されたツールバーの写真です。ここでメインフレームクラス内で独自のツールバーを作成しようとしています。VS 6.0

http://www.flickr.com/photos/[email protected]/3409050475/

メインフレームクラスのOnCreateの関数内のコードです:私もそれは塗装ではないか、正しく描画されていないように見えるあなたのイメージから

// 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; 

答えて

0

を持って、あなたをしましたビットマップを追加してからボタンを追加してみてください。またはm_wndToolbarBarでAutoSizeを呼び出すことができますか?

+0

アドバイスありがとうございます。私はあなたが提案したAddBitmapメソッドを最初に呼び出してからAddButtonsを呼び出すことを試みましたが、何が起こるのかは、半透明のツールバーを取得していますが、ビューまたはクライアント領域内であり、メニューのすぐ下のフレームの一部ではありません。 –

+0

申し訳ありませんが、VC 6は手元にありません。私は、ツールバーで新しいMFC SDIプロジェクトを作成し、MFCウィザードで使用されるフラグと初期化コードをコピーすることです。 – Ismael

1

returnの直前のDockControlBar(&m_wndToolBar)に電話をかけます。

関連する問題