C++ Windows Embedded Compact 2013-初始应用程序重点
当我的应用程序启动时,我有一个登录屏幕,希望光标在用户名文本框中等待键入(不单击)。我能够在网格加载后聚焦光标:C++ Windows Embedded Compact 2013-初始应用程序重点,c++,silverlight,visual-studio-2012,windows-embedded-compact,blend-2012,C++,Silverlight,Visual Studio 2012,Windows Embedded Compact,Blend 2012,当我的应用程序启动时,我有一个登录屏幕,希望光标在用户名文本框中等待键入(不单击)。我能够在网格加载后聚焦光标: HRESULT MainPage::OnLoaded(__in IXRDependencyObject* pRoot) { UNREFERENCED_PARAMETER(pRoot); HRESULT hr = InitializeComponent(); if (FAILED(hr)) { goto Error; }
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#)。我不知道在应用程序启动时如何在不使用鼠标的情况下设置焦点。有什么建议吗?没有鼠标点击,我无法完成这项任务,但我过去常常合成鼠标点击,因此用户不必这样做
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;
}