我有以下问题:

我打开对话、开放的SIP键盘来填写表格,然后尽量减少SIP。然后当我接近的当前对话和返回的主要对话SIP键盘再次出现。任何人都不会知道我怎么会显示SIP键盘的通过程序或者更好的可以做些什么来解决描述问题。一旦使用最小化的键盘,它不应该出现在屏幕上对话交换。

谢谢!

有帮助吗?

解决方案

我们使用 SHSipPreference 来控制所显示的SIP在我们的应用。我知道它的工作与MFC和它规定国家的SIP的窗口,这样你可以设定一次,你知道SIP国家将恢复到设置国家的每一个时间的窗口。

我从来没听说过SipShowIM但是我没有看到在MSDN页链接:

标准方法的表示, 隐藏SIP(SIPShowIM)表现出 一些问题在MFC的对话。

其他提示

您会想调用的 SipShowIM ()在coredll。看到此MSDN文章:

http://msdn.microsoft.com/en-us/library /ms838341.aspx

可以使用Microsoft.WindowsCE.Forms.InputPanel组件。您可以显示/隐藏SIP编程方式使用Enabled属性。有一个在一个工具箱输入面板组件。

还有为输入面板,你可以处理EnabledChanged事件。通常你要显示的SIP以文本框的GetFocus事件。

您使用MFC?

问题是SIP状态是每对话,而不是每个应用程序。所以,你需要显示/隐藏其内的每个单独的对话框。

void CAaa::OnActivate( UINT nState, CWnd* pWndOther, BOOL bMinimized )
{
if(nState == WA_ACTIVE || nState == WA_CLICKACTIVE)
{
        SHINITDLGINFO shidi;
            shidi.dwMask = SHIDIM_FLAGS;
            shidi.dwFlags = SHIDIF_FULLSCREENNOMENUBAR|SHIDIF_SIPDOWN | SHFS_HIDETASKBAR;
            shidi.hDlg = m_hWnd;
            SHInitDialog(&shidi);

        SHFullScreen(m_hWnd, SHFS_HIDETASKBAR | SHFS_HIDESIPBUTTON |SHFS_HIDESTARTICON);
}
}

和您应该删除任何全屏或任务栏键如果不需要:)

和其它东西的使用方法:

 SHSipPreference(m_hWnd,SIP_UP); // SIP_DOWN

或者甚至:

 HWND hwndCB = ::FindWindow(_T("SipWndClass"),_T(""));
      ::ShowWindow( hwndCB, SW_SHOW);
      hwndCB = ::FindWindow(_T("MS_SIPBUTTON"),NULL);
      ::ShowWindow( hwndCB, SW_SHOW);

但后者可能不那么标准:)不过它的工作原理。 试戴。

  

...在其他一些对话我要在键盘布局设置为数字,   所以我说在构造以下行:   SendMessage消息(EM_SETINPUTMODE,0,EIM_NUMBERS);但是,如果我删除此   线I解决一个问题,并创建另一个

GetLastError函数()或者是图6(无效的句柄)或120(不支持)。 EM_SETINPUTMODE只支持智能手机和智能手机不具备的SIP。请参见 http://msdn.microsoft.com/en-us/library/bb416452。 ASPX

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top