一. 标题栏字体的改变。
1.定义方法 procedure WMNCPAint(var Mes : TWMNCPaint); message WM_NCPAINT;
2. 增加如下方法:
procedure TMainFrm.WMNCPAint(var Mes : TWMNCPaint);
var
ACanvas : TCanvas;
begin
ACanvas := TCanvas.Create;
try
ACanvas.Handle := GetWindowDC(MainFrm.Handle);
with ACanvas do begin
Brush.Color := $00F27721;
Brush.Style := bsClear;
Font.Name := '黑体';
Font.Size := 18;
Font.Color := clCaptionText;
Font.Style := [fsBold];
TextOut(GetSystemMetrics(SM_CYMENU) + GetSystemMetrics(SM_CXBORDER),
Round((GetSystemMetrics(SM_CYCAPTION) - Abs(Font.Height))/2) +1,
'人员管理系统');
end;
finally
ReleaseDC(MainFrm.Handle, ACanvas.Handle);
ACanvas.Free;
end;
end;
二. 当讲Form的BorderStyle设置为BsNone时,运行时窗体自带的标题栏不显示,你可以用Panel 控件自己做一个。在自己制作的标题栏的OnMouseMove 事件里面添加如下代码:
if (ssleft in Shift) then
begin
ReleaseCapture;
Perform(WM_syscommand, $F012, 0);
end;
这样 就可以随意拖动窗口了。