如题。

解决方案 »

  1.   

    工具栏中没有看到颜色这个属性,也没有其改变颜色的方法,不知道是不是要用到API呢,而对于状态栏,虽然可以往里面添加图片,但是却会把文字往后移,状态栏中能不能在图片的上方显示文字呢?
      

  2.   

    对于状态栏可以通过发送SB_SETBKCOLOR消息设置背景色
    SB_SETBKCOLOR
    SB_SETBKCOLOR
        wParam = 0;
        lParam = (LPARAM)(COLORREF)clrBk;Sets the background color in a status bar. Returns the previous background color, or CLR_DEFAULT if the background color is the default color. 
    clrBk 
    COLORREF value that specifies the new background color. Specify the CLR_DEFAULT value to cause the status bar to use its default background color. 
      

  3.   

    而ToolBar没有直接设置的方法但是可以拦截处理它的WM_ERASEBKGND消息,自己绘制背景
    可参考:http://www.5ivb.net/down/21/5ivb_1112.asp
      

  4.   

    To: cso(sjxsoft-天水是我家)
    那SB_SETBKCOLOR的值是多少啊?在VB中没有它的预定义啊
      

  5.   

    我用API查找工具,查不到这个常量啊,我在VC中查了一下是:0X2000。我把它转换过来用到程序中并没有改变状态栏的颜色。用SPY查看消息,也没发现有SB_SETBKCOLOR。
      

  6.   

    常量的值定义的不对:
    Option Explicit
    Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long
    Private Const SB_SETBKCOLOR = &H2001Private Sub Command1_Click()
        Call SendMessage(StatusBar1.hwnd, SB_SETBKCOLOR, 0, ByVal vbGreen)
    End Sub
      

  7.   

    Private Const CCM_FIRST = &H2000
    Private Const CCM_SETBKCOLOR = (CCM_FIRST + 1)
    Private Const SB_SETBKCOLOR = CCM_SETBKCOLOR
      

  8.   

    哦,原来是这样的。我开始在VC中查了一下,正是上面大哥说的那几个消息。但是我发现在VC的头文件里定义CCM_FIRST = 0X2000。X不是表示是8进制的吗,我就把它转换成16进制。
      

  9.   

    怎么改变以后的颜色只能是绿色的呀,换用其他的颜色而显示的颜色还是绿色的,比如我使用vbBlue,而状态栏的背景还是绿色的,怎么回事啊?
      

  10.   

    Option Explicit
    Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long
    Private Const SB_SETBKCOLOR = &H2001Private Sub Command1_Click()
        Call SendMessage(StatusBar1.hwnd, SB_SETBKCOLOR, 0, ByVal vbRed)
    End Sub
    没有任何问题,我用vbRed,vbBlue等等都试过了,还有只能用在6.0版本之中
      

  11.   

    可以了,谢谢!另外我想问,怎么去改变TreeView控件中字体得颜色啊?
      

  12.   

    我知道有个方法可以改变其选中结点的前景色和背景色:treeview1.selecteditem.backcolor属性和treeview1.selecteditem.forecolor属性。可是当我选中了其中一个结点以后并没有改变颜色。不知道是怎么回事。我在这个树控件中截获了WM_PAINT消息(用来绘制背景图片),颜色改变不了的原因是不是因为这个原因呢?