опубликован 12-02-2002 15:31 MSK
ОК, правда способ для извращенцев, но работает!Я заметил, что при нажатой кнопке мыши, в каком бы ты не был окне (почти на всех окнах) курсор не меняется! Так что мешает нажать батон самому?
Делается это так:
POINT p;
GetCursorPos(&p); // Получаем координаты курсора
mouse_event(MOUSEEVENTF_LEFTDOWN, p.x, p.y, 0, 0); // Жмякаем левый баттон мыши
SetCapture(hwnd); // Ставим слежение на мышой!
SetCursor(hMyCursor); // hMyCursor - хэндл на курсор!
.
.
.
Жмякнули. Ждем действий!
Может отпустить баттон в любой момент. Делаем это так:
POINT p;
GetCursorPos(&p); // Опять позицию курсора получили
mouse_event(MOUSEEVENTF_LEFTDOWN, p.x, p.y, 0, 0); // Отпустили баттон
ReleaseCapture(hwnd); // Убрали слежения за мышой!
Надо учесть, что если курсор над вашим окном в то время, когда сами нажимаем баттон, то пошлется сообщение WM_LBUTTONDOWN. Это надо не забыть учесть!
Надо не забыть вернуть нормальный курсор!!!
Я обрабатывал сообщения WM_CAPTURECHANGED для того, что вдруг я нажал Alt+Tab или что-нить вроде того, а то слежение за мышой изменится, т.е. прога уже не правильно будет пахать на клик!
Примера пока не сделал, но тут ничего сложного нету! Что не понятно, мыльте вопрос мне на мыло! Я думаю, вы его уже выучили:), просто почти в каждой мессаге пишу, что пишите мне!))