Можно ли создавать списки переходов в Windows 7, чтобы при перетаскивании мышью они вели себя как меню?
Краткий ответ: нет.
В традиционном меню, если вы поместите курсор мыши на заголовок меню, перетащите вниз, а затем отпустите на пункте меню, он немедленно активирует этот пункт меню.
Однако при перетаскивании списка переходов в Windows 7 необходимо дополнительно щелкнуть нужный элемент, чтобы запустить его.
Традиционное меню - это именно меню. Как почти все элементы интерфейса в Windows, меню - это окна, но особый вид окон; они являются конструкцией операционной системы и имеют класс окна #32768
. Некоторые классы окон (включая диалоговые окна с классом окна #32770
) автоматически обрабатываются внутри операционной системы (по умолчанию), и программе, которая их создала, не нужно делать с ними ничего особенного.
Однако большинству других окон предоставляются пользовательские классы окон, и программа, которая их создает, должна обрабатывать их самостоятельно (например, рисование окна, обработка ввода и т.д.)
Jump-списки не являются меню, они только подражают им. Они имеют оконный класс DV2ControlHost
и обрабатываются Explorer (explorer.exe
), который сам по себе является просто программой Windows. Списки переходов не обрабатываются самой Windows, как и меню.
Вот почему они ведут себя не так, как меню (я не знаю, почему некоторые люди говорят, что они работают одинаково для них; возможно, они просто неправильно поняли то, что спрашивают).
Есть ли способ изменить это поведение?
Нет, сделать это невозможно, потому что для этого потребуется, чтобы Explorer обрабатывал их как настоящие меню. Вы можете попробовать опубликовать запрос функции, но общепринятая практика гласит, что большинство отзывов обычно игнорируется.