Как вывести текст в заголовке формы
Обратите внимание: Вы также должны обработать сообщение WM_NCACTIVATE, которое посылается окну, когда оно активируется или деактивируется. Без обработки сообщения WM_NCACTIVATE наш текст в заголовке исчез бы, когда наша форма потеряет фокус.
type TCustomCaptionForm = class(TForm) private procedure WMNCPaint(var Msg: TWMNCPaint) ; message WM_NCPAINT; procedure WMNCACTIVATE(var Msg: TWMNCActivate) ; message WM_NCACTIVATE; procedure DrawCaptionText() ; end; { ... } implementation procedure TCustomCaptionForm .DrawCaptionText; const captionText = 'Test Caption'; var canvas: TCanvas; begin canvas := TCanvas.Create; try canvas.Handle := GetWindowDC(Self.Handle) ; with canvas do begin Brush.Style := bsClear; Font.Color := clMaroon; TextOut(Self.Width - 110, 6, captionText) ; end; finally ReleaseDC(Self.Handle, canvas.Handle) ; canvas.Free; end; end; procedure TCustomCaptionForm.WMNCACTIVATE(var Msg: TWMNCActivate) ; begin inherited; DrawCaptionText; end; procedure TCustomCaptionForm.WMNCPaint(var Msg: TWMNCPaint) ; begin inherited; DrawCaptionText; end;
Комментарии