Полоса прокрутки XP становится бесполезной в Windows7 / Vista - PullRequest
1 голос
/ 31 декабря 2011

У меня есть это приложение XP (win32 C ++), которое я сейчас тестирую под Windows7 (на самом деле, но в Windows 7 оно делает то же самое).

Я удивлен, что практически единственная проблемаЯ сталкиваюсь со следующим:

Ни одна из полос прокрутки в сложном немодельном диалоге не работает правильно.Основная проблема заключается в том, что большой палец прокрутки не отвечает - просто остается заблокированным в положении, если вы попытаетесь переместить его.У меня не было проблем с возвратом к win98, win2000 и winxp.Только в Windows 7 / Vista, только сейчас

Но в этом диалоговом окне нет общего для полос прокрутки, объясняющих это: один из них - простой элемент управления richtext, созданный с помощью файла ресурсов.Другой в расширенном тексте, созданном с помощью CreateWindow.И все же третья полоса прокрутки находится в пользовательском классе окна.Ни один из них не работает правильно (хотя вы можете заставить их прокручиваться, щелкнув правой кнопкой мыши и выбрав «Прокрутить здесь».)

Так что я предполагаю, что, возможно, большинство сталкивалось с этим несколько лет назад при портировании на Window7 / Vista дляв первый раз, но я ничего не нашел в Google сейчас.

1 Ответ

1 голос
/ 01 января 2012

Для немодальных диалогов необходимо запустить IsDialogMessage в главном приложении GetMessage Loop, поэтому сообщения для немодальных диалогов не подлежат TranslateMessage и DispatchMessage.Так что я делал это раньше.Однако Vista / Win7 не любит WM_MOUSEMOVE, а WM_LBUTTONDOWN и WM_LBUTTONUP обходятся таким же образом для диалога (то есть они должны оставаться в главном цикле сообщений приложения).По крайней мере, это была проблема в моем случае.Сейчас я проверяю эти типы сообщений в основном цикле сообщений, и это решило мою проблему.Не могу объяснить это обязательно.Также не могу объяснить, почему никто не сталкивался с этим ранее (возможно, это была какая-то особенность моей системы).СПАСИБО за тех кто заглянул в это.

...