求高手!我做了一个在对话框中添加真彩色的工具栏,但是出现了一个问题,就是在编译的时候,出现“无法加载外部资源文件”,我想添加一些现成的彩色图标,作为工具栏的图标,请问我哪里出错了,该如何解决?
部分代码如下:
.h文件中:
CToolBarCtrl m_ToolBar;
CImageList m_ImageList;
.cpp文件中
const int ARRAY_MAX=5;
//建立ImageList对象及ToolBar对象
m_ImageList.Create(32,32,ILC_COLOR32|ILC_MASK,0,0); //创建一个图像列表框
m_ToolBar.EnableAutomation();
m_ToolBar.Create(WS_CHILD|WS_VISIBLE,CRect(0,0,0,0),this,IDR_TOOLBAR1);
//向ImageList对象中添加资源图标
UINT Resource[ARRAY_MAX]={IDI_ICON_ORGANIZE,IDI_ICON_RECYCLE,IDI_ICON_RECYCLE_RED,IDI_ICON_SEND,IDI_ICON_STOP};
int i;
TBBUTTON button[ARRAY_MAX];
for(i=0;i<ARRAY_MAX;i++)
{
//向图像列表框中添加图片
m_ImageList.Add(::LoadIcon(::AfxGetResourceHandle(),\
MAKEINTRESOURCE(Resource[i])));
}
m_ToolBar.SetImageList(&m_ImageList);
for(i=0;i<ARRAY_MAX;i++)  //设置每个按钮属性
{
button[i].dwData=0;
button[i].fsState=TBSTATE_ENABLED;
button[i].fsStyle=TBSTYLE_BUTTON;
button[i].iBitmap=i;
}
m_ToolBar.AddButtons(ARRAY_MAX,button);
TBBUTTON Wrap;  //创建一个分隔条
Wrap.dwData=0;
Wrap.fsState=TBSTATE_ENABLED;
Wrap.fsStyle=TBSTYLE_SEP;
m_ToolBar.InsertButton(3,&Wrap);
m_ToolBar.AutoSize();
m_ToolBar.SetStyle(TBSTYLE_FLAT|CCS_TOP);

解决方案 »

  1.   

    图标添加到资源里了吗  我之前这么弄的  把图标添加到资源文件中  然后这样  我实现的是工具栏那种效果的  不知道跟你说的一样不 //为工具栏添加图标
    m_ImageList.Create(35,35,ILC_COLOR24|ILC_MASK,1,1);
    m_ImageList.Add(AfxGetApp()->LoadIcon(IDI_ICON1));
    m_ImageList.Add(AfxGetApp()->LoadIcon(IDI_ICON2));
    m_ImageList.Add(AfxGetApp()->LoadIcon(IDI_ICON3));
    m_ToolBar.GetToolBarCtrl().SetImageList(&m_ImageList);
      

  2.   

    1、创建工具栏。
    2、到“http://www.iconfinder.com/”引擎上面搜索图标,可以先搜索PNG的图片。(注意图标的格式大小)
    3、将PNG的图片在PhotoShop或者Windows图片编辑器上面进行拼凑成一条PNG的图片,转换成256像素的Bmp图片。(图片的背景色为(255,0,255))
    4、在项目的资源视图下图,导入这张Bmp图片到Bitmap下面,并且命名。
    5、对话框程序是自己手动添加工具栏的,因此在创建工具栏的代码后面,添加如下代码: if (!m_wndToolBar.CreateEx( this,TBSTYLE_FLAT ,  WS_CHILD | WS_VISIBLE | CBRS_ALIGN_TOP | CBRS_GRIPPER | CBRS_TOOLTIPS,
    CRect(4,4,0,0)) || !m_wndToolBar.LoadToolBar(IDR_TOOLBAR_MAIN) )
    {
    TRACE("failed to create toolbar\n");
    return -1;
    } CBitmap bitmap;
    CImageList imageList; //// Create and set the normal toolbar image list.
    bitmap.LoadBitmap(IDB_BITMAP_TOOLBAR);
    imageList.Create(32, 32, ILC_COLORDDB|ILC_MASK, 7, 0);
    imageList.Add(&bitmap , RGB(255,0,255));
    m_wndToolBar.SendMessage(TB_SETIMAGELIST, 0, (LPARAM)imageList.m_hImageList);
    imageList.Detach();
    bitmap.Detach(); m_wndToolBar.ShowWindow(SW_SHOW);
    RepositionBars(AFX_IDW_CONTROLBAR_FIRST, AFX_IDW_CONTROLBAR_LAST, 0);
      

  3.   

    试试将m_ImageList.Create(32,32,ILC_COLOR32|ILC_MASK,0,0)改成:m_ImageList.Create(32,32,ILC_COLOR32|ILC_MASK,ARRAY_MAX,ARRAY_MAX)?
      

  4.   

    试试将m_ImageList.Create(32,32,ILC_COLOR32|ILC_MASK,0,0)改成:m_ImageList.Create(32,32,ILC_COLOR32|ILC_MASK,ARRAY_MAX,ARRAY_MAX)?