GetWindowThreadProcessId到底怎么用

GetWindowThreadProcessId到底怎么用,第1张

在得到窗口句柄后可以通过GetWindowThreadProcessId这个函数来获得窗口所属进程ID和线程ID,从而判断创建窗口的进程和线程。

'VB60代码示例,返回计算器进程PID

Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long

Private Declare Function GetWindowThreadProcessId Lib "user32" (ByVal hwnd As Long, lpdwProcessId As Long) As Long

Private Sub form_load()

 Dim a As Long, b As Long

 a = FindWindow(vbNullString, "计算器")

 GetWindowThreadProcessId a, b

 MsgBox b

End Sub

但是box的insertItem()函数不起作用。

我的线程放在了Global类里,现在需要在线程里对别的窗口内的控件进行 *** 作。

------解决方案--------------------------------------------------------我建议的做法是用FindWindowEx取窗口句柄,然后再用GetDlgItem之类的取控件句柄,通过API进行 *** 作。

------解决方案--------------------------------------------------------线程最好不要对别的窗口内的控件进行 *** 作,而是发送消息给窗口,让主线程来 *** 作界面。

还有你说不起作用可能是你未强制重画,试试插入项后调用一下

CListCtrl::RedrawItems 或

Cwnd::UpdateWindow

以上就是关于GetWindowThreadProcessId到底怎么用全部的内容,包括:GetWindowThreadProcessId到底怎么用、如何获得一个调用某个函数时产生的线程的句柄或ID、等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/9522156.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-29
下一篇2023-04-29

发表评论

登录后才能评论

评论列表(0条)

    保存