Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2002.10.10;
Скачать: CL | DM;

Вниз

Tooltip window   Найти похожие ветки 

 
Jazzy$ ©   (2002-08-23 20:01) [0]

Может кто знает, как добавить изображение (иконку, битмэп) в tooltop window?


 
Dm9   (2002-08-25 04:11) [1]

ToolTop - это заголовок окна? Если да, то нашёл пример добавления в заголовок кнопки. Нужна просто картинка - не обрабатывай нажатие мыши.

unit Unit1;
interface
uses
Windows, Buttons, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs;

type
TForm1 = class(TForm)
procedure FormResize(Sender: TObject);
private
CaptionBtn : TRect;
procedure DrawCaptButton;
procedure WMNCPaint(var Msg : TWMNCPaint); message WM_NCPaint;
procedure WMNCActivate(var Msg : TWMNCActivate); message WM_NCACTIVATE;
procedure WMSetText(var Msg : TWMSetText); message WM_SETTEXT;
procedure WMNCHitTest(var Msg : TWMNCHitTest); message WM_NCHITTEST;
procedure WMNCLButtonDown(var Msg : TWMNCLButtonDown); message WM_NCLBUTTONDOWN;
public
{ Public declarations }
end;

var
Form1: TForm1;

implementation
const
htCaptionBtn = htSizeLast + 1;
{$R *.DFM}

procedure TForm1.DrawCaptButton;
var
xFrame, yFrame, xSize, ySize : Integer;
R : TRect;
begin
//Dimensions of Sizeable Frame
xFrame := GetSystemMetrics(SM_CXFRAME);
yFrame := GetSystemMetrics(SM_CYFRAME);

//Dimensions of Caption Buttons
xSize := GetSystemMetrics(SM_CXSIZE);
ySize := GetSystemMetrics(SM_CYSIZE);

//Define the placement of the new caption button
CaptionBtn := Bounds(Width - xFrame - 4*xSize + 2,
yFrame + 2, xSize - 2, ySize - 4);

//Get the handle to canvas using Form"s device context
Canvas.Handle := GetWindowDC(Self.Handle);

Canvas.Font.Name := "Symbol";
Canvas.Font.Color := clBlue;
Canvas.Font.Style := [fsBold];
Canvas.Pen.Color := clYellow;
Canvas.Brush.Color := clBtnFace;

try
DrawButtonFace(Canvas, CaptionBtn, 1, bsAutoDetect, False, False, False);
//Define a smaller drawing rectangle within the button
R := Bounds(Width - xFrame - 4 * xSize + 2,
yFrame + 3, xSize - 6, ySize - 7);
with CaptionBtn do
Canvas.TextRect(R, R.Left + 2, R.Top - 1, "W");
finally
ReleaseDC(Self.Handle, Canvas.Handle);
Canvas.Handle := 0;
end;
end;

procedure TForm1.WMNCPaint(var Msg : TWMNCPaint);
begin
inherited;
DrawCaptButton;
end;

procedure TForm1.WMNCActivate(var Msg : TWMNCActivate);
begin
inherited;
DrawCaptButton;
end;

procedure TForm1.WMSetText(var Msg : TWMSetText);
begin
inherited;
DrawCaptButton;
end;

procedure TForm1.WMNCHitTest(var Msg : TWMNCHitTest);
begin
inherited;
with Msg do
if PtInRect(CaptionBtn, Point(XPos - Left, YPos - Top)) then
Result := htCaptionBtn;
end;

procedure TForm1.WMNCLButtonDown(var Msg : TWMNCLButtonDown);
begin
inherited;
if (Msg.HitTest = htCaptionBtn) then
ShowMessage("You hit the button on the caption bar");
end;

procedure TForm1.FormResize(Sender: TObject);
begin
//Force a redraw of caption bar if form is resized
Perform(WM_NCACTIVATE, Word(Active), 0);
end;

end.


 
Gandalf   (2002-08-25 10:36) [2]

Я думаю это была опечатка - не Tooltop, а Tooltip. Это такие подсказачки типа Hint.


 
Jazzy$ ©   (2002-08-25 14:36) [3]

Да точно, опечатка. Читать как tooltip - подсказка.


 
Gandalf   (2002-08-25 16:15) [4]

Насколько я знаю самый простой способ добавить рисунок - нарисовать его. Т.е. ловишь NM_CUSTOMDRAW - и в бой.



Страницы: 1 вся ветка

Текущий архив: 2002.10.10;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.023 c
7-32052
melifaro
2002-07-30 22:25
2002.10.10
Shell=Explorer


1-31809
Starkom
2002-10-02 11:26
2002.10.10
помогите разобраться с глюком.


1-31838
AlexJ
2002-09-28 01:47
2002.10.10
сортировка в StringGridе


1-31802
Tundra
2002-10-02 09:21
2002.10.10
Как узнать какие DLL и какие функции юзает приложение.


1-31888
AFrolov
2002-09-27 18:18
2002.10.10
Сортировки по нескольким полям в RXDbGRid