这个问题具体的做法我不知道。但可以说点思路,不过,我又觉得似乎要改变真正标题栏的颜色似乎不可能,相比之下,做个假的更经济些。
如果说要改变的画,不外乎拦截重画消息,自己重画了吧?那就要先知道重画消息,好象是wm-ncpaint,另外消息拦截到了,向哪里画呢?就要知道标题栏的HDC,怎么获得啊?我不知道。
尽力而为了。

解决方案 »

  1.   

    我在vb调用
    setsyscolors 1,2,rgb(255,0,0)可以改变标题栏颜色
    可是我在delphi用就是不行.
    var i: integer;
    i:=setsyscolors(1,2,rgb(255,0,0));就是出错,我也不知道为什么?
      

  2.   

    哦?这条API可以?不知道,我现在在网吧上网,等回去后再看吧,不过我们单位一般都上不了网,恐怕最近不能和你讨论这个问题了。
    顺便问一下,出错提示是什么?还有各个参数的意义是什么?编译报错,还是运行出错?
      

  3.   

    给你个示例
    procedure TForm1.Button1Click(Sender: TObject);
    const
      ColCount = 2;
      Elements: Array[0..ColCount-1] of Integer =
        (COLOR_WINDOW, COLOR_WINDOWTEXT);
      Colors: Array[0..ColCount-1] of TColorRef =
        (clBlue, clYellow);
    begin
      if not SetSysColors(ColCount, Elements[0], Colors[0]) then
        RaiseLastWin32Error;
    end;
    //这个函数似乎是改变windows色盘的,最好不要使用
      

  4.   

    这个函数是改变windows的基础色盘的,效果与在修改windows显示风格等同,你可以改变标题栏颜色,但不仅仅是改变自己的,而是整个系统,我想这不是你要的效果吧?这样做,也不够友好,还是做个假的吧。
      

  5.   

    做个假的啊,用TPanel或其他控件模拟标题栏,这样还可以做个性化的关闭、最大、小化按扭,反正你想怎么来就怎么来。