メインフレーム内に独自のツールバーを作成する際に問題があります。自分のツールバーに使用したいボタンのビットマップがありますが、問題はツールバーが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;
アドバイスありがとうございます。私はあなたが提案したAddBitmapメソッドを最初に呼び出してからAddButtonsを呼び出すことを試みましたが、何が起こるのかは、半透明のツールバーを取得していますが、ビューまたはクライアント領域内であり、メニューのすぐ下のフレームの一部ではありません。 –
申し訳ありませんが、VC 6は手元にありません。私は、ツールバーで新しいMFC SDIプロジェクトを作成し、MFCウィザードで使用されるフラグと初期化コードをコピーすることです。 – Ismael