我已经在IE建立工具条,并新增一个带下拉框的按钮,如何根据选择的项动态改变按钮图像呢,请高手指点!

解决方案 »

  1.   

    为什么没有人回答呢,下面我把我自己的做法先贴出来:
    HBITMAP hNewMap,hOldMap;
    HIMAGELIST hOldMapList,hNewMapList;
    hOldMapList=(HIMAGELIST)::SendMessage(m_hWnd, TB_GETIMAGELIST, 0, 0L);
    HICON hIcon = LoadIcon(_Module.GetResourceInstance(), MAKEINTRESOURCE(IDI_HOME));
    ImageList_ReplaceIcon(hOldMapList,1,hIcon);
    ::SendMessage(m_hWnd,TB_SETIMAGELIST,0,(LPARAM)hOldMapList);
    ****************************************************
    执行完上述代码后,按钮图标并没有改变,只有当鼠标移过去后才更新,请高手指点!
      

  2.   

    为什么没有人回答呢,下面我把我自己的做法先贴出来:
    HBITMAP hNewMap,hOldMap;
    HIMAGELIST hOldMapList,hNewMapList;
    hOldMapList=(HIMAGELIST)::SendMessage(m_hWnd, TB_GETIMAGELIST, 0, 0L);
    HICON hIcon = LoadIcon(_Module.GetResourceInstance(), MAKEINTRESOURCE(IDI_HOME));
    ImageList_ReplaceIcon(hOldMapList,1,hIcon);
    ::SendMessage(m_hWnd,TB_SETIMAGELIST,0,(LPARAM)hOldMapList);
    ****************************************************
    执行完上述代码后,按钮图标并没有改变,只有当鼠标移过去后才更新,请高手指点!
      

  3.   

    HWND hwndButton = ...;
    Invalidate(hwndButton);
      

  4.   

    你这样只是更改,要刷新
    RECT rc;
    GetItemRect(0,&rc);
    InvalidateRect(&rc,FALSE);