Подклассы Flash OCX для изменения курсора мыши - PullRequest
0 голосов
/ 05 августа 2009

Я пытаюсь сделать это безуспешно.

Я слушаю сообщения WM_SETCURSOR и устанавливаю курсор там, это работает чаще всего, но не всегда. Я видел два других случая, которые мне нужно поймать:

  • WM_PAINT: по крайней мере после WM_LBUTTONDOWN курсор каким-то образом раскрашивается без вызова WM_SETCURSOR ...
  • WM_CAPTURECHANGED: иногда происходит, когда мышь нажимает и перемещает ее.

Даже при всем этом курсор иногда мерцает, а в некоторых случаях можно увидеть исходный (например, момент, когда вы переворачиваете какой-либо объект, который устанавливает курсор на что-то другое). Я пытался найти некоторые другие шаблоны или сообщения, но не видел ничего, что решило бы эту проблему. Кому-нибудь удалось это сделать?

1 Ответ

0 голосов
/ 06 августа 2009

Я решил проверить еще несколько сообщений и изменить курсор до и после его возвращения ...

Я пошел с этим методом в следующих сообщениях:

  • WM_PAINT (только после возврата и если курсор мыши находится над окном вспышки)
  • WM_NCHITTEST (только после возврата и если мышь находится над окном)
  • WM_CAPTURECHANGED
  • WM_MOUSEACTIVATE
  • WM_LBUTTONDOWN (только после возврата)
  • WM_LBUTTONDBLCLICK (только после возврата)
  • WM_LBUTTONUP (только после возврата)
  • WM_MOUSEHOVER
  • WM_MOUSEMOVE

WM_MOUSEMOVE был необходим для того, чтобы, когда я перешагнул некоторую точку доступа, которая вызывает изменение курсора ... и пытался избежать перехвата WM_NCHITTEST ... но это единственное решение, которое я нашел для какого-то крайнего случая в фильме ...

Конечно, я меняю курсор только если он уже не тот, который я хочу.

Я до сих пор редко вижу мерцание, но думаю, что справлюсь. Если кто-то может подтвердить это как правильный ответ или может предоставить лучший ответ, я закончу эту тему. Спасибо.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...