CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
山寨机中的战斗机! 程序优化工程师到底对IT界有没有贡献
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  VC/MFC >  ATL/ActiveX/COM

ActiveX控件界面问题

楼主helyboy_1999()2006-07-03 21:17:31 在 VC/MFC / ATL/ActiveX/COM 提问

我现在正在做一个activex控件的项目,要求它具有和.exe应用程序一样的界面,所有的操作完全在这个控件中完成,然后把这个控件放到IE中供远程调用,不打算用脚本语言来调用其提供的方法的形式,想直接在控件中完成消息响应,其实说白了就是想用activex控件实现.exe应用程序的功能!!  
   
          现在我的问题是这个界面怎么去完成,我所知道的有两个办法:1.在ondraw()函数中绘制这个控件,但是并不是所有的控件都能画出来,并且这样相对于拖放控件来说简直是太麻烦了,这样做还有问题就是感觉画的控件很奇怪非常不正常,同时如果我画了一个按钮我想响应按这个按钮的事件,我怎么才能得到这个按钮的ID呢.2.用create函数动态创建控件,这种办法到是好响应消息,我是在OnCreate()中动态创建的一系列控件,界面到是可以比较好的创建出来,但是当我把整个控件加在IE上时,初次显示比较正常,但是如果我把IE最小化后再最大化(或者有其它东西覆盖界面后),整个界面在没有控件的地方就显示的是桌面的背景(或覆盖东西的颜色),但是如果我只是按IE的还原按钮再按最大化按钮整个界面就完全正常.我是响应了Onpaint()的,如果不响应Onpaint()的话界面就不会出现这个问题,但是显示图象时又会有问题.但是奇怪的是我并没有在Onpaint()中加任何代码!我想请教如何解决这个问题在网上找了很久也没有找到解决办法.  
   
          还有我看到有些别人做的activex控件界面非常的好和.exe应用程序界面完全一样,我想知道这个技术是怎么实现的!想请教大家,谢谢!  
   
            请大家多帮我想想办法吧!我很急呀,多谢,拜托!  
   
  问题点数:20、回复次数:10Top

1 楼whwjn(哈哈)回复于 2006-07-04 01:15:57 得分 0

gzTop

2 楼whwjn(哈哈)回复于 2006-07-04 03:00:28 得分 0

http://www.evget.com/articles/evget_1446.htmlTop

3 楼simonzone(马叉虫)回复于 2006-07-04 13:18:34 得分 0

参考例子:  
  http://www.codeguru.com/Cpp/COM-Tech/activex/Top

4 楼hxc666()回复于 2006-07-27 10:50:04 得分 0

我顶啊!  
  我也在学习这个内容  
  高手们多说点吧Top

5 楼sjl_cn(稻田守望)回复于 2006-07-28 08:41:05 得分 0

可以在ActiveX中使用FormView,但是3楼的文章中有点问题,有些地方需要修改Top

6 楼linamu(林中一木)回复于 2006-07-28 11:06:00 得分 0

学习Top

7 楼yuhan_0110(欲寒)回复于 2006-07-31 10:45:34 得分 0

但是当我把整个控件加在IE上时,初次显示比较正常,但是如果我把IE最小化后再最大化(或者有其它东西覆盖界面后),整个界面在没有控件的地方就显示的是桌面的背景(或覆盖东西的颜色),但是如果我只是按IE的还原按钮再按最大化按钮整个界面就完全正常.我是响应了Onpaint()的,如果不响应Onpaint()的话界面就不会出现这个问题,但是显示图象时又会有问题.但是奇怪的是我并没有在Onpaint()中加任何代码!我想请教如何解决这个问题在网上找了很久也没有找到解决办法.  
   
  在OnDraw()中  
  void   C×××Ctrl::OnDraw(CDC*   pdc,   const   CRect&   rcBounds,   const   CRect&   rcInvalid)  
  {  
          CBrush   BackBrush(GetBackColor());  
          pdc->FillRect(rcBounds,   &BackBrush);  
          if(m_bCreate)  
          {  
  m_***.MoveWindow(**);  
          }  
  }  
  Top

8 楼kyozpeng(遍历红尘)回复于 2006-08-04 13:53:02 得分 0

可以把窗口控件写成dll,动态链接库,然后在activex中调用即可。Top

9 楼yuhan_0110(欲寒)回复于 2006-08-14 14:02:05 得分 0

楼上的方法很好,这样界面就很灵活了!Top

10 楼wegotnothingtolosebu(t this is a dirty joke...)回复于 2006-08-18 11:57:35 得分 0

关注,菜鸟问一下,如果写成Dll的话,发布的时候这个Dll要怎么发布?需要处理吗?Top

相关问题

关键词

得分解答快速导航

  • 帖主:helyboy_1999

相关链接

  • Visual C++类图书
  • Visual C++类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo