使用资源文件中的位图
Using bitmaps from resource file
我有一个使用位图图像的工具栏。我使用示例文件中的通用位图,它们工作得很好。
然而,当我尝试为此实例添加一个新的位图图标时,它的 close.bmp(它的大小也与所有其他图标一样正确,大小为 16x15 像素)我的程序给我错误。
我只需要知道如何使用资源文件中的位图
错误
../../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();
}
所以我能够解决问题。代码似乎不是问题。它是位图文件格式。我不确定为什么会有所不同,但我正在从 GIMP 编辑照片尺寸,但我会遇到问题。相同的图像,如果我使用 FastStone 图像查看器调整大小,它似乎工作正常。
我有一个使用位图图像的工具栏。我使用示例文件中的通用位图,它们工作得很好。
然而,当我尝试为此实例添加一个新的位图图标时,它的 close.bmp(它的大小也与所有其他图标一样正确,大小为 16x15 像素)我的程序给我错误。
我只需要知道如何使用资源文件中的位图
错误
../../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();
}
所以我能够解决问题。代码似乎不是问题。它是位图文件格式。我不确定为什么会有所不同,但我正在从 GIMP 编辑照片尺寸,但我会遇到问题。相同的图像,如果我使用 FastStone 图像查看器调整大小,它似乎工作正常。