Модераторы: Snowy, bartram, MetalFan, bems, Poseidon, Riply
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Как узнать, что под курсором заголовок формы 
:(
    Опции темы
sanek198
Дата 26.9.2007, 11:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 27
Регистрация: 28.7.2007

Репутация: нет
Всего: нет



Здравствуйте!
Подскажите пожалуйста, как узнать что под курсором мыши находится заголовок формы (неважно чужой или моей). Пробовал с помощью GetWindowText (если возвращается не нуль, то под курсором заголовок), но не всегда срабатывает, иногда возвращается текст кнопок и т.д. Что делать?
Заранее спасибо!
PM MAIL   Вверх
Rouse_
Дата 26.9.2007, 13:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 469
Регистрация: 23.4.2005

Репутация: 18
Всего: 29



Код

procedure TForm1.Timer1Timer(Sender: TObject);
var
  P: TPoint;
begin
  GetCursorPos(P);
  if SendMessage(WindowFromPoint(P), WM_NCHITTEST, 0,
    MakeLong(P.X, P.Y)) = HTCAPTION then ShowMessage('Заголовок');
end;



--------------------
 Vae Victis
(Горе побежденным (лат.))
Демо с открытым кодом: http://rouse.drkb.ru 
PM MAIL WWW ICQ   Вверх
sanek198
Дата 26.9.2007, 18:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 27
Регистрация: 28.7.2007

Репутация: нет
Всего: нет



Огромное спасибо, пример работает, правда только с обычными заголовками, а вот как быть к примеру с нестандартными (Windows MediaPlayer, WInAmp и т.д.)? То есть как узнать, что под курсором область, за которую окно можно перетаскивать?
PM MAIL   Вверх
BaD_SeCt0R
Дата 26.9.2007, 19:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Lazy Coder
**


Профиль
Группа: Участник
Сообщений: 432
Регистрация: 9.10.2006
Где: Анапа

Репутация: 3
Всего: 18



Цитата(sanek198 @  26.9.2007,  18:31 Найти цитируемый пост)
а вот как быть к примеру с нестандартными (Windows MediaPlayer, WInAmp и т.д.)? То есть как узнать, что под курсором область, за которую окно можно перетаскивать? 

Это уж тебе придется вручную делать. Для каждого окна. Т.к. при наведении на ту "область перетаскивания", никакого особого события, говорящего, что это заголовок, не возникает.


--------------------
Кто владеет информацией - владеет миром. (С) Френсис Бэкон.
PM MAIL ICQ   Вверх
Rouse_
Дата 27.9.2007, 08:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 469
Регистрация: 23.4.2005

Репутация: 18
Всего: 29



Цитата(sanek198 @  26.9.2007,  19:31 Найти цитируемый пост)
а вот как быть к примеру с нестандартными

А это не заголовок в общем понимании. Так что тут ничего не делать smile


--------------------
 Vae Victis
(Горе побежденным (лат.))
Демо с открытым кодом: http://rouse.drkb.ru 
PM MAIL WWW ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: WinAPI и системное программирование"
Snowybartram
MetalFanbems
PoseidonRrader
Riply

Запрещено:

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по Delphi обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи
  • 99% ответов по WinAPI можно найти в MSDN Library, оставшиеся 1% здесь

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, bartram, MetalFan, bems, Poseidon, Rrader, Riply.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: WinAPI и системное программирование | Следующая тема »


 




[ Время генерации скрипта: 0.0878 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.