
在得到窗口句柄后可以通过GetWindowThreadProcessId这个函数来获得窗口所属进程ID和线程ID,从而判断创建窗口的进程和线程。
'VB60代码示例,返回计算器进程PIDPrivate 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、等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)