Скрыть курсор WinForms «постоянно»? - PullRequest
0 голосов
/ 07 августа 2009

Я занимаюсь разработкой полноэкранного приложения, которое содержит несколько анимированных элементов управления форм (в основном, метки, которые перемещаются).

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

Хотя в некотором смысле это работает, таймер форм даже не начинает считать, пока в форме больше нет обновлений (бесполезно для моих нужд). Кроме того, когда курсор скрыт, он снова отображается при перемещении элемента управления (т. Е. Анимируется одна из меток).

Мне нужно, чтобы Windows игнорировала все, что происходит с самим дисплеем, и просто подчинялась моим вызовам Cursor.Hide () и Cursor.Show (). Я попытался использовать обычный таймер потоков, но это не сработало вообще - курсор даже не скрылся.

Так что я предполагаю, что то, что я прошу, это способ скрыть курсор, позволяя анимации происходить без повторного показа курсора.

Любая помощь очень ценится. Том

Ответы [ 3 ]

2 голосов
/ 07 августа 2009

Пожалуй, почему бы не включить переключатель, который будет просто обрабатывать все сообщения WM_, которые связаны с мышью в wndproc, и просто ничего не делает. При выключении разрешить нормальную обработку сообщений мыши WM_.

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

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

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

Кажется, есть ошибка http://social.msdn.microsoft.com/Forums/en-US/smallbasic/thread/2b963082-c5a7-469c-ba35-02b4a546f913/

То, что вы могли бы попытаться, это назначить свой собственный курсор со 100% прозрачным растровым изображением - похоже, что курсора нет.

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