vb 制作ocx控件 怎么让ocx退出整个程序

一个ocx(里面有两个窗体UserControl1和form1)一个exe让exe加载控件后,点一下ocx中form1的一个按钮,整个exe程序就退出楼下懂不懂?是ocx... 一个ocx (里面有两个窗体UserControl1 和 form1)
一个exe
让exe加载控件后,点一下ocx中form1的一个按钮,整个exe程序就退出
楼下懂不懂?
是ocx中的一个form1窗体
dll 不支持end命令
展开
 我来答
RoyZuo505
2012-11-06
知道答主
回答量:12
采纳率:0%
帮助的人:16.8万
展开全部

提问的人描述问题不清楚!我来回答!

首先这个控件是一个容器控件!

见下图,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

 

 

 

 

没名也要进
2012-11-06 · TA获得超过278个赞
知道小有建树答主
回答量:202
采纳率:0%
帮助的人:146万
展开全部
一般控件就完成控件自己的功能,这才是封装的意义。
用控件完成主程序的功能,这个思路比较奇怪。
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
12105412
2012-11-06 · TA获得超过817个赞
知道小有建树答主
回答量:1349
采纳率:0%
帮助的人:839万
展开全部
在那个按钮点击命令里写上

END

完事。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式