【分享】自制屏幕输入键盘

凌乱哥 2014-09-14 04:28:08
参考了网络上的一个键盘程序,再加上CSDN的热心哥们 zhllxt 的帮助,完成了这么一个输入键盘

按键响应这部分的代码有点冗余,由于项目比较紧迫,就暂时没有优化,实现了功能就行

效果图一:

效果图二:


下载链接:
下载链接

最后按照惯例,这程序有个缺陷请教一下:
关于调用这个CWnd键盘。我是在编辑框的OnSetFocus里调用的键盘,然后KillFocus里关闭的。
所以现象就是,单击编辑框,出现键盘,输入完成后,单击键盘右上角的关闭,假如此时想修改编辑框内容,再单击编辑框就无法调用出来了,除非让编辑框先失去焦点,再单击。难道我还要重写编辑框,响应它的单击消息,而不能只管它的得到焦点的消息
...全文
594 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
jiayuxue 2016-06-21
  • 打赏
  • 举报
回复
fwen9200 2016-05-05
  • 打赏
  • 举报
回复
楼主已经做得不错啦,,,借用拿去改改啦
个男子1 2014-10-13
  • 打赏
  • 举报
回复
不错,挺好的
凌乱哥 2014-09-15
  • 打赏
  • 举报
回复
引用 8 楼 schlafenhamster 的回复:
我的意思是 放个 keyBoard 按钮。 不要 和 edit 混一起, 可能 用户 直接 从 键盘 输入 而 不是 模拟键盘。
我这个的情况就是没有键盘,所以我才需要做一个模拟键盘
schlafenhamster 2014-09-15
  • 打赏
  • 举报
回复
我的意思是 放个 keyBoard 按钮。 不要 和 edit 混一起, 可能 用户 直接 从 键盘 输入 而 不是 模拟键盘。
凌乱哥 2014-09-15
  • 打赏
  • 举报
回复
引用 6 楼 schlafenhamster 的回复:
主对话框上 加上 ‘OK’ , 把 焦点set到 ok
有的对话框没有OK按钮,那就要遍历一下控件,把焦点设置到一个非Edit且非Static上面,真是越来越复杂了
schlafenhamster 2014-09-15
  • 打赏
  • 举报
回复
主对话框上 加上 ‘OK’ , 把 焦点set到 ok
凌乱哥 2014-09-15
  • 打赏
  • 举报
回复
引用 10 楼 mycool2001 的回复:
不想重载Edit,那就处理PreTranslateMessage 中的鼠标点击消息不就OK了
恩,有道理。。
mycool2001 2014-09-15
  • 打赏
  • 举报
回复
不想重载Edit,那就处理PreTranslateMessage 中的鼠标点击消息不就OK了
凌乱哥 2014-09-14
  • 打赏
  • 举报
回复
发现一个问题,关闭的时候,发送WM_KILLFOCUS确实可以关闭键盘,但是Edit的焦点失去的异常,因为,Edit无法单击了,是不是少做了什么?用Spy++监听Edit的消息如下:

但是我又再发了WM_IME_SETCONTEXT,Edit一样无法被单击了
凌乱哥 2014-09-14
  • 打赏
  • 举报
回复
引用 3 楼 schlafenhamster 的回复:
你把 "Test"删除 , 那么对话框只有 Edit. 你看看程序怎么执行? (对话框 初始化 后 Edit 已经 有 Focus , '键盘已经弹出' )
你是说关闭键盘的时候Release掉Edit的Focus,有道理,那我关闭键盘的时候直接向Edit发送一个WM_KILLFOCUS,既能去掉Edit的焦点,又能起到关闭键盘的效果,貌似有戏,一会试下。。。 这些按键已经能满足基本的输入需要了吧,其他的看项目需要了 一般不会只有一个Edit,那只有一个Edit也没办法,不然要如何实现“编辑框有焦点且键盘不存在的情况下把键盘调出来”,这正是我想问的。
schlafenhamster 2014-09-14
  • 打赏
  • 举报
回复
你把 "Test"删除 , 那么对话框只有 Edit. 你看看程序怎么执行? (对话框 初始化 后 Edit 已经 有 Focus , '键盘已经弹出' )
schlafenhamster 2014-09-14
  • 打赏
  • 举报
回复
另外这个键盘的键不全!
schlafenhamster 2014-09-14
  • 打赏
  • 举报
回复
"假如此时想修改编辑框内容,再单击编辑框就无法调用出来了,除非让编辑框先失去焦点,再单击。" 那是一定的因为 OnSetFocus 只有一次, 还是要考虑 ReleaseFocus

15,978

社区成员

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

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