Виявлення керування за допомогою миші та за допомогою сенсорного екрана у Windows® 10 та Windows 8,
У цьому проекті демонструється визначення режиму роботи ноутбука-трансформера (режим планшета або режим ноутбука) під керуванням Windows* 8(.1), а також новий режим керування за допомогою миші та сенсорного екрана у Windows® 10. Режим керування за допомогою миші та сенсорного Екран аналогічний режиму планшета і ноутбука, але в Windows 10 користувачі отримали можливість вручну перемикати режим, тоді як в Windows 8 режим перемикається тільки в залежності від фізичного стану пристрою. Тому користувачі Windows 10 можуть використовувати розширений графічний інтерфейс, призначений для сенсорного керування, навіть на пристроях, що не є трансформерами: важлива тільки наявність сенсорного екрана. Ця нова можливість реалізована на основі нових API UWP (Universal Windows Platform). Потрібно додати кілька рядків коду до програм, призначених для Windows 8, щоб скористатися цією функцією у Windows 10. У цьому документі показано доопрацювання програм Win32 для використання API UWP за допомогою WRL (бібліотеки шаблонів C++ середовища виконання Windows) у Windows 10. Відомості про включення програм UWP див. у зразку коду Microsoft.
Вимоги
- Windows 10
- Visual Studio* 2015. Новий API відсутній у Visual Studio 2013
Опис режиму керування за допомогою миші та сенсорного екрана у Windows 10
- Налаштування вручну
- Проведіть по екрану з правого краю екрана до середини, щоб відкрити Центр підтримки (меню чудо-кнопок у Windows 8).
- Торкніться кнопки «Режим планшета», щоб переключитися між режимом сенсорного керування та режимом керування за допомогою миші.
- Вибір за допомогою обладнання
- Коли пристрій-трансформер виявляє зміну фізичного стану, він повідомляє про це ОС.
- ОС запитує підтвердження користувача. Якщо підтверджує користувач, ОС перемикає режим.
-
Для перевірки перейдіть до розділу "Налаштування" -> "Система" -> «Планшетний режим» та встановіть прапорець «Завжди запитувати роздільну здатність перед перемиканням режиму».
Зразок програми
Залежно від ОС у зразку програми з урахуванням діалогових вікон відбудеться таке.

У Windows 8 передається повідомлення WM_SETTINGCHANGE (lParam == “ConvertibleSlateMode”) при зміні фізичного стану, а Windows 10 передається WM_SETTINGCHANGE (lParam == “UserInteractionMode”) у вікно верхнього рівня. При цьому також передається і попереднє повідомлення. Програма має визначати версію ОС та вибирати той чи інший код залежно від неї. В іншому випадку програма Windows 10 двічі реагуватиме на описані вище повідомлення.
Після того, як програма отримує повідомлення, воно опитує поточний стан, оскільки повідомлення тільки повідомляє ОС про зміну режиму, але не про поточний стан. Не існує API Win32, що дозволяє опитувати новий стан безпосередньо, але можна використовувати WRL для доступу до компонентів Windows RT з Win32, як показано в наступному фрагменті коду.
Висновок та інші можливості
В цьомуЗразок коду показано реалізацію виявлення режимів роботи трансформера в Windows 8/8.1 і Windows 10 за допомогою Win32. У програмах Магазину Windows під керуванням Windows 8 не було можливості виявляти події трансформерів. У Windows 10 підтримуються API UWP, щоб універсальні програми могли використовувати функціональність трансформерів. Замість використання аналогічного API Win32 представлений метод використання API UWP із програми Win32. Слід зазначити, що API UWP не мають особливого повідомлення для цієї події; вони використовують події зміни розміру вікна з перевіркою поточного стану. Якщо стан відрізняється від збереженого, то передбачається, що його змінилося. Якщо використовувати повідомлення Win32 незручно (наприклад, у програмах Java*), можна використовувати подію зміни розміру вікна Java і викликати оболонку JNI для підтвердження стану.
Ліцензія Приклад вихідного коду поширюється на умовах ліцензійної угоди Intel Sample Source Code License Agreement.
Щоб отримати додаткові відомості про оптимізацію компіляторів, див.
У разі використання цього модуля перекладу буде створено машинний переклад вихідного вмісту. Переклад надається для ознайомлення, його повнота та точність не гарантуються.