1,用DialogBox创建的对话框如何捕捉WM_KEYDOWN和WM_KEYUP消息
MSDN上面说DialogBox创建的对话框用的是单独的消息循环,所以我没法修改TranslateMessage之前的代码2,如何向当前窗口中输入文字(可能是WINWORD,NOTEPAD,QQ……)
热键已经注册,问题是响应WM_HOTKEY的函数怎么写
MSDN上面说DialogBox创建的对话框用的是单独的消息循环,所以我没法修改TranslateMessage之前的代码2,如何向当前窗口中输入文字(可能是WINWORD,NOTEPAD,QQ……)
热键已经注册,问题是响应WM_HOTKEY的函数怎么写
解决方案 »
- MFC如何写个IE及非IE自动间隔刷新
- 怎样隐藏右键菜单的某一项或某几项?
- 炫彩界面库开源啦
- 一个MFC写的程序,编译出错,不知问题在哪里...望指点
- 如何给任意文件改名?
- 请问如何使用Microsoft Office提供的摸板库获得一个word文档的页数?
- 郁闷,hook api遇到的问题
- 调用SetWindowPos为什么不成功?
- 请问在EDIT控件中如何控制换行!!!
- 各位大虾!小虾请你们帮帮忙,看看这段代码错在哪?帮帮忙!!!!
- 如何把TabPage锁住,使的按下TabPage的按钮不会进入那一页
- 请问一下各位高手,到底http的头和数据区的鲁棒性分开标志是什么啊?在线急等!!!拜托了!!
模拟键盘我们用Keybd_event这个api函数。首先介绍一下Keybd_event函数。Keybd_event能触发一个按键事件,也就是说回产生一个WM_KEYDOWN或WM_KEYUP消息。当然也可以用产生这两个消息来模拟按键,但是没有直接用这个函数方便。Keybd_event共有四个参数,第一个为按键的虚拟键值,如回车键为vk_return, tab键为vk_tab。第二个参数为扫描码,一般不用设置,用0代替就行第三个参数为选项标志,如果为keydown则置0即可,如果为keyup则设成“KEYEVENTF_KEYUP”,第四个参数一般也是置0即可。用如下代码即可实现模拟按下键,其中的XX表示XX键的虚拟键值,在这里也就是各键对应的键码,如’A’=65
keybd_event(65,0,0,0);
keybd_event(65,0,KEYEVENTF_KEYUP,0);
DialogBox(hInst,hwndParent,(LPCTSTR)IDD_DIALOG,(DLGPROC)DialgoPrpc);
BOOL CALLBACK DialogProc(HWND hDlg,UINT msg,WPARAM wParam,LPARAM lParam)
{
switch(msg)
{
case WM_INITDIALOG:
return TRUE;
case WM_KEYDOWN:
....
break;
case WM_KEYUP:
....
break;
}
return FALSE;}
我想到的办法是利用剪贴板,发送WM_PASTE消息,可是又不知道怎么得到光标所在控件的句柄
GetForegroundWindow只能得到最前面窗口的句柄