社区
ATL
帖子详情
ActiveX控件类的OnDraw()和OnPait()事件有何区别和联系啊?
ddmor
2003-09-01 10:06:39
我想在控件中绘制图表图形,首先自定义绘图代码函数Draw(),在OnPaint()中调用Draw()绘图,即使用InvalidateRect()控件内图形也不会重绘,产生花图,尝试在OnDraw()事件里调用Draw绘图又会产生错误,唉,我该怎么办呢?麻烦大家帮帮忙,解释一下OnDraw()和OnPait()事件有何区别啊,这样可能会给我一些启示吧
...全文
178
16
打赏
收藏
ActiveX控件类的OnDraw()和OnPait()事件有何区别和联系啊?
我想在控件中绘制图表图形,首先自定义绘图代码函数Draw(),在OnPaint()中调用Draw()绘图,即使用InvalidateRect()控件内图形也不会重绘,产生花图,尝试在OnDraw()事件里调用Draw绘图又会产生错误,唉,我该怎么办呢?麻烦大家帮帮忙,解释一下OnDraw()和OnPait()事件有何区别啊,这样可能会给我一些启示吧
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
16 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
ddmor
2003-10-15
打赏
举报
回复
无人问津啊?
xuslei
2003-10-15
打赏
举报
回复
在控件的OnPaint中,增加代码:bHandled = FALSE;试一试,祝你好运
warmchang
2003-10-15
打赏
举报
回复
我做的控件是在OnPaint()中进行绘制的,可以满足需要的要求。
不过在打印和预览时有些问题,不知楼主遇到过没有,可以交流一下,^_^
Bear_Law
2003-10-15
打赏
举报
回复
2.ActiveX重绘时,只需调用FireViewChange( )即可。
祝好运!
Bear_Law
2003-10-15
打赏
举报
回复
ddmor,我刚刚用VC.NET 2003做过一个能在IE上显示图像的ActiveX,
说一些经验与你分享:
1.绘图时,在控件类的“public”下重载OnDraw( ATL_DRAWINFO& di )
函数。其中di.hdcDraw是当前绘图用的hDC;di.prcBounds是当前ActiveX
的区域,你可以通过以上两个东东“为所欲为”。
ddmor
2003-09-02
打赏
举报
回复
我在OnPait()和OnDraw()同时使用时,如果OnPait()中无绘图代码就会屏蔽OnDraw()绘图代码,即使OnDraw()有绘图代码也会无图形输出。
ldsjlzy
2003-09-02
打赏
举报
回复
OnPait()后会OnDraw().
ddmor
2003-09-01
打赏
举报
回复
用Invalidate(ture)也不会使背景清除使怎么会事啊,还有OnDraw()中使用GetClientRect()会出错,这是为什么呀
Springer
2003-09-01
打赏
举报
回复
OnDraw在设计期和运行期都会响应的函数,
OnPaint只是运行期的重画函数。
关于设计时期的支持VC做得很差,我也在犯愁,简直没法调试。
ddmor
2003-09-01
打赏
举报
回复
还有,在OnDraw()中使用GetClientRect()会出错,这是为什么呀
ddmor
2003-09-01
打赏
举报
回复
还有,通过什么办法GetClientRect()呢。
ddmor
2003-09-01
打赏
举报
回复
有什么办法实现背景擦除啊
Springer
2003-09-01
打赏
举报
回复
嗬嗬,客气了。
一样道理。
你的控件是接受不到消息的。
ddmor
2003-09-01
打赏
举报
回复
在此感谢tantongs(探问量) 师兄,还要问问,用Invalidate(ture)也不会使背景清除使怎么会事啊
Springer
2003-09-01
打赏
举报
回复
呵呵,DELPHI要好一点。不过也有不好的地方,DELPHI是把你的控件翻译成它的控件,默认地支持一些属性,如果你的属性不幸跟他同名,惨,毫不考虑就把你的给扔了。
Springer
2003-09-01
打赏
举报
回复
我也是刚知道点头绪,VC在编辑控件的时候,是不为控件生成句柄的,所以你调用GetClientRect是要出错的。
你用ACTIVEX CONTROL TEST CONTAINER调试你的控件要好一点。
不过也有缺点,我在尝试用DELPHI,不知道行不行。
如何在
ActiveX
控件
中显示对话框界面
1、先建一个
Activex
工程 2、在资源中增加一个对话框,将其属设置为child 和None 3、生成一个基于对话框的
类
4、在含有
OnDraw
函数的
类
中调用该对话框 先在 *.h文件中定义对话框的
类
变量 在要调用
类
的OnCreate函数中添加dlg.Create(IDD_DIALOG1,this);和 dlg.ShowWindow(SW_SHOW); 两个语句,如下所示: int CTestDlgCtrl::OnCreate(LPCREATESTRUCT lpCreateStruct) { if (COleControl::OnCreate(lpCreateStruct) == -1) return -1; dlg.Create(IDD_DIALOG1,this); dlg.ShowWindow(SW_SHOW); return 0; } 在
OnDraw
()中添加 dlg.MoveWindow(rcBounds); 5、在Release模式下编译生成.Ocx文件 6、注册
控件
7、用VC自带的
Activex
contol test contianer工具进行测试
第十八章、
ActiveX
控件
第十八章、
ActiveX
控件
ActiveX
控件
可以看作是一个极小的服务器应用程序,他不能独立运行,必须嵌入到某个容器程序中,与该容器一起运行。 18.1
ActiveX
控件
在本章中我们用VB作为
ActiveX
控件
的测试容器。首先新建一个VB应用程序,加载一个
ActiveX
控件
:Project\Components,弹出如下组件对话框,如图这个对话框列出了本机可用的
ActiveX
控件
,选择Microsoft Winsock Control6.0这一
控件
,该
控件
对应的文件是MSWINSOCK.OCX,OCX是
ActiveX
控件
使用总结
开发环境:vs2015 上网找了很多关于这方面的资料进行学习。 终于给我找到几个比较好的文章。 因为知识比较老。一般是接触硬件和底层的人才会去学习。 参考文章:这是两个比较好的文章
ActiveX
控件
的基本操作方法以及如何在VS2010下使用
控件
https://blog.csdn.net/u014028070/article/details/38424611 c++
ActiveX
基础1:这个讲了如何提供外部接口调用 https://blog.csdn.net/qq445803843/article/de
【小沐学C++】
ActiveX
控件
的MFC实现(VS2017,OpenGL)
文章目录1、简介2、代码编写3、注册
控件
4、结果运行后记 1、简介
ActiveX
控件
是允许网站提供视频和游戏等内容的小应用。 浏览 Web 时,你也可以使用这些小应用与工具栏和股票代码等内容进行交互。 但是,这些应用有时可能出现问题,或者向你提供不需要的内容。 在某些情况下,这些应用可以用来从你的电脑收集信息、破坏电脑上的信息、在未获得你同意的情况下在你的电脑上安装软件或允许其他人远程控制你的电脑。 2、代码编写 打开VS2017,新建一个MFC
ActiveX
控件
工程,如下图所示: (1)FxA
基于MFC的
ActiveX
控件
ActiveX
控件
是基于组件对象模型 (COM) 的可重用软件组件,广泛应用于桌面及Web应用中。在VC下
ActiveX
控件
的开发可以分为三种,一种是直接用COM的API来开发,这样做显然非常的麻烦,对程序员要求也非常高,因此一般是不予考虑的;一种是基于传统的MFC,采用面向对象的方式将COM的基本功能封装在若干MFC的C++
类
中,开发者通过继承这些
类
得到COM支持功能。MFC为广大VC程序员所
ATL
3,245
社区成员
48,539
社区内容
发帖
与我相关
我的任务
ATL
ATL,Active Template Library活动(动态)模板库,是一种微软程序库,支持利用C++语言编写ASP代码以及其它ActiveX程序。
复制链接
扫一扫
分享
社区描述
ATL,Active Template Library活动(动态)模板库,是一种微软程序库,支持利用C++语言编写ASP代码以及其它ActiveX程序。
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章