Как я могу вызвать GetAsyncKeyState () в приложении UWP DirectX / XAML?

У меня есть некоторый код, который я портирую из рабочего приложения WinJS / UWP в вариант DirectX / XAML, но я не могу понять состояние клавиатуры.

Контроллер не проблема, он работает просто отлично с помощью XInputGetState ().
У меня проблема только с клавиатурой.

Существующий код:

Windows::UI::Core::CoreWindow^ win =
Windows::UI::Core::CoreWindow::GetForCurrentThread();
if (win)
{
// misc. calls to win->GetAsyncKeyState()
}
XInputGetState(activeController, &inputState);

Но это не сработает, потому что Windows :: UI :: Core :: CoreWindow :: GetForCurrentThread () возвращает ноль.

Если я попробую это, я могу получить объект победы:

Windows::UI::Core::CoreWindow^ win =
Windows::ApplicationModel::Core::CoreApplication::MainView->CoreWindow;

if (win)
{
// misc. calls to win->GetAsyncKeyState()
}
XInputGetState(activeController, &inputState);

Но тогда окно (swapChainPanel) не рендерится.

На самом деле, если я уберу часть «если» в этой части, она все равно не будет выглядеть так, как если бы у меня была смелость получить ссылку на CoreWindow, значит, она испортилась.

Я бы хотел иметь клавиатурный ввод, ввод контроллера и графический вывод одновременно.

Может ли кто-нибудь помочь мне с правильным заклинанием, которое дает мне CoreWindow, которое я могу использовать, не останавливая работу других важных функций?

Это все C ++.
И это код, который работает в WinJS.

0

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]