如何用SendMessage模拟某一按钮被按下
编号:QA001617
建立日期: 1999年8月29日 最后修改日期:2003年12月6日
所属类别:
Q
netnetpass:
vc6
win98
::SendMessage(hwnd,WM_CHAR ,'0',0)表示往某一edit box里输入一字符,如何用SendMessage模拟某一按钮被按下(例如ok按钮)被按下该如何写?我用::SendMessage(hwnd1,BN_CLICKED,0,0)//hwnd1是ok的hwnd//怎么不行呢?
A回答:
向按钮的父窗口(对话框)发送WM_COMMAND消息。至于另外两个参数如何设置,参考 WM_COMMAND消息的帮助。
另外,参考QA001718 "如何模拟鼠标移动操作"。
kekefen的意见:
我觉得最好的办法是得到按钮的指针,这在vc中比较容易实现,比如在对话框中用GetDlgItem()得到指针后,如果指针为pointer,则pointer->SendMessage(WM_LBUTTONDOWN);就可以使得按纽呈现被按下去的状态。
Apple的意见:
请用这个函数:
VOID keybd_event(
BYTE bVk, // virtual-key code
BYTE bScan, // hardware scan code
DWORD dwFlags, // flags specifying various function options
DWORD dwExtraInfo // additional data associated with keystroke
);
簌簌问: 被按下的状态是指一瞬间按下去的动作么?还是鼠标左键一直被按着的状态???
答:如果是WM_COMMAND消息,模拟的是一瞬间按下去的动作,如果是WM_LBUTTONDOWN模拟的是一直被按着的状态,WM_LBUTTONUP模拟释放按键。
相关问题:
QA001099 "如何模拟键盘输入"
此问题由李海回答。
附加关键字:编程, 源程序, programming, source code, C/C++, MFC, C++ Builder, Borland C++, Turbo C, C, BCB, 标准控件, screen, button, combo, checkbox, listbox, 键盘与鼠标, mouse, keyboard, hid。
| |
|
|
| |
|
|