关于重写CEdit 弹出软键盘

jesse1117 2014-10-24 10:19:39
我想重写一个cedit 控件 实现这样的功能, 点击输入框的时候就弹出系统的软键盘 ,可以用软键盘输入,点击别的地方的时候就关闭软键盘, 就像手机点击输入框键盘就弹出来一样的感觉 ,我在SetFocus里响应 弹出软键盘
ShellExecute(GetSafeHwnd(), NULL, _T("osk.exe"), NULL, NULL,SW_MAXIMIZE);

但是输入不了 是怎么回事? 而且不知道怎么关闭他
...全文
198 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
jesse1117 2014-11-18
  • 打赏
  • 举报
回复
已经解决了 答案是 没有关360。。。。
lx624909677 2014-10-27
  • 打赏
  • 举报
回复
点软键盘输入不了应该是没获得到编辑框的焦点吧
shen_wei 2014-10-27
  • 打赏
  • 举报
回复
引用 4 楼 jesse1117 的回复:
[quote=引用 3 楼 shen_wei 的回复:]
void CCTestDlgDlg::OnEnSetfocusEdit1()
{
	if (m_bOskOpen == FALSE)
	{
		m_hInstance = ShellExecute(GetSafeHwnd(),NULL,_T("OSK.exe"),NULL,NULL,SW_NORMAL);
		m_bOskOpen = TRUE;
	}	
}
剩下就是关闭OSK了。。
软键盘我已经弹出来了 但是输入不了啊。。 点键盘 没有反应的 怎么回事。。[/quote] 我的这段我测试了 OK。。
jesse1117 2014-10-25
  • 打赏
  • 举报
回复
引用 3 楼 shen_wei 的回复:
void CCTestDlgDlg::OnEnSetfocusEdit1()
{
	if (m_bOskOpen == FALSE)
	{
		m_hInstance = ShellExecute(GetSafeHwnd(),NULL,_T("OSK.exe"),NULL,NULL,SW_NORMAL);
		m_bOskOpen = TRUE;
	}	
}
剩下就是关闭OSK了。。
软键盘我已经弹出来了 但是输入不了啊。。 点键盘 没有反应的 怎么回事。。
jesse1117 2014-10-24
  • 打赏
  • 举报
回复
引用 1 楼 zgl7903 的回复:
估计OSK弹出的时候 Edit失去了焦点 开源的软键盘代码很多, 集成一个到软件中
木有啊 我是响应的SetFoucs 啊 而且弹出的键盘 在别的地方也用不了
zgl7903 2014-10-24
  • 打赏
  • 举报
回复
估计OSK弹出的时候 Edit失去了焦点 开源的软键盘代码很多, 集成一个到软件中
shen_wei 2014-10-24
  • 打赏
  • 举报
回复
void CCTestDlgDlg::OnEnSetfocusEdit1()
{
	if (m_bOskOpen == FALSE)
	{
		m_hInstance = ShellExecute(GetSafeHwnd(),NULL,_T("OSK.exe"),NULL,NULL,SW_NORMAL);
		m_bOskOpen = TRUE;
	}	
}
剩下就是关闭OSK了。。

15,979

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 界面
社区管理员
  • 界面
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧