WWW.ИСХОДНИКИ.РУ cpp.sources.ru
java.sources.ru web.sources.ru soft.sources.ru
jdbc.sources.ru asp.sources.ru api.sources.ru

  Форум на исходниках
  C / C++ / Visual C++
  Курсор

СПРОСИТЬ  ОТВЕТИТЬ
профайл | регистрация | faq

Автор Тема:   Курсор
SUnteXx опубликован 10-02-2002 02:08 MSK   Click Here to See the Profile for SUnteXx   Click Here to Email SUnteXx  
Доброго времени суток!

У меня трабла! Я хочу сделать так, что курсор, находясь в любом окне (в едите, в простом окне, в любой проге) был один и тот же!

Я делаю "SetSystemCursor(LoadCursor(hInst,MAKEINTRESOURCE(IDC_CURSOR)),OCR_NORMAL);", но когда навожу на едит или другое окно, где используется не "стрелка", то курсор меняется:( Как мне быть? Может кто сталкивался с этим и знает как быть? Хелп, очень надо!

Заранее благодарен,
SUnteXx

Muran опубликован 10-02-2002 14:43 MSK     Click Here to See the Profile for Muran  Click Here to Email Muran     
Вообщето это сложная задача т.к.
Все проги ставят свои курсоры.
Можно посадить на таймер изменение курсора на твой, но тогда будет жрать много процессорного времени.
SUnteXx опубликован 11-02-2002 12:47 MSK     Click Here to See the Profile for SUnteXx  Click Here to Email SUnteXx     
2Muran:
Это не есть выход! Это уже как-то по ламерски:( Может есть еще предложения? Может как-то можно сделать так, чтобы моему окну посылалось сообщение WM_SETCURSOR, когда курсор меняется в любой другой проге?
Muran опубликован 11-02-2002 01:07 MSK     Click Here to See the Profile for Muran  Click Here to Email Muran     
Да, я согласен, это по ламерски, но иногда работает.
Но вроде винда тебе просто так не даст получить это сообщение.
Тут надо обращатся к хакерам.
Они это знают, собаки. Мать их.Понаделали вирусов а нам тут расхлебывать!!
dvorobjov опубликован 11-02-2002 09:41 MSK     Click Here to See the Profile for dvorobjov  Click Here to Email dvorobjov     
Если перехватить API вызовы CreateWindow, CreateWindowEx, SetWindowLong, SetClassLong, RegisterClass, RegisterClassEx, то для всех окон в системе можно любой курсор устанавливать.
Ну а перехват API - ето уж совсем другой топик
migel опубликован 11-02-2002 10:42 MSK     Click Here to See the Profile for migel  Click Here to Email migel     
Можно попробывать SetClassLong(hwnd, CGL_HCURSOR) для всех окошек...
ADK опубликован 11-02-2002 12:51 MSK     Click Here to See the Profile for ADK  Click Here to Email ADK     
2SuntexX: я понял, зачем :-))
2All: правда, как. Почти все грабилки экрана при выборе области ставят свой курсор, и он не меняется!!
SUnteXx опубликован 12-02-2002 01:25 MSK     Click Here to See the Profile for SUnteXx  Click Here to Email SUnteXx     
Все спасибо! Сделал:) В любом окне:) ГЫ! Кому интересно - пишите на SUnteXx@pisem.net. Не жалко:) ВСЕ ПРОСТО:)
ValeRRR опубликован 12-02-2002 11:45 MSK     Click Here to See the Profile for ValeRRR  Click Here to Email ValeRRR     
Давай пиши в эху. Я думаю что интересно будет всем взглянуть на эту простоту
SUnteXx опубликован 12-02-2002 15:31 MSK     Click Here to See the Profile for SUnteXx  Click Here to Email SUnteXx     
ОК, правда способ для извращенцев, но работает!

Я заметил, что при нажатой кнопке мыши, в каком бы ты не был окне (почти на всех окнах) курсор не меняется! Так что мешает нажать батон самому?

Делается это так:

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 или что-нить вроде того, а то слежение за мышой изменится, т.е. прога уже не правильно будет пахать на клик!

Примера пока не сделал, но тут ничего сложного нету! Что не понятно, мыльте вопрос мне на мыло! Я думаю, вы его уже выучили:), просто почти в каждой мессаге пишу, что пишите мне!))

СПРОСИТЬ  ОТВЕТИТЬ
Перейти:


E-mail | WWW.ИСХОДНИКИ.RU

Powered by: Ultimate Bulletin Board, Freeware Version 5.10a
Purchase our Licensed Version- which adds many more features!
© Infopop Corporation (formerly Madrona Park, Inc.), 1998 - 2000.