关于ActiveX控件在设计模式和运行模式下的问题,高分,在线等

lu_zi 2002-10-22 10:56:59
在ActiveX控件制作中,怎么样实现其在设计模式和运行模式下不同的界面,就是在设计模式下使用一种位图界面,在运行模式下使用其它真正的界面,多谢
...全文
164 9 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
lu_zi 2002-10-24
  • 打赏
  • 举报
回复
牛人,哈哈,多谢了,下次还请多多指教啊
kenwhale 2002-10-23
  • 打赏
  • 举报
回复
用GetAmbientUserMode函数来获取,FALSE就是设计模式,TRUE就是运行模式。在atl中OnDraw中加以区分就可以了,至于绘图方式,不同的容器的方式很不一样,vc只是简单的画一个图,而vb中控件窗体被真正创建。
lu_zi 2002-10-23
  • 打赏
  • 举报
回复
具我所知(不知道对不对),在控件的绘制过程中,包容器会通过元文件方式接收控件的绘图,而控件自身也可响应WM_PAINT消息绘图,在设计方式下,包容器会停止控件的一些反应(如窗口的自绘等),但是他们之间通过怎么样的交互来作到这些呢?
qing_li73 2002-10-22
  • 打赏
  • 举报
回复
see the link below :

http://www.codeproject.com/com/#ActiveX
paul2002 2002-10-22
  • 打赏
  • 举报
回复
仅供参考,没有用过。
考虑到设计时licensing和运行时licensing的不同,当设计时licensing时,包容器会以一个空值bstrKey传给IClassFactory2::CreateInstanceLic

IUnknown* pUnkOuter, //Pointer to controlling unknown of
// aggregated object
IUnknown* pUnkReserved, //Unused. Must be NULL.
REFIID riid, //Reference to the identifier of the
// interface
BSTR bstrKey, //License key provided by
// IClassFactory2::RequestLicKey
void** ppvObject //Address of output variable that receives
// the interface pointer requested in riid
);
如果重载这个方法,并判断bstrKey的值来设一个flag,通过判断flag在OnDraw里写不同的代码来实现你的要求。
ExcuseMe 2002-10-22
  • 打赏
  • 举报
回复
定义宏不就可以解决了吗?
调试用_DEBUG

代码中加上
#ifdef _DEBUG
//调试代码
#ELSE
//发行代码
#ENDIF
ruihuahan 2002-10-22
  • 打赏
  • 举报
回复
up
Free_Man 2002-10-22
  • 打赏
  • 举报
回复
up
lu_zi 2002-10-22
  • 打赏
  • 举报
回复
能不能明示啊,高手?多谢了,我急啊

3,248

社区成员

发帖
与我相关
我的任务
社区描述
ATL,Active Template Library活动(动态)模板库,是一种微软程序库,支持利用C++语言编写ASP代码以及其它ActiveX程序。
社区管理员
  • ATL/ActiveX/COM社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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