FIndWindow()在BM_CLICK之后不起作用



我使用SendMessage()发送BM_CLICK到打开弹出窗口的按钮,然后尝试使用FindWindow()找到此窗口的ID。当我手动单击按钮或按enter键一次选择按钮时,我可以找到窗口ID,但是当我发送按钮BM_CLICK消息时,我无法找到窗口。我设了个计时器,以防我找窗户找得太早,但运气不好。实际点击和使用BM_CLICK有什么区别会导致这个问题吗?下面是我的代码:

Call SendMessage(hist_ID, BM_CLICK, 0, 0)
Sleep 500
hist_window_id = FindWindow("ThunderRT6FormDC", "Select History Data")
timeout = 0
Do While hist_window_id = 0
    If timeout < 20 Then
        Sleep 50
        hist_window_id = FindWindow("ThunderRT6FormDC", "Select History Data")
        timeout = timeout + 1
    Else
        MsgBox "System Timeout"
        Exit Function
    End If
Loop

SendMessage()等待消息被处理后再继续。如果按钮单击事件处理程序正在显示一个模态窗口,它可能会阻塞您的VB程序,直到窗口被解除。使用PostMessage()代替。

相关内容

  • 没有找到相关文章

最新更新