请问:怎么在MFC对话框中实现模拟键盘输入
请教:如何在MFC对话框中实现模拟键盘输入
如题,简单的说,我的问题是这样的:
我有一个对话框A,里面有两个编辑框:edit1和edit2,另有一个对话框B,里面是10个按键,分别代表小键盘上的0~9。我想实现这样的功能:点击对话框A的一个编辑框,如edit1,弹出对话框B,单击B中的按键,可以在edit1中出现相应的数字;同样,点击edit2,也会弹出对话框B,但点击按键,数字在edit2中出现。
总之,就是一个模拟键盘的调用和使用的问题。小弟才疏学浅,还请各位大侠不吝赐教。多谢!
------解决方案--------------------
你在WM_SETFOCUS消息的处理函数中处理对话框弹出,然后将那些0~9做成按钮,处理按钮点击消息,按照你要求的处理.
------解决方案--------------------
弹出对话框的可以在edit里面响应ON_EN_CHANGE
在B中点击按钮,然后可以给A发消息SendMessage()就可以传递数据了
------解决方案--------------------
Sendinput,或者用KB_Event........
------解决方案--------------------
------解决方案--------------------
------解决方案--------------------
我刚刚做了一个数据输入键盘和一些单位建的输入,输入到edit里面显示的。只是我模拟的数字键盘和edit在同一个对话框,蝈蝈如果有需要的话可以发给你
------解决方案--------------------
你可以用GetDlgItem(ID_EDITA)->SetWindowText(str); str是具体的数字。如果要给B中写,可以用ID_EDITB。
------解决方案--------------------
------解决方案--------------------
可以自定义消息,在网上例子相对比较多.
也可以获取对话框A的指针,然后在对话框B中通过该指针对其中控件进行操作.
------解决方案--------------------
在对话框B中的按键函数中添加
AXXXX*pDlg=(AXXXX*)this->GetParent();
pDlg->m_EditCtrl.SetWindowText("XXX");
可以实现数据传递.
然后在弹出对话框B的时候,添加判断,传递一个变量给对话框B,标志是对edit1
还是对edit2操作..
------解决方案--------------------
自定义消息类型,A窗口就能获得B的信息了。
------解决方案--------------------
------解决方案--------------------
那不是很简单,找到那个Edit的句柄,发送WM_SETTEXT就可以了
------解决方案--------------------
------解决方案--------------------
------解决方案--------------------
我这边有个例子,是获得另外一个窗体中的一个按钮的句柄,你换成获得文本框的就行了
如题,简单的说,我的问题是这样的:
我有一个对话框A,里面有两个编辑框:edit1和edit2,另有一个对话框B,里面是10个按键,分别代表小键盘上的0~9。我想实现这样的功能:点击对话框A的一个编辑框,如edit1,弹出对话框B,单击B中的按键,可以在edit1中出现相应的数字;同样,点击edit2,也会弹出对话框B,但点击按键,数字在edit2中出现。
总之,就是一个模拟键盘的调用和使用的问题。小弟才疏学浅,还请各位大侠不吝赐教。多谢!
------解决方案--------------------
你在WM_SETFOCUS消息的处理函数中处理对话框弹出,然后将那些0~9做成按钮,处理按钮点击消息,按照你要求的处理.
------解决方案--------------------
弹出对话框的可以在edit里面响应ON_EN_CHANGE
在B中点击按钮,然后可以给A发消息SendMessage()就可以传递数据了
------解决方案--------------------
Sendinput,或者用KB_Event........
------解决方案--------------------
------解决方案--------------------
------解决方案--------------------
我刚刚做了一个数据输入键盘和一些单位建的输入,输入到edit里面显示的。只是我模拟的数字键盘和edit在同一个对话框,蝈蝈如果有需要的话可以发给你
------解决方案--------------------
你可以用GetDlgItem(ID_EDITA)->SetWindowText(str); str是具体的数字。如果要给B中写,可以用ID_EDITB。
------解决方案--------------------
------解决方案--------------------
可以自定义消息,在网上例子相对比较多.
也可以获取对话框A的指针,然后在对话框B中通过该指针对其中控件进行操作.
------解决方案--------------------
在对话框B中的按键函数中添加
AXXXX*pDlg=(AXXXX*)this->GetParent();
pDlg->m_EditCtrl.SetWindowText("XXX");
可以实现数据传递.
然后在弹出对话框B的时候,添加判断,传递一个变量给对话框B,标志是对edit1
还是对edit2操作..
------解决方案--------------------
自定义消息类型,A窗口就能获得B的信息了。
------解决方案--------------------
------解决方案--------------------
那不是很简单,找到那个Edit的句柄,发送WM_SETTEXT就可以了
------解决方案--------------------
------解决方案--------------------
------解决方案--------------------
我这边有个例子,是获得另外一个窗体中的一个按钮的句柄,你换成获得文本框的就行了