Win32 C ++ 14/17 - постоянный закрашенный курсор в приложении Windows 10 1809 GUI - PullRequest
0 голосов
/ 01 марта 2019

Привет всем и спасибо за ваше время и помощь.Я исследую сценарий использования, в котором я хочу навсегда нарисовать курсор на GUI-приложении, используя win32 c ++ 14/17 в Windows 10 1809. Это создаст несколько «курсоров», но на самом деле только один системный курсор получит ввод, в то время какдругие - просто значки, которые остаются нарисованными в последней позиции курсора в окне клиента приложения с графическим интерфейсом.Это различие невероятно важно.Я знаю, что в настоящее время невозможно настроить несколько активных курсоров в одном сеансе Windows.Здесь я просто пытаюсь отобразить несколько нарисованных курсоров, несмотря на то, что одновременно активен только один.Если у вас есть какие-либо рекомендации или советы, я буду очень признателен.:-) Заранее спасибо!

РЕДАКТИРОВАТЬ: После путаницы всплыл вопрос, я решил уточнить мой вариант использования.

Мой текущий вариант использования - это создание киоска, включающего два дисплея, которые, кажется, соединяются с полностью изолированным компьютером для пользователя, несмотря на то, что работают на одном и том же оборудовании.Для этого я создал окно только для сообщений, которое обрабатывает входную маршрутизацию для каждого дисплея через PostMessage (...).Каждый дисплей, в свою очередь, имеет свой собственный цикл сообщений, который обрабатывает перенаправленный ввод.В этом случае я отслеживаю координаты и все работает.Но когда я использую данный вход на одном дисплее и использую второе устройство ввода, сопоставленное со вторым дисплеем, я вижу, что курсор исчезает на первом дисплее и переходит на второй дисплей.Цель здесь состоит в том, чтобы предоставить пользователю визуальную обратную связь (то есть курсор), несмотря на переход на второй дисплей, чтобы пользователь воспринимал каждый монитор как подключенный к независимому «компьютеру».Вот почему я хочу, чтобы курсор оставался закрашенным в предыдущей известной позиции.Любая помощь и вклад приветствуется!

1 Ответ

0 голосов
/ 04 марта 2019

Было много хороших идей и ответов на этот вопрос.В итоге я использовал DrawIcon (...), чтобы нарисовать значок прямо на экране.Однако оказывается, что одна из причин, по которой я не наблюдал за нарисованным курсором, заключалась в том, что я воссоздала окно рабочего стола вместо того, чтобы захватывать окно из RECT, возвращаемого EnumDisplayMonitors (...).Итак, я рисовал против неправильного объекта окна.Таким образом, проблема была решена с помощью ...

  • Гарантируя, что я получаю правильный объект окна, связанный с рабочим столом.
  • Скрытие системного курсора и рисование моего имитируемого курсора с помощью DrawIcon (...)

Спасибо за все ответы.Я надеюсь, что это может помочь кому-то другому решить ту же проблему.: -)

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