如何改变窗体标题栏的样式!可以彻底改变么!?

解决方案 »

  1.   

    你的意思是不是用第三方vcl啊?
    FlatStyle Vcl里有个Flattitlebar组件
      

  2.   

    Procedure CreateParams(Var Params:TCreateParams);override;
    .....慢慢写,不过也不能完全实现改变的目的
    或者就是WndProc动态添加button到title上边
      

  3.   

    那个Flattitlebar怎么用啊!?再次感谢!
      

  4.   

    使窗口的borderstyle为bsnone,放置flattitlebar,让为top,不用写什么代码,她直接拦截拖动窗口的消息这样吧,你去www.ccrun.com,下载Minispy2。1的源程序,看看老妖是怎么美化的,不过是cb的代码哦,自己转一下吧
      

  5.   

    完了,还停止下载了,简单说说吧,使窗口的borderstyle为bsnone,放置一个Image1控件,加入一个适合的图片做成类似Mac系统的程序的Title,然后加几个透明的speedbutton,添加图片,成为关闭,最小化按钮等等,最后要求代码实现发送拖动窗口的消息。明白了吗?
    其实就是使用图片伪装成title了
      

  6.   

    同意用图片的方法下面给出用鼠标拖动的代码
    procedure TfrMain.TitleMouseMove(Sender: TObject; Shift: TShiftState; X,
      Y: Integer);
    begin
        if Shift=[ssLeft] then
        begin
            ReleaseCapture;
            SendMessage(handle,WM_NCLBUTTONDOWN,HTCAPTION,0);
        end;
    end;
      

  7.   

    我这里有一个简单例子原理跟  rouqing(*柔情似水&冷酷到底*)  和楼上的这不多你如果很急 我可以把memo源代码发给你  要的话留下e mail
      

  8.   

    窗体设成bsnone,然后拖一个panel作为标题栏,用SpeedButton作为最大化,最小化等按钮,其他自己看着办吧
    拖动
    procedure TMyMessage.MouseMoveForm(Sender: TObject;Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
    const SC_DRAGMOVE:Longint=$F012;  //试着改变这个值看看,有其他效果
    begin
    ReleaseCapture;
    SendMessage(Handle,WM_SYSCOMMAND,SC_DRAGMOVE,0);
    end;
      

  9.   

    为什么不用第三方VCL?www.51delphi.net