Тема: Hint WinApi
Показать сообщение отдельно
  #2  
Старый 16.08.2015, 16:49
Аватар для NumLock
NumLock NumLock вне форума
Let Me Show You
 
Регистрация: 30.04.2010
Адрес: Северодвинск
Сообщения: 5,426
Версия Delphi: 7, XE5
Репутация: 59586
По умолчанию

rect не нужен с TTF_IDISHWND

Код:
unit Unit1;

interface

uses
  CommCtrl,
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls;

type
  TForm1 = class(TForm)
    procedure FormCreate(Sender: TObject);
    procedure FormResize(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
    hToolTip: THandle;
    hStatic: THandle;
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.FormCreate(Sender: TObject);
var
  t: TToolInfo;
begin
  hToolTip:=CreateWindowEx(WS_EX_TOPMOST, TOOLTIPS_CLASS, nil, WS_POPUP or TTS_ALWAYSTIP, 0, 0, 0, 0, Handle, 0, HInstance, nil);
  hStatic:=CreateWindow('STATIC', 'CreateWindow', WS_CHILD or WS_VISIBLE or SS_NOTIFY, ClientWidth-100, ClientHeight-25, 100, 25, Handle, 0, HInstance, nil);
  ZeroMemory(@t, SizeOf(TToolInfo));
  t.cbSize:=SizeOf(TToolInfo);
  t.uFlags:=TTF_IDISHWND or TTF_SUBCLASS;
  t.uId:=hStatic;
  t.lpszText:='CreateWindow';
  SendMessage(hToolTip, TTM_ADDTOOL, 0, LPARAM(@t));
end;

procedure TForm1.FormResize(Sender: TObject);
begin
  SetWindowPos(hStatic, 0, ClientWidth-100, ClientHeight-25, 0, 0, SWP_NOSIZE or SWP_NOZORDER);
end;

end.

100% работает.
__________________
Пишу программы за еду.
__________________