Отсутствует WM_LBUTTONDOWN - PullRequest
1 голос
/ 04 ноября 2011

У меня очень странное поведение на экране с немодальным диалогом, и я не могу найти решение.

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

У меня есть проверка, какие сообщения получает представление, и кажется, что оно не получает сообщение WM_LBUTTONDOWN. Но он получает сообщение WM_LBUTTONUP.

Чтобы сделать вещи еще более странными, это происходит в 64-разрядной версии Windows 7 (никто не сообщал об этой проблеме в Windows XP и давно используется) и только на некоторых компьютерах. Но я не могу найти причину и понятия не имею, почему это происходит на этих компьютерах.

У кого-нибудь есть подсказка? С чего бы начать смотреть?

Спасибо.

Хавьер

Ответы [ 2 ]

1 голос
/ 22 февраля 2012

вы должны иметь дело с WM_NCACTIVATE неправильно.убедитесь, что процедура родительского окна возвращает TRUE, когда она получает WM_NCACTIVATE с wparam FALSE.

1 голос
/ 08 ноября 2011

это был сложный вопрос. Проблема оказалась в пользовательской реализации диалогов. Они рисуют его не клиентскую область с визуальными стилями MFC2008, и при вызове OnNcActivate для визуального менеджера он возвращает FALSE, когда Aero и Desktop Window Manager активны. Таким образом, диалоговое окно не передавало элемент управления его дочерним элементам управления.

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

Спасибо.

Javier

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