如何改变窗体caption的颜色
解决方案 »
- 请教:delphi中nil、null、UnAssigned区别是什么
- 一个不得不问的问题!
- 关于AnyQ客户端远程登录服务器的问题
- 100分! EhLib控件的问题。 请高手指点。顶者有分。。。。。。。。。。。。。。
- 如何用DELPHI调用HLP格式帮助文件?(急)
- 用了三年delphi搞C/S,现在要逼自已去学C#,ASP.NET,心里感到的是悲衰....
- 在线等待!在Excel中 A1与B2画一个边框线,中间不画线
- delphi在开发网站上有什么好?,我用了一段时间,感觉好痛苦哦,没有李维叔叔在《电子商务篇》的说的好哦
- 从网上下载了一程序,在运行时 提示Counld not find program ,'C:\程序\abc.exe'
- 菜鸟的问题:请问delphi里有没有控件数组?
- TDX开头的控件是什么控件啊?常用吗?哪里有下啊?还有tcooltrayicon呢?
- 仍然是用API操作串口设备的问题,请指教!
如果要修改,那么你就自己处理标题栏的重画咯
或者去掉window的WS_CAPTION风格,自己画一个标题栏
http://www.kan68.com/index3.htm?user=zhttz
begin
if button=mbLeft then
begin
releaseCapture;
perform(wm_syscommand,$F012,0);
end;
end;
把form的sytle设为none,然后放有mousedown的控件就可以了!
只有BorderStyle
设为bsnone后,标题栏是没了,但加了toolbar后,toolbar不会被视为标题栏啊怎么做啊?????
procedure WMNCActivate(var Msg: TWMNCActivate); message WM_NCACTIVATE;
procedure TForm1.WMNCPaint(var Msg: TMessage);
var
dc: HDC;
cr: TRect;
wc: TCanvas;
begin
DefWindowProc(Handle, Msg.Msg, Msg.WParam, Msg.LParam);
dc := GetWindowDC(Handle);
try wc := TCanvas.Create;
wc.Handle := dc;
// 计算标题栏尺寸
cr.Left := GetSystemMetrics(SM_CXFRAME);
cr.Top := GetSystemMetrics(SM_CYFRAME);
cr.Right := Width - 4 * GetSystemMetrics(SM_CXSIZE);
cr.Bottom := cr.Top + GetSystemMetrics(SM_CYCAPTION) - 1;
// 获取标题栏的 Rect 后就可以直接在 wc 画布上画了,直接在标题栏上出效果!
// 绘画代码省略
// ... ...
wc.Brush.Color :=clBlack;
wc.FillRect(cr);
wc.Brush.Style :=bsClear;
wc.Font.Color :=clWhite;
wc.TextOut(0,0,caption);
finally ReleaseDC(Handle, dc); end;
end;procedure TForm1.WMNCActivate(var Msg: TWMNCActivate);
var
pm: TMessage;
begin
Msg.Result := 0;
if Msg.Active then
begin
pm.Msg := Msg.Msg;
pm.WParam := 0;
WMNCPaint(pm);
end
else
begin
DefWindowProc(Handle, Msg.Msg, 1, 0);
end;
end;