Change a form's caption font and alignment (2) (Views: 30)
Problem/Question/Abstract: Does anyone know how to write text with the TEXTOUT command in the title bar of a form in D5? Answer: You have to handle the WM_NCPAINT message. { ... } type TForm1 = class(TForm) private procedure WMNCPaint(var Msg: TWMNCPaint); message WM_NCPAINT; public end; var Form1: TForm1; implementation {$R *.dfm} procedure TForm1.WMNCPaint(var Msg: TWMNCPaint); var ACanvas: TCanvas; begin inherited; ACanvas := TCanvas.Create; try ACanvas.Handle := GetWindowDC(Form1.Handle); with ACanvas do begin Brush.Color := clActiveCaption; Font.Name := 'Tahoma'; Font.Size := 8; Font.Color := clred; Font.Style := [fsItalic, fsBold]; TextOut(GetSystemMetrics(SM_CYMENU) + GetSystemMetrics(SM_CXBORDER), Round((GetSystemMetrics(SM_CYCAPTION) - Abs(Font.Height)) / 2) + 1, ' Some Text'); end; finally ReleaseDC(Form1.Handle, ACanvas.Handle); ACanvas.Free; end; end; |