请教高手级人物,菜鸟勿扰

tywong 2005-06-24 05:23:20
有关在dll中动态向主程序窗体加载控件的问题

dll中类名ClsTest 工程名MyTest
dim withevents objCmd as VB.CommandButton

public sub Init(frm as Form)
set objCmd=form.controls.add("VB.CommandButton","objCmd").
ojcmd.visible=true
end sub

在dll中写
sub objCmd_CLick()
msgbox "testing"
end sub

编译为MyTest.dll

然后另开一工程调用这个dll
主程序:

添加一Form窗体。一按钮CommandButton1
private Sub CommandButton_Click()
dim aa as object
set aa=createobject("MyTest.dll")
aa.init me
end sub

问题: 添加的按钮的单击事件没有响应,就是没有弹出testing消息。
...全文
246 27 打赏 收藏 转发到动态 举报
写回复
用AI写文章
27 条回复
切换为时间正序
请发表友善的回复…
发表回复
tywong 2005-06-27
  • 打赏
  • 举报
回复
我这里的Click事件是必须要的,因为这个dll是作为插件来由主程序调用的,所以点击处理事件不能放在主程序中的。
province_ 2005-06-27
  • 打赏
  • 举报
回复
那就按我后面补充的为创建的BUTTON写消息处理过程。没其他好办法了。
province_ 2005-06-26
  • 打赏
  • 举报
回复
补充一点,如果真要感知用户CLICK事件,就必须为你创建的BUTTON写消息处理函数,但这种办法和要类去接收用户事件还是一点关系都没有。
province_ 2005-06-26
  • 打赏
  • 举报
回复
楼主你搞混了事件这个概念,所谓事件其实是一个实例化的类对象提供给外部调用者的一个接口,可是你却要这个类去接收CLICK事件,能行吗?在类里只能RAISE一个设定事件,然后外部调用者感知该事件后再决定执行哪些代码。所以你的所谓objCmd_CLick()只能看成是该类的一个公共方法,调用的人可以使用,但和你的所谓CLICK事件没有任何关系!

你看你一个简单的求助帖就因为你的多余的话引来这么多无谓的争执,其实很多你不懂的东西并不见得就是什么高深的问题,平常心就可以了。
zhujiechang 2005-06-26
  • 打赏
  • 举报
回复
public sub Init(frm as Form)
set objCmd=frm.controls.add("VB.CommandButton","objCmd").
'left,top,height,width需要指定
ojcmd.visible=true
end sub
w3k 2005-06-25
  • 打赏
  • 举报
回复
" : "
嘎嘎…………嘎嘎
噶……噶


嘿!不懂也,…………
有哥 2005-06-25
  • 打赏
  • 举报
回复
好象只是一个低级错误
public sub Init(frm as Form)
set objCmd=form.controls.add("VB.CommandButton","objCmd").
' ^^^^^
ojcmd.visible=true
end sub
应该是 frm.controls.add 吧
wenhongL 2005-06-25
  • 打赏
  • 举报
回复
鄙视。
I_Love_VB2003 2005-06-25
  • 打赏
  • 举报
回复
菜鸟顶一下表示不支持你...
daisy8675 2005-06-24
  • 打赏
  • 举报
回复
本人,没有蔑视任何人的意思。所谓菜鸟就是那种不看问题本身,随便跟贴的人。我觉得我的问题已经说的很明白了,那种随便跟贴的人根本就没有去研究我的问题所在。

//你已经有了污蔑人的意思.

其实你随便按我写的步骤演绎一下,就可以看到效果,纸上谈兵是没用的。
//有了你这层意思,连与你纸上谈兵都是不屑.

对于你这样的问题,高手是肯定不屑的,只能有偶这种菜鸟飞来飞去继续聒噪一下.^O^
ccym2002 2005-06-24
  • 打赏
  • 举报
回复
我不是高手,不小心进来!!
不过想看看是什么高手级的问题/
……
byhum 2005-06-24
  • 打赏
  • 举报
回复
对不起,有点过份,情绪有点激动,道歉
大家都是来学习讨论的,有什么高手不高手的
3q2008Com 2005-06-24
  • 打赏
  • 举报
回复
菜鸟 来看看 认为是高手的人是什么问题


你不也是刚刚才学 掉DLL里的东西吗!

但楼上大哥别骂人啊 他是也菜鸟的 和我们一样的
byhum 2005-06-24
  • 打赏
  • 举报
回复
装比犯

真TMD了不起
zlj113 2005-06-24
  • 打赏
  • 举报
回复
我 不是菜鸟

















我是小鸟来的
chinachong 2005-06-24
  • 打赏
  • 举报
回复
我是菜鸟,怎么着 我就回复了 咋地
你的问题我研究了怎么着
我很早就会了 但是我是菜鸟 我不想告诉你
tywong 2005-06-24
  • 打赏
  • 举报
回复
回JunKi:

那个事件不用在过程中触发,等在调用程序中的Form中加载后,手动点击,我要的就是看能不能由点击来触发自定义的那个objCmd_click事件。


另外:

本人,没有蔑视任何人的意思。所谓菜鸟就是那种不看问题本身,随便跟贴的人。我觉得我的问题已经说的很明白了,那种随便跟贴的人根本就没有去研究我的问题所在。

其实你随便按我写的步骤演绎一下,就可以看到效果,纸上谈兵是没用的。
daisy8675 2005-06-24
  • 打赏
  • 举报
回复
嘎嘎嘎嘎嘎嘎嘎嘎~~

木其他的,是故意近来骚扰的~~

吾飞~~~
ljhdi 2005-06-24
  • 打赏
  • 举报
回复
专业路过
junki 2005-06-24
  • 打赏
  • 举报
回复
sub objCmd_CLick()
msgbox "testing"
end sub
==========================================================
你没有事件触发它,怎么会运行呢?

dim withevents objCmd as VB.CommandButton

public sub Init(frm as Form)
set objCmd=form.controls.add("VB.CommandButton","objCmd").
ojcmd.visible=true
end sub

在dll中写
sub objCmd_CLick()
msgbox "testing"
end sub

编译为MyTest.dll

然后另开一工程调用这个dll
主程序:

添加一Form窗体。一按钮CommandButton1
private Sub CommandButton_Click()
dim aa as ClsTest
set aa=New ClsTest
aa.init me
call objCmd_CLick
end sub
加载更多回复(7)

7,763

社区成员

发帖
与我相关
我的任务
社区描述
VB 基础类
社区管理员
  • VB基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧