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

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

WM_NCLBUTTONUP [D6, WinXP]


IllusoryOrion ©   (2005-01-17 13:38:00) 

Добрый день!
Столкнулся с такой проблемой:
Ставлю глобальный хук WH_GETMESSAGE и хочу отлавливать сообщения WM_NCLBUTTONUP, WM_NCLBUTTONDOWN. Но получается отлавливать только WM_NCLBUTTONDOWN, создается такое впечетление, что WM_NCLBUTTONUP окнам вообще не приходят! В МСДН написано, что если окно захватывает capture, то сообщение не отправляется, НО если поставить обработчик на это сообщение в СВОЕЙ форме:
procedure WMNCLButtonUp(var Msg: TMessage); message WM_NCLBUTTONUP; то все замечательно работает!

Так вот, подскажите как хуком отлавливать єто сообщение, или хотя бі обїясните почему своему окну єто сообщение отправляется, а ждугим окнам НЕ СВОЕГО приложения - нет?


IllusoryOrion   (2005-01-19 16:22:00) [1]

Ну так что, мастера? Нет не каких идей почему такое происходит и как это побороть?


IllusoryOrion   (2005-01-17 14:49:00) [2]

мда :) ну и еще конечно же при SendMessage lParam - 0 и

"Так вот при при button все ок, buttonup - не обрабатывется" должно быть

"Так вот при при button downвсе ок, buttonup - не обрабатывется"


IllusoryOrion   (2005-01-17 14:47:00) [3]

извиняюсь - окно с заголовком 'Test'


IllusoryOrion   (2005-01-17 14:46:00) [4]


> VMcL ©   (17.01.05 14:35) [4]


:) Нет конечно. Просто сейчас я не дома и исходников с собой нет. Но у меня что-то типа этого:

const
WM_NC_UP = WM_USER + $100;
WM_NC_DOWN = WM_USER +$200;

function GetWndProc(nCode, wParam, lParam: integer): integer; stdcall;
var
Msg: PMsg;
begin
if nCode>=0 then
begin
 Msg:=PMsg(wParam);
 //еще проверки на хиттест, на то имеет ли окно caption, но это не важно
 case Msg.message of
  WM_NCLBUTTONUP: SendMessage(FindWindow(nil, 'Test'), WM_NC_UP, Msg.hwnd);
  WM_NCLBUTTONDOWN: SendMessage(FindWindow(nil, 'Test'), WM_NC_DOWN, Msg.hwnd);
 end;
end;
Result:=CallNextWindowsHook(...);
end;

Окно с заголовком 'Testing' мое приложение, при приеме сообщения WM_NC_UP,DOWN - добавляет в мемо заголовок окна и его хендл.

Так вот при при button все ок, buttonup - не обрабатывется


VMcL   (2005-01-17 14:35:00) [5]

>> IllusoryOrion ©  (17.01.05 13:38)

Код засекречен?


IllusoryOrion   (2005-01-17 14:27:00) [6]


> Colonel   (17.01.05 14:23) [2]


:) да причем здесь хуки? хук нормально работает, я же говорю WM_NCLBUTTONDOWN отлавливается, а UP - нет.


Colonel   (2005-01-17 14:23:00) [7]

Почитай здесь на сайте статью по хукам. Может и найдешь ответ. Я нашел ответы.


IllusoryOrion   (2005-01-17 14:01:00) [8]

помогите


Наверх

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