vc和bcb都有这样的函数,vb怎么根据某个控件的句柄得到该控件对象呢?问题的起因是这样的,我窗口子类化combobox的窗口过程,处理某个消息(CB_SHOWDROPDOWN消息)时,需要判断combobox的locked属性,但是sdk里窗口没有locked相关的消息。所以我想根据窗口过程里的hwnd得到combobox控件对象,然后获取locked属性。各位大侠指点一下啊,谢谢!
调试欢乐多
'可以使用CopyMemory ,varptr,objptr来获取
Private Declare Sub CopyMemory Lib "kernel32" Alias "RtlMoveMemory" (pDest As Any, pSource As Any, ByVal ByteLen As Long)
Private Sub Command1_Click()
Dim nObjPtr As Long
nObjPtr = ObjPtr(Me) '假设nObjPtr为对象的地址
Dim o As Object
CopyMemory o, nObjPtr, 4 ' 运行这句之后,o就是指向me的对象
MsgBox o.Name
CopyMemory o, 0&, 4 '释放内存
End Sub
dim X as object for each X in me.controls
if x.hwnd=hwnd then
set getcontrol=x
exit for
end if
next
end function
这样的话.....调用这个getcontrol过程即可.其实别的进程也一样,但是取得对象貌似就不行了.....嘿嘿.