У вас может быть окно, в котором нет заголовка или стандартного заголовка, просто взяв на себя рисование всего окна:
Создайте новое пустое приложение.Используйте этот код для своей формы:
unit ncUnit1;
interface
// XE2 uses clause
uses
Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes,
Vcl.Graphics, Vcl.Controls, Vcl.Forms, Vcl.Dialogs;
// If you're not using XE2 take out the prefixes (WinApi, Vcl, System, etc)
type
TForm1 = class(TForm)
private
{ Private declarations }
public
{ Public declarations }
protected
procedure WMNCPaint(var Message: TWMNCPaint); message WM_NCPAINT;
procedure SolidColorNcPaint(solidColor,frameColor:TColor);
procedure Resizing(State: TWindowState); override;
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
{ TForm1 }
procedure TForm1.WMNCPaint(var Message: TWMNCPaint);
begin
SolidColorNcPaint(clBtnFace,clBtnFace);
end;
procedure TForm1.Resizing(State: TWindowState);
begin
inherited;
PostMessage(Self.Handle,WM_NCPAINT,0,0); {force initial paint}
end;
procedure TForm1.SolidColorNcPaint(solidColor,frameColor:TColor);
var
aBorder:Integer;
ahdc : HDC;
begin
aBorder := GetSystemMetrics(SM_CYSIZEFRAME);
canvas.Lock;
ahdc := GetWindowDC(Handle);
canvas.Handle := ahdc;
ExcludeClipRect(canvas.Handle, aBorder, 0, Width-aBorder, Height - aBorder) ;
Canvas.Brush.Style := bsSolid;
Canvas.Brush.Color := frameColor;
Canvas.Pen.Color := solidColor;
Canvas.Rectangle( 0,0, Width,Height);
ReleaseDC(Self.Handle, ahdc);
canvas.Handle := 0;
canvas.Unlock;
end;
end.
То, что вы видите выше, достаточно только для того, чтобы перерисовать сплошным цветом область, не относящуюся к клиенту, а не удалить ее полностью.В зависимости от стиля пользовательского окна, которое вы хотите, вы должны отобразить все, что вы хотите в форме.Если вам не нужна кнопка «Закрыть», удалите кнопку «Закрыть», а если вам не нужно поведение изменения размера, удалите поведение изменения размера.Если вы установите FormStyle=fsDialog
плюс приведенный выше код, вы получите окно с полной произвольно нарисованной областью заголовка (в которую вы можете поместить все, что захотите).Если вы на самом деле не хотите, чтобы область заголовка вообще существовала, вы можете изменить приведенный выше код, чтобы добиться этого тоже.