2017-07-26 18 views
0

ビットマップイメージを使用するツールバーがあります。私は、サンプルファイルから汎用ビットマップを使用して、彼らは完全に正常に動作します。リソースファイルのビットマップを使用する

しかし、このインスタンスの新しいビットマップアイコンclose.bmpを追加しようとすると(他のすべてのアイコンと同じように16x15pxのサイズが正しく表示されます)、私のプログラムでエラーが表示されます。だから私はちょうどリソースファイルから

エラー

../../src/msw/toolbar.cpp(799): assert "Assert Failure" failed in 
Realize():invalid tool button bitmap 

Cant load bitmap 'close' from resources! Check.rc file. 

リソース.RC

new BITMAP "bitmaps/new.bmp" 
open BITMAP "bitmaps/open.bmp" 
save BITMAP "bitmaps/save.bmp" 
help BITMAP "bitmaps/help.bmp" 
close BITMAP "bitmaps/close.bmp" 

た.cpp

{ 
    // Set up toolbar 
    enum 
    { 
     Tool_new, 
     Tool_open, 
     Tool_save, 
     Tool_help, 
     Tool_close, 
     Tool_Max 
    }; 

    wxBitmap toolBarBitmaps[Tool_Max]; 

#if USE_XPM_BITMAPS 
    #define INIT_TOOL_BMP(bmp) \ 
     toolBarBitmaps[Tool_##bmp] = wxBitmap(bmp##_xpm) 
#else // !USE_XPM_BITMAPS 
    #define INIT_TOOL_BMP(bmp) \ 
     toolBarBitmaps[Tool_##bmp] = wxBITMAP(bmp) 
#endif // USE_XPM_BITMAPS/!USE_XPM_BITMAPS 



    INIT_TOOL_BMP(new); 
    INIT_TOOL_BMP(open); 
    INIT_TOOL_BMP(save); 
    INIT_TOOL_BMP(help); 
    INIT_TOOL_BMP(close); 

    toolBar->AddTool(wxID_ANY, wxT("New"), toolBarBitmaps[Tool_new], wxNullBitmap, wxITEM_NORMAL, wxT("New IWEX Project")); 
    toolBar->AddTool(wxID_ANY, wxT("Open"), toolBarBitmaps[Tool_open], wxNullBitmap,wxITEM_NORMAL , wxT("Open IWEX Project")); 
    toolBar->AddTool(idFileClose, wxT("Close"), toolBarBitmaps[Tool_close], wxT("Close button"), wxITEM_NORMAL); 

    toolBar->Realize(); 

} 
+0

奇妙な。どのwxWidgetsバージョンですか?原因がビットマップであるかどうかを確認するには、作業用ビットマップ(例: "new.bmp")をコピーして名前を変更します( "close.bmp")。 – Ripi2

+0

@MaazAzeem、あなたはInitAllImageHandlers()を呼び出しましたか? – Igor

答えて

0

をビットマップを使用する方法を知っておく必要があり

I問題を解決することができました。コードは問題ではないようです。ビットマップファイル形式です。私はGIMPから写真のサイズを編集していましたが、問題が発生します。私がFastStoneイメージビューアを使用してサイズを変更すると、同じイメージが正しく動作するように見えます。

関連する問題