Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Как послать сообщение элементу, будто над ним находится мышь?


mmms ©   (2006-06-07 16:19:00) 

Хотелось бы показать хинт(Balloon), но не помещая мышь над сам элемент. Пытался SendMessage(CheckBox1.Handle, WM_MOUSELEAVE, ???, 0);но плохо нужные сообщения представляю :(


StriderMan   (2006-06-07 17:23:00) [1]

Попробуй WM_MOUSEMOVE, WM_MOUSEHOVER

а еще можно напрямую вызвать


evvcom   (2006-06-07 17:11:00) [2]

Попробуй, может устроит?
// Почему-то некоторые контролы, например, PageControl, генерят дополнительные
// OnMouseMove (с теми же координатами), когда перемещения собственно и не было.
// Поэтому запоминаем старые координаты и анализируем.
var
 PrevHintControl: TControl;
 PrevCursorPos: TPoint;

procedure DoShowHint(Control: TControl);
var
 l_P: TPoint;
 l_Message: TWMMouse;
begin
 if Control.Hint = '' then
   Application.CancelHint
 else begin
   GetCursorPos(l_P);
   if (Control = PrevHintControl) and (CompareValue(Int64(l_P), Int64(PrevCursorPos)) = 0) then Exit;
   l_Message.Pos := PointToSmallPoint(Control.ScreenToClient(l_P));
   Application.CancelHint;
   Application.HintMouseMessage(Control, TMessage(l_Message));
   PrevHintControl := Control;
   PrevCursorPos   := l_P;
 end;
end;


Наверх

Титульная страница Поиск, карта сайта Написать письмо