Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Низкоуровневое программирование > Win Api
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 08.06.2008, 19:49   #1
DEXXX
Новичок
Джуниор
 
Регистрация: 07.06.2008
Сообщений: 2
По умолчанию Как заставить компонент находящийся в чужом приложении, показывать HINT (подсказку)???

Здравствуйте....
Как заставить компонент находящийся в чужом приложении, показывать HINT (подсказку)??? т.е. другими словами мне необходимо получить доступ к свойству ShowHint компонента в чужом приложении.... зная его HWND.
Свойство HINT определено 100%, просто при определены режимах подсказки не отображаются....
Весь инет изрыл.... ничего ....
Плз если можно пример....

P.S. Времени нет... поэтому не ругайте сильно .... просто помогите ...
DEXXX вне форума Ответить с цитированием
Старый 08.06.2008, 20:47   #2
vvviperrr
Тупой студент
Форумчанин
 
Аватар для vvviperrr
 
Регистрация: 12.05.2007
Сообщений: 614
По умолчанию

ну попробуй послать твоему окну с подсказкой сообщение WM_NCHITTEST.
но тебе посылать его надо именно окну, на котором висит хинт! например, если хинт на кнопке тулбара, то тебе надо найти хендл этой кнопки и слать ему. а то чую щас будешь слать главному окну...
vvviperrr вне форума Ответить с цитированием
Старый 09.06.2008, 15:55   #3
DEXXX
Новичок
Джуниор
 
Регистрация: 07.06.2008
Сообщений: 2
По умолчанию

Пробую вот так... что то не получается...

Код:
procedure TForm1.Timer1Timer(Sender: TObject);
var
 s: string;
 h: HWND;

begin
 h := WindowFromPoint(Mouse.CursorPos);

 SetLength(s, SendMessage(h, WM_GETTEXTLENGTH, 0, 0)+1);
 SendMessage(h, WM_GETTEXT, length(s), Integer(PChar(s)));
 SetLength(s, lStrLen(PChar(s)));
 Label1.Caption := s;

SendMessage(h,wm_NCHitTest,0,0);
end;
Может быть лучше использовать SetWindowLong только вот как пробовал не получается....

Последний раз редактировалось DEXXX; 09.06.2008 в 20:01.
DEXXX вне форума Ответить с цитированием
Старый 09.06.2008, 22:15   #4
vvviperrr
Тупой студент
Форумчанин
 
Аватар для vvviperrr
 
Регистрация: 12.05.2007
Сообщений: 614
По умолчанию

неа, таким методом ты не получишь доступ к кнопкам тулбара, где тебе и надо вызвать хинт. копай в эту сторону, я пока не могу проверить
vvviperrr вне форума Ответить с цитированием
Старый 09.06.2008, 22:23   #5
B_N
Новичок
Джуниор
 
Регистрация: 18.01.2008
Сообщений: 1,720
По умолчанию

1. Вместе с WM_NCHITTEST нужно передавать координаты в LPARAM
2. Почему именно тулбар? У кнопок тулбара нет хэндлов, они на нём нарисованы, конструктивно это одно окно.
3. Не нужно отправлять сообщения в другие процессы через SendMessage. Для этого есть SendMessageTimeout или PostMessage.
B_N вне форума Ответить с цитированием
Старый 16.02.2009, 11:59   #6
kiloz
Пользователь
 
Регистрация: 07.01.2009
Сообщений: 42
Вопрос

А как тогда обработать событие появления Hint-а?
Ждать прихода сообщения WM_NCHITTEST?
kiloz вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как заставить компонент TTrackBar обрабатывать события мыши? Никки Общие вопросы Delphi 5 29.08.2008 14:17
Как сделать подсказку? (Hint) Aboltus Общие вопросы Delphi 2 29.07.2008 21:30
Активировать всплывающую подсказку Илюха Общие вопросы Delphi 6 13.12.2007 16:35
Показывать-не показывать скрытые файлы и папки... Романнн Свободное общение 5 07.11.2007 13:16