Windows Embedded Compact 2013 — начальный фокус для приложений

У меня есть экран входа в систему, когда мое приложение запускается, и я хотел бы, чтобы курсор ждал ввода в текстовом поле имени пользователя (без нажатия). Я смог сфокусировать курсор после загрузки сетки:

HRESULT MainPage::OnLoaded(__in IXRDependencyObject* pRoot)
{
UNREFERENCED_PARAMETER(pRoot);

HRESULT hr = InitializeComponent();

if (FAILED(hr))
{
goto Error;
}

if (m_pLogin)
{
m_pLogin->AddLoadedEventHandler(CreateDelegate(this, &MainPage::Login_Loaded));
}
Error:
return hr;
} // OnLoaded

HRESULT MainPage::Login_Loaded (IXRDependencyObject* pSender, XRRoutedEventArgs* pArgs)
{
HRESULT hr = S_OK;

m_pUserName->Focus(&pBool);

return hr;
}

Это позволяет мне печатать, но курсор на самом деле не виден.

Я видел другие темы, объясняющие, что плагин браузера должен сначала фокусироваться, но это встроенное приложение silverlight (C ++), а не веб-страница silverlight (C #). Я не могу понять, как установить фокус на приложение, когда оно запускается без использования мыши. Какие-либо предложения?

0

Решение

Я не смог сделать это без щелчка мышью — но я использовал SendInput синтезировать щелчок мыши, чтобы пользователь не должен.

HRESULT MainPage::OnLoaded(__in IXRDependencyObject* pRoot)
{
UNREFERENCED_PARAMETER(pRoot);

HRESULT hr = InitializeComponent();

if (FAILED(hr))
{
goto Error;
}

if (m_pLogin)
{
m_pLogin->AddLoadedEventHandler(CreateDelegate(this, &MainPage::Login_Loaded));
m_pLogin->AddMouseLeftButtonUpEventHandler(CreateDelegate(this, &MainPage::Login_MouseLeftButtonUp));
}
Error:
return hr;
} // OnLoaded

HRESULT MainPage::Login_Loaded (IXRDependencyObject* pSender, XRRoutedEventArgs* pArgs)
{
HRESULT hr = S_OK;

// execute mouse click
INPUT ip;
ip.type = INPUT_MOUSE;

ip.mi.dwFlags = MOUSEEVENTF_LEFTDOWN | MOUSEEVENTF_ABSOLUTE;
SendInput(1,&ip,sizeof(INPUT));

ip.mi.dwFlags = MOUSEEVENTF_LEFTUP | MOUSEEVENTF_ABSOLUTE;
SendInput(1,&ip,sizeof(INPUT));

return hr;
}

HRESULT MainPage::Login_MouseLeftButtonUp (IXRDependencyObject* pSender, XRMouseButtonEventArgs* pArgs)
{
HRESULT hr = S_OK;

m_pUserName->Focus(&pBool);

return hr;
}
0

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