Вкладка в приложении MFC windows не активна - PullRequest
1 голос
/ 07 апреля 2011

У меня странная проблема с приложением MFC для windows в системе с двумя мониторами.Допустим, у меня есть монитор A и монитор B. Если панель инструментов моего окна (меню «Пуск» и т. Д.) Находится на мониторе A, а A - это также мой основной монитор.Мое приложение работает нормально.Однако, если A имеет панель инструментов, а B является основным монитором.Когда я перемещаю свое приложение в окно A, вкладка становится недоступной для щелчка, пока работают другие элементы управления (кнопки ..).Я понятия не имею, что происходит.Любые предложения приветствуются ..

1 Ответ

1 голос
/ 12 апреля 2011

Наконец-то я разобрался в проблеме. Чтобы получить индекс вкладки, используйте последнюю позицию сообщения, чтобы получить точку щелчка, и используйте HitTest, чтобы выяснить, какая вкладка нажата. В системе с несколькими мониторами мы не должны использовать LOWORD и HIWORD, как описано ниже:

"Внимание! Не используйте макросы LOWORD или HIWORD для извлечения координат x и y позиции курсора, поскольку эти макросы возвращают неверные результаты в системах с несколькими мониторами. Системы с несколькими мониторами могут иметь отрицательные значения x и y. координаты, а LOWORD и HIWORD обрабатывают координаты как беззнаковые величины. "

http://msdn.microsoft.com/en-us/library/ms644938(v=vs.85).aspx

После того, как я использую GET_X_LPARAM или GET_Y_LPARAM, все работает!

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