软件注册站
热情软件屋

 
如何在A窗口中向B窗口发出KEYDOWN消息
编号: QA000782    
建立日期: 1999年4月9日 最后修改日期: 2005年8月22日
所属类别: Visual Basic - 键盘与鼠标
Visual Basic - 窗体与菜单
   
    vb5.0
    win95
    如何在A窗口中向B窗口发出一个消息,以便被B窗口中FORM_KEYDOWN所接收?不用SendKeys实现。(windsong)
   
    你可以使用API函数SendMessage来发送WM_KEYDOWN消息。例如:
    Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long
    Const WM_KEYDOWN = &H100
    
    Private Sub Command1_Click()
     SendMessage hwndFormB, WM_KEYDOWN, Asc("B"), 0&
    End Sub
    

    这里的hwndFormB是FormB的窗口句柄。第三个参数是按键。详细内容参考Win32 API。
    如果FormB和FormA都是来自同一个项目。你也可以不使用这个API,而是在FormB中定义如下函数:
    Public Sub CallFormBKeyDown(KeyCode As Integer, Shift As Integer)
     Form_KeyDown KeyCode, Shift
    End Sub
    

    这样你直接调用CallFormBKeyDown就可以了。
    
    NewViewStudio的意见:
    将B中的
    FORM_KEYDOWN
    更改为Public(默认的是Private),然后在A中执行
    B.FORM_KEYDOWN
    你的B程序应该是:
    Private FORM_KEYDOWN(....
    只要变更Private为Public
    即可在任何本程序的窗体或模块中调用这个“方法”了(注意,它由事件变成了事件+方法了)
    
    glory的意见:
    可以用自定义事件轻松解决,A中自定义事件,B中以WITHEVENTS声明A窗体对象,A要向B发出消息时RAISE EVENTS 即可。

    

此问题由李海回答。

附加关键字:编程, 源程序, programming, source code, Visual Basic, VB, 键盘与鼠标, mouse, keyboard, hid, 窗体与菜单, form, window, tform

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

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