在开发全屏应用时,如果要使用编辑框的话,肯定要用到输入法,这个可以靠edit控件的焦点获取来设置,下面的cmyedit是继承自CEdit
void CMyEdit::OnEnSetfocus()
{
//SHSipPreference(AfxGetMainWnd()->m_hWnd,SIP_UP);
phonedata::test_state=true;
CWnd* pWndSIP = FindWindow( _T("MS_SIPBUTTON"), 0 );
if ( pWndSIP )
{
pWndSIP->ShowWindow(SW_SHOW);
pWndSIP->BringWindowToTop();
}
pWndSIP = FindWindow( _T("SipWndClass"), NULL );
if ( pWndSIP )
{
pWndSIP->ShowWindow(SW_SHOW);
pWndSIP->EnableWindow(true);
pWndSIP->BringWindowToTop();
}
}
void CMyEdit::OnEnKillfocus()
{
phonedata::test_state=false;
CWnd* pWndSIP = FindWindow( _T("MS_SIPBUTTON"), 0 );
if ( pWndSIP )
{
//pWndSIP->SetWindowPos(&wndBottom , 0, 0, 0, 0, SWP_NOMOVE + SWP_NOSIZE);
pWndSIP->ShowWindow(SW_HIDE);
}
pWndSIP = FindWindow( _T("SipWndClass"), NULL );
if ( pWndSIP )
{
pWndSIP->ShowWindow(SW_HIDE);
}
}
当焦点在编辑框时会弹出输入面板和输入法按钮,但是当你点击输入法按钮切换输入法时会发现,屏幕会跑出标题栏和下面的菜单栏,完全破坏了全屏性。这时可以在主对话框中实现:
void CStockDlg::OnActivate(UINT nState, CWnd* pWndOther, BOOL bMinimized)
{
CDialog::OnActivate(nState, pWndOther, bMinimized);
PostMessage(WM_FULLSCREN,1);
}
void CStockDlg::OnWinIniChange(LPCTSTR lpszSection)
{
CDialog::OnWinIniChange(lpszSection);
}(这些方法是网上找来的,忘了其地址,下次补上)