Состояние указателя мыши в приложениях Windows не меняется до тех пор, пока мышь не начнет двигаться - PullRequest
1 голос
/ 01 июля 2010

Кто-нибудь заметил, что в приложениях Windows указатель мыши не меняется с «Песочных часов» на обычный, пока вы не переместите мышь?

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

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

Ответы [ 2 ]

2 голосов
/ 02 июля 2010

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

Еще одна вещь, о которой следует знать, это то, что второй процесс устанавливает песочные часы первого - странная вещь. Песочные часы должны происходить только из-за действий пользователя. Когда песочные часы включены, обычно единственное действие, которое должно быть доступно пользователю, это «Отмена [какая бы операция не держала песочные часы вверх]».

1 голос
/ 01 июля 2010

Можно ли это решить? Позвоните ShowCursor(FALSE), прежде чем позвонить SetCursor(), а затем ShowCursor(TRUE). Должен делать работу.

...