想做个独立的软键盘,具体是单独的一个对话框,上面0-9,退格,确定,取消一共12个按钮然后其他的对话框里面很多列表(还有GridCtrl控件),我点击列表某行,就弹出上面的软键盘对话框,可具体怎么实现我按软键盘数字键,列表输入数据也就是一个对话框是键盘,其他对话框里面的列表数据怎么通过键盘输入数据
解决方案 »
- 菜单 mfc
- ★★★★#include问题,先来先得分!!★★★★
- SDK编程如何设置Dialog中的Edit control的背景色?
- 请问MessageBox是什么的成员,它的4个参数分别是什么?
- 关于SQL数据库的问题!
- 如何注册 调用 dll模块,给源码
- 有谁能提供VC的DAO数据库编程的资料吗??
- 如何判断指定IP地址的机器是否上了网?假设该机器使用的是Windows操作系统。
- 想彻底去掉一个MDI子窗口(各个子窗口的文档模板采用不同的CCHLDFRAME)的最小化及还原属性(总是最大化),如何做?但对于MDI的子窗口,MFC框架实现为一个子窗口还原所有子窗口都还原.
- fatal error LNK1000
- [求助]手机AT指令是什么意思?
- 关于windows编程 图片移动地问题!
键盘和设置数据的列表(gridctrl)是在2个对话框里,2个类,上面说的用SetWindowText?如何通过键盘按钮响应使另外一个对话框SetWindowText显示数据
m_edtMyInput.SubclassDlgItem( IDC_EDIT_MY_INPUT, this ); 可我弄得是GridCtrl列表,整个列表控件时一个ID,可每行都要分别输出,相当于很多编辑框组成的样,当然就要每行都要调出键盘输入,可每行又不分别对应一个ID,这怎么用呢?也不知道我表达清楚没
1、你的软件盘是和GridCtrl所在的是同一个程序么?假如是这样就简单多了。你可以在GridCtrl里加一个函数,去捕捉当前列表框的HWND,然后SendMessage一个消息给你的软键盘,可以把HWND的发给他,然后让你的软键盘来处理消息。你可以利用这个HWND,去getwindowtext,setwindowtext,setsel,来回改变GridCtrl的文字内容及光标位置。这个道理比较简单。
2、假如软键盘和GridCtrl不在同一窗口,那必须利用hook去捕捉WM_LBUTTONDOWN消息,我记得DBGRid点下后是动态生成编辑窗口,就是当前只有一个窗口,是编辑状态,而这个窗口的父窗口就应该是GridCtrl,他有个类名,你可以用spy++看下是什么名字,然后利用hook的wm_lbuttondown消息去分析,假如是这个窗口,你就让你的软键盘弹出来。
假如上面说的你还是觉得模糊,你直接用setwindowlong给窗口添加一些属性,然后捕捉wm_lbuttondown消息去分析这些属性,是否弹出软键盘。这样的话,setwindowlong应该写在gridctrl里更合适一些。
你要不急,而且还不明白,晚上可以聊,留QQ