Поведение фокуса в разных версиях comctl32.dll
От: Vaynamond Россия  
Дата: 28.09.18 08:16
Оценка:
Добрый день, форумчане!
Столкнулся с такой проблемой, не могу понять, куда копать.
Есть небольшая тестовая программка, написана на WIN API: главное окно программы, меню, из которого можно
вызвать дочернее окно (стиль диалога — WS_EX_DLGMODALFRAME) на котором расположены две кнопки.
При вызове дочернего окна фокус устанавливается на первую кнопку посредством SetFocus.
На comctl32.dll версии 5.80 (используется по-умолчанию) все отрабатывает согласно задуманному.
Но если с помощью манифеста указать версию 6.0, поведение меняется: если дочернее окно (с кнопками)
было вызвано из меню клавиатурой (т.е. нажали Enter на пункте меню), все отрабатывает как и раньше (фокус
устанавливается на первую кнопку), а если вызвать из меню мышкой, то фокус не отрисовывается вообще (даже
если ткнуть мышкой в кнопку).
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.