热情软件屋

 

如何用SendMessage模拟某一按钮被按下


编号:QA001617
建立日期: 1999年8月29日 最后修改日期:2003年12月6日
所属类别:

netnetpass:
    vc6
    win98
    ::SendMessage(hwnd,WM_CHAR ,'0',0)表示往某一edit box里输入一字符,如何用SendMessage模拟某一按钮被按下(例如ok按钮)被按下该如何写?我用::SendMessage(hwnd1,BN_CLICKED,0,0)//hwnd1是ok的hwnd//怎么不行呢?

回答:

    向按钮的父窗口(对话框)发送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

 
把这个问题推荐给朋友
   
   
您的意见类别
您的名字
您的电子邮件
您的建议(请尽可能详细)
 
 

版权所有 1997-2008 热情软件屋
如果您有任何建议和意见, 请给我发个电子邮件 askpro@china-askpro.com
Web Designed by ZebraStudio