如何控制父窗体?
我现在用VB6做了一ActiveX(OCX)控件,用户用PB使用我的控件。现在我想执行我控件功能时不让用户乱点他的界面(也就是我控件所在的容器),但是用户又不想在调用控件功能前Disable界面,之后Enable界面。我现在想在控件中实现:
Dim lParent As Long
lParent = UserControl.ContainerHwnd
Call EnableWindow(lParent, 0)
执行一些处理...
Call EnableWindow(lParent, 1)
结果在我VB的做的演示程序中正常,用他PB程序,仍然能操作容器截面。我自己用PB做了一个DEMO也是一样。
我将lParent = UserControl.ContainerHwnd改为用API getparent .lParent = GetParent(UserControl.hWnd)后VBDEMO和PBDEMO都不行(不知道UserControl.ContainerHwnd和GetParent的区别)
各位大虾有没有什么好的办法,多谢了!
[解决办法]
用ClipCursor控制鼠标
[解决办法]
用EnableWindow完全是可以的,只是我记得PB里面添加OCX控件时必须在Form中添加一个OLE容器控件才行,也就是说你UserControl.parent只是OLE容器控件的句柄,而不是窗体的句柄。要获取窗体句柄必须再取OLE控件的Parent。
Dim lParent As Long
lParent = GetParent(UserControl.ContainerHwnd) 'lParent是窗体句柄
If lParent > 0 Then Call EnableWindow(lParent, 0)