 |
你可以使用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。
|