【问题标题】:Windows Embedded Compact 2013 - Initial Application FocusWindows Embedded Compact 2013 - 初始应用重点
【发布时间】:2015-01-09 16:20:27
【问题描述】:

我的应用程序启动时有一个登录屏幕,我希望光标在用户名文本框中等待输入(无需单击)。网格加载后,我能够聚焦光标:

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#)。我不知道如何在不使用鼠标的情况下将焦点设置到应用程序启动时。有什么建议吗?

【问题讨论】:

    标签: c++ silverlight visual-studio-2012 windows-embedded-compact blend-2012


    【解决方案1】:

    如果不单击鼠标,我无法完成此操作 - 但我使用 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;
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-05-26
      • 1970-01-01
      相关资源
      最近更新 更多