我用了CtruecolorToolBar 这个类,添加的位图
//m_wndBitmapToolBar就是这个CtruecolorToolBar的对象
m_wndBitmapToolBar.LoadTrueColorToolBar(24,IDB_NORMAL,IDB_HOT,IDB_DISABLE);
我想创建一个类似IE的工具条,鼠标滑过的时候背景色稍微变亮一些,请问我应该怎么办?多谢!给个思路就行。我现在是想在CtruecolorToolBar添加mousemove消息,但是如何改变背景色呢?wm_CTLcolor 还是wm_erasebakground
觉得都不行啊?

解决方案 »

  1.   

    不是改变ToolBar颜色而是改变TBUTTON的颜色,向ToolBar发送消息TB_SETCOLORSCHEME定制Highlight和Shadow颜色
      

  2.   

    IDB_NORMAL IDB_HOT  是同一个BMP 
      

  3.   

    不是改变ToolBar颜色而是改变TBUTTON的颜色??那是不是不需要在onmousemove里边改变颜色,而是在
    工具条创建之后给他发送这个消息,谢谢“平乐无忧”
      

  4.   


    //是在mainframe 的oncreate函数里边
    CToolBarCtrl &tool = m_wndToolBar.GetToolBarCtrl();
    COLORSCHEME   mycolorscheme;
    mycolorscheme.clrBtnHighlight=RGB(50,100,50);
    mycolorscheme.clrBtnShadow=RGB(80,20,200);
    mycolorscheme.dwSize=sizeof(mycolorscheme);
    ::SendMessage(tool.m_hWnd, (UINT)TB_SETCOLORSCHEME, 0,(LPARAM)(LPCOLORSCHEME)&mycolorscheme);//没有效果
      

  5.   

    换为
    ::SendMessage(m_wndBitmapToolBar.m_hWnd, (UINT)TB_SETCOLORSCHEME, 0,(LPARAM)(LPCOLORSCHEME)&mycolorscheme);
    似乎有了点效果,只有边界上边有颜色。
      

  6.   

    lResult = SendMessage(      // returns LRESULT in lResult     
    (HWND) hWndControl,      // handle to destination control    
    (UINT) TB_SETCOLORSCHEME,      // message ID    
     (WPARAM) wParam,      // = 0; not used, must be zero    
    (LPARAM) lParam      // = (LPARAM) 
    (LPCOLORSCHEME) lpcs; ); 
    各位:你们的hWndControl用的是什么,你们可以得到各个工具栏按钮的窗口句柄吗,如何得到?不胜感激。