0

У меня есть экран входа в систему, когда мое приложение запускается, и хотелось бы, чтобы курсор ожидал ввода текстового поля имени пользователя (без щелчка). Я был в состоянии сосредоточиться курсор после загрузки сетки: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; 
}