怎样才能使发送的回车键消息有效?(不要用sendkey或鼠标点击消息)
VB程序如下:Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, ByVal lParam As String) As Long
Private Const WM_CHAR = &H102
Private Const WM_KEYDOWN = &H100Private Sub Command1_Click()
SendMessage Command2.hwnd, WM_KEYDOWN, 13, &H11C0001
SendMessage Command2.hwnd, WM_CHAR, 13, &H11C0001
End SubPrivate Sub Command2_Click()
Text1.text = "已按下"
End Sub
VB程序如下:Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, ByVal lParam As String) As Long
Private Const WM_CHAR = &H102
Private Const WM_KEYDOWN = &H100Private Sub Command1_Click()
SendMessage Command2.hwnd, WM_KEYDOWN, 13, &H11C0001
SendMessage Command2.hwnd, WM_CHAR, 13, &H11C0001
End SubPrivate Sub Command2_Click()
Text1.text = "已按下"
End Sub
请问手工按下回车键时,除了发送WM_KEYDOWN、WM_CHAR、BM_CLICK三个消息之外,还有没有其他消息发出?
另外我查了一下,发现BM_CLICK是模拟鼠标点击的动作,而不是按键动作,有没有办法通过模拟按键的动作使按钮生效呢?
Keybd_Event(13,0,2,0) ; //释放回车
如果不计抬起的话,发送WM_KEYDOWN加WM_CHAR消息应该够了吧?
为什么还不能完全模拟按下回车键的动作呢?
为什么呢?
Private Sub Command2_KeyDown(Key: Word) ‘ 忘了VB了,参数大概是这样写吧
if Key = 13 then
Text1.text = "已按下"
end if
End Sub
我猜想是不是这样:按下回车后,经过消息循环中的TranslateMessage把它转换成BM_CLICK消息了?
…………
不懂,
学习中ing