建立自己的Hint窗口
当鼠标停留在某个控件上时,如果该控件的ShowHint特性为真则会显示出一个黄色的小窗口,这就是Hint窗口。如果从THintWindow派生一个类,并且将新类型赋值给全局变量HintWindowClass,则Delphi的Hint窗口将使用你所建立的新风格。
新类可以重载THintWindow的Paint方法来自己绘制Hint信息,例如下面这段代码将用红色填充整个Hint窗口,然后以黄色来显示Hint信息:
procedure TNewHintWindow.Paint;
var
R: TRect;
begin
with Canvas do
begin
Brush.Color := clRed;
Brush.Style := csClear;
Rectangle(0, 0, Width, Height);
end;
R := ClentRect;
Inc(R.Top, 3);
Inc(R.Left, 2);
SetBKMode(Canvas.Handle, TRANSPARENT);
Canvas.Font.Color := clYellow;
DrawText(Canvas.Handle, PChar(Caption), -1, R, DT_LEFT);
end;
type
TNewHintWindow = class(THintWindow)
private
procedure WMEraseBKGND(var Message: TMessage); message WM_ERASEBKGND;
end;
procedure TNewHintWindow.WMEraseBKGND(var Message: TMessage);
begin
Message.Result := 0;
end;