关于标题栏控件的开发(200分)

  • 主题发起人 主题发起人 R_Baggio
  • 开始时间 开始时间
R

R_Baggio

Unregistered / Unconfirmed
GUEST, unregistred user!
哪位有标题栏控件开发的经验,能不能告诉我点啊!
我只要写这样一个控件:
标题栏的高度改变、字体改变、按钮改变和加图片!
谢谢!要是有代码最好了!
 
难道从来没有人开发过?
 
抄袭千堆雪的。
unit Unit1;

interface

uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls;

type
TForm1 = class(TForm)
Label1: TLabel;
private
{ Private declarations }
procedure WMNCPAint(var Mes : TWMNCPaint); message WM_NCPAINT;
procedure WMNCACTIVE(var msg: TMessage); message WM_NCACTIVATE;

procedure Paint_Caption;

public
{ Public declarations }
end;

var
Form1: TForm1;

implementation

{$R *.DFM}
var
State:Integer;

procedure TForm1.WMNCPAint(var Mes : TWMNCPaint);
begin
inherited;
Paint_Caption;
end;

procedure TForm1.Paint_Caption;
var
ACanvas : TCanvas;
begin

ACanvas := TCanvas.Create;
try
ACanvas.Handle := GetWindowDC(Form1.Handle);
with ACanvas do begin
if State=1 then
Brush.Color := clActiveCaption
else
Brush.Color := clInactiveCaption;

Font.Name := 'Times New Roman';
Font.Size := 12;
Font.Color := clYellow;
Font.Style := [fsBold];

TextOut(GetSystemMetrics(SM_CYMENU) + GetSystemMetrics(SM_CXBORDER),
Round((GetSystemMetrics(SM_CYCAPTION) - Abs(Font.Height))/2) +1,
'千堆雪最近不常来了');
end;
finally
ReleaseDC(Form1.Handle, ACanvas.Handle);
ACanvas.Free;
end;
end;

procedure TForm1.WMNCACTIVE(var msg: TMessage);
begin
inherited;
State:=msg.WParam;
Paint_Caption;
end;

end.
 
这个我也看到了,
但要是我要把这段东东合在一个控件里该怎么办呢?
这个控件该怎么写法?
你可以发到我的信箱里啊:r9_baggio@163.com
 
标题栏的高度改变不了吧.要不你把FORM的标题栏隐藏换个你自己的模仿吧.
 
会写控件就容易把该代码合进控件
 
问题我刚刚开始写控件!不太会!谢谢!
 
先学习怎么加入代码
应该写在onpait事件中,
 
我在控件中加入了这些代码,但如何刷新呢?
即如何让我的FORM随我的控件的CATPION的改变而ONPAINT呢?拜托!
 
后退
顶部