[基于SDK]我创建好工具条后,工具条上的按钮图片显示的是系统默认的(我也不知道如何换上资源里备好的位图),代码如下:
hTool = CreateWindowEx(0, TOOLBARCLASSNAME, NULL, WS_CHILD | WS_VISIBLE, 0, 0, 0, 0,
hWnd, (HMENU)IDC_MAIN_TOOL, GetModuleHandle(NULL), NULL);
SendMessage(hTool, TB_BUTTONSTRUCTSIZE, (WPARAM)sizeof(TBBUTTON), 0); TBBUTTON tbb[3];
TBADDBITMAP tbab; tbab.hInst = HINST_COMMCTRL;
tbab.nID = IDB_STD_SMALL_COLOR;
SendMessage(hTool, TB_ADDBITMAP, 0, (LPARAM)&tbab); ZeroMemory(tbb, sizeof(tbb));
tbb[0].iBitmap = STD_FILENEW;
tbb[0].fsState = TBSTATE_ENABLED;
tbb[0].fsStyle = TBSTYLE_BUTTON;
tbb[0].idCommand = ID_FILE_NEW;
        .
        .
        .
        SendMessage(hTool, TB_ADDBUTTONS, sizeof(tbb)/sizeof(TBBUTTON), (LPARAM)&tbb);请问该如何换上资源里准备好的位图呢? 请高手帮忙。
另外为什么创建的这个工具条没有焦点?鼠标点上去一点反应都没有。

解决方案 »

  1.   

    tbb[0].iBitmap = STD_FILENEW;
    把这个改为你需要的图标的ID进去就可以了,必须先把图标装进资源管理器并给个ID
      

  2.   

    没有焦点? 说的详细点。是图片灰显啊 还是不灰显 点了以后不执行函数?如果是灰显,说明没有添加按钮的消息响应函数,
    如果不灰显,说明添加的消息响应函数没有被执行,那就是你把消息响应函数添加到了错误的类里面去了。
    一般是将按钮的消息响应函数添加在CMainFrame类或C**View类里面,如果工具条是自己写的了类,
    切忌不要添加到工具条类自己里面去。类只是一个抽象的东西,消息的接收要靠类创建的对象(窗口),工具条是子窗口,子窗口的消息要又父窗口转发
    给它。
      

  3.   

    创建时要加上TBSTYLE_BUTTON类型,即WS_CHILD | WS_VISIBLE|TBSTYLE_BUTTON
      

  4.   

        tbb[0].fsStyle = TBSTYLE_BUTTON;
    我加了这个属性的啊。
      

  5.   

    创建工具栏的时候!
    CreateWindowEx(0, TOOLBARCLASSNAME, NULL, WS_CHILD | WS_VISIBLE|TBSTYLE_BUTTON, 0, 0, 0, 0,
            hWnd, (HMENU)IDC_MAIN_TOOL, GetModuleHandle(NULL), NULL);