vb 制作ocx控件 怎么让ocx退出整个程序
一个exe
让exe加载控件后,点一下ocx中form1的一个按钮,整个exe程序就退出
楼下懂不懂?
是ocx中的一个form1窗体
dll 不支持end命令 展开
提问的人描述问题不清楚!我来回答!
首先这个控件是一个容器控件!
见下图,uTest是这个ocx控件,Frmtest会集成在控件里,在Project1工程里我们调用uTest控件。
如果这个控件是你设计的话,你可以在Frmtest里增加一个object变量(FrmOwner)用来记录Project1里的Form1,然后在 Frmtest里button事件里调用unload FrmOwner就可以了!
下面是简单的代码样本!
'FrmTest的代码
Public frmOwner As Object'变量记录最后调用的窗体,即project1工程里的Form1
Private Sub Command1_Click()
'End command can not be used in DLL function这就是提问者的意思!
On Error Resume Next
Unload frmOwner
End Sub
'下面是控件代码,我随便拖了两个button
Option Explicit
Private Declare Function SetParent Lib "user32" (ByVal hWndChild As Long, ByVal hWndNewParent As Long) As Long
Public Property Get Hwnd() As Long
Hwnd = UserControl.Hwnd
End Property
Private Sub UserControl_Resize()
On Error Resume Next
FrmTest.Show
SetParent FrmTest.Hwnd, UserControl.Hwnd'把frmtest强制设置到控件里面
Set FrmTest.frmOwner = UserControl.Parent'这句很重要,不然Frmtest中button事件不起作用!UserControl.Parent返回的就是Useroncontrol所在的窗体对象
End Sub