VB6开发ocx 如何知道是在设计状态下运行
就像VC6开发ocx时,有一个AmbientUserMode值可以知道当前是否是在设计状态但不知VB6如何获得这个值...
就像VC6开发ocx时,有一个 AmbientUserMode值可以知道当前是否是在设计状态
但不知VB6如何获得这个值 展开
但不知VB6如何获得这个值 展开
2个回答
展开全部
将控件对应的工程追加到标准Exe的工程中。标准Exe控件工具栏加入该控件。在Ocx
对应工程画面的Set,Let代码下打断点,你直接在标准Exe工程内的画面画控件的时候,
就会触发控件工程的代码了。
对应工程画面的Set,Let代码下打断点,你直接在标准Exe工程内的画面画控件的时候,
就会触发控件工程的代码了。
追问
我不知你是否理解了我的提问,我需要知道的是,当前控件运行的状态是开发设计状态还是软件运行状态,例如,ocx控件有个Enabled属性,如果当前状态是开发状态,不想将其画成Enabled,如果是软件运行状态则将其画成Enabled.
追答
当前自定义控件对应的属性或者方法,你设置了Set,Let代码接口。自定义控件注册之后,
在加载工程中追加之前的控件做成工程进来。
在使用该控件进行静态画图(设计状态)的时候,就会触发。你没写就触发不了。
当你用代码设置自定义控件的属性或者实例新的控件的时候,软件运行状态也可能会触发,但是这个触发和之前手动将控件拉到画面上激活的代码运行还是有差异的。一个是直接手动触发,一个是代码预设触发。
至于你说的Enabled属性。画成Enabled,意思很难明白你的意思。
展开全部
对于ocx控件的设计,当用户将控件添加到窗体的那一刻起,对控件来说,就已经是运行状态了。控件本身没有办法知道用户的程序是处于设计状态还是设计状态,除非控件本身设置可以由用户更改的属性,用以判断。
追问
事实上,VC++是可以调用AmbientUserMode来判断的,所以不能说ocx不能判断,
另外你可以测试mshflexgrid控件,当你将其属性Allow userResizing设为1-Columns时,你在设计状态是不是调整栏的宽度的,而运行状态可以,所以这就表示一定有一个办法可以知道控件的当前的运行状态。
可问题是,VC++是使用AmbientUseMode来获得,但是VB6.0不知如何获得。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询