Jika Anda ingin tampilan beda dan menambahkan beberapa teks custom pada caption bar dari bentuk, tanpa mengubah properti Caption dari bentuk yang Anda butuhkan untuk menangani satu pesan khusus Windows: WM_NCPAINT.
Pesan WM_NCPAINT dikirim ke jendela saat dibutuhkan untuk memberi warna pada bingkainya. Sebuah aplikasi bisa menghentikan pesan ini dan warna bingkai jendela custom nya.
Catatan bahwa Anda juga perlu menangani pesan WM_NCACTIVATE yang dikirim ke jendela ketika akan diaktifkan atau dinonaktifkan. Tanpa penanganan WM_NCACTIVATE teks judul kustom akan hilang ketika bentuk kita kehilangan fokus.Sedikit penjelasan diharapkan anda paham dengan artikel ini,langsung saja ke contoh script-nya :
Selamat mencoba...
Pesan WM_NCPAINT dikirim ke jendela saat dibutuhkan untuk memberi warna pada bingkainya. Sebuah aplikasi bisa menghentikan pesan ini dan warna bingkai jendela custom nya.
Catatan bahwa Anda juga perlu menangani pesan WM_NCACTIVATE yang dikirim ke jendela ketika akan diaktifkan atau dinonaktifkan. Tanpa penanganan WM_NCACTIVATE teks judul kustom akan hilang ketika bentuk kita kehilangan fokus.Sedikit penjelasan diharapkan anda paham dengan artikel ini,langsung saja ke contoh script-nya :
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 = 'Belajar.Delphi.Bersama';
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;
Selamat mencoba...
Tidak ada komentar:
Posting Komentar