社区
ATL
帖子详情
ATL com组件的OnCreate不会被调用
my_aa
2012-07-27 11:35:18
ATL写的符合组件中用IE调用组件可以执行OnCreate,但是直接用MFC代码插入COM时,不会调用com组件OnCreate,这是什么原因啊,构造函数里是m_bWindowOnly = TRUE;
...全文
207
6
打赏
收藏
ATL com组件的OnCreate不会被调用
ATL写的符合组件中用IE调用组件可以执行OnCreate,但是直接用MFC代码插入COM时,不会调用com组件OnCreate,这是什么原因啊,构造函数里是m_bWindowOnly = TRUE;
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
6 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
ljh_0728
2012-08-01
打赏
举报
回复
打个断点。 不停的删除删除, 做成最精简的 看看还执行不!~
或者, 重新做一个, 然后把你的代码 一个一个的加上去, 看看是哪里出的问题。
这是我的代码 OnCreate 是没有出问题,可以执行的。
int CMySocketVideoVCtrl::OnCreate(LPCREATESTRUCT lpCreateStruct)
{
if (COleControl::OnCreate(lpCreateStruct) == -1)
return -1;
//
m_BtnDisConn.Create(_T("DisConn"),WS_CHILD|WS_VISIBLE|BS_PUSHBUTTON,CRect(0, 50, 0, 50),this,IDC_DISS_CONN);
m_BtnDisConn.EnableWindow(TRUE);
m_BtnConnSV.Create(_T("Connect"),WS_CHILD|WS_VISIBLE|BS_PUSHBUTTON,CRect(0, 50, 0, 50),this,IDC_CONN_SERVER);
m_BtnConnSV.EnableWindow(TRUE);
//mVideoWindow.Create(_T(""), WS_CHILD|WS_VISIBLE|SS_BLACKRECT|SS_SUNKEN, CRect(10,10,150,50), this, IDC_VIDEO_WINDOW);
mVideoWindow.Create(_T("STATIC"), _T("Hi"), WS_CHILD|WS_VISIBLE|SS_BLACKRECT|SS_SUNKEN, CRect(10,10,150,50), this, IDC_VIDEO_WINDOW);
mVideoWindow.EnableWindow(TRUE);
m_CurrState = 1;
xiaoliuzi66
2012-07-31
打赏
举报
回复
呵呵,重新用MFC做一个dialog,把你的控件直接拖进去.
my_aa
2012-07-31
打赏
举报
回复
发现this->m_hWnd为NULL(我那构造函数中有m_bWindowOnly = TRUE)[Quote=引用 3 楼 的回复:]
1.看下FinalConstruct执行了没有;2.如果ie可以执行OnCreate。那就在ie的环境下载OnCreate打一个断点,看下堆栈。研究下OnCreate怎么执行的。3.回到MFC的环境,看下IE执行顺序哪一步没有被执行。总归一句话,执行执行再执行。一定是自己制作这个控件的时候有问题。
[/Quote]
xiaoliuzi66
2012-07-30
打赏
举报
回复
1.看下FinalConstruct执行了没有;2.如果ie可以执行OnCreate。那就在ie的环境下载OnCreate打一个断点,看下堆栈。研究下OnCreate怎么执行的。3.回到MFC的环境,看下IE执行顺序哪一步没有被执行。总归一句话,执行执行再执行。一定是自己制作这个控件的时候有问题。
fishion
2012-07-28
打赏
举报
回复
不知道你说的用代码插入是什么意思。ActiveX组件是能执行的,如果你的还不行的话,可以在OnDraw中进行一些初始化工作,记得用个标志位来标志只执行一次
my_aa
2012-07-28
打赏
举报
回复
[Quote=引用 1 楼 的回复:]
不知道你说的用代码插入是什么意思。ActiveX组件是能执行的,如果你的还不行的话,可以在OnDraw中进行一些初始化工作,记得用个标志位来标志只执行一次
[/Quote]
就是写1个MFC调用那控件的Demo,发现那控件的OnCreate没被执行。用IE写HtML去调用那控件测试,OnCreate会被执行。
使用WTL进行Windows桌面应用开发-第二部
1. 在第一部基础上增加更深入的内容,比如WTL提供的标准Win32窗口和自定义窗口的使用方式.2. 涉及到一些项目开发难题的窗口自定义的解决方案。3. 涉及到Gdiplus绘图的项目开发难题的一些解决方案。4. 推荐使用的第三方跨平台库, 虽然WTL是基于Windows的,但是不妨碍我们使用第三方的库进行开发,减少跨平台开发的学习成本。5. WTL是对Win32窗口的薄封装,库是原微软员工开发,是MFC的替代选择。掌握了WTL表示你已经基本掌握了Win32的窗口编程.6. 使用WTL库完全使用C++开发,不需要其他编程语言,减少学习成本和复杂度,整个WTL是开源可控的。7. WTL库只能使用VS2005以上版本开发, 因为它依赖
ATL
库. 不同的VS版本对应的
atl
版本不一致,建议使用VS2010以上版本开发.
ATL
问题集(前31个)
ATL
问题集(前31个) 这些问题是以前在csdn当版主是一些朋友整理的,今天找到了,贴到这里来! #1 如何使用控件不能改变大小? 答:有时我们需要创建不可改变大小的控件,像那种在运行时没有界面的控件(例:时间控件,SysInfo 等),想做到这种功能的话,请把以下代码加入到控件类的构造函数: m_bAutoSize = TRUE;SIZEL size = {24, 24};
Atl
...
在
ATL
中实现窗口(精)
在
ATL
中实现窗口
ATL
提供了一些工具类以实现窗口,这样在
ATL
组件
里就可以不依赖MFC而很方便的创建窗口。 一、实现对话框
ATL
中有三个模板类可用于创建一个对话框: (1)CSimpleDialog:创建模式对话框, 可以host Windows Controls temp
ATL
7窗口类详细剖析
前言:
ATL
是微软继MFC之后提供的一套C++模板类库,小巧、精妙、效率极高。它的主要作用是为我们编写
COM
/DOM/
COM
+程序提供了丰富的支持。但是
ATL
只能写
COM
么?我以前只是MFC程序员的时候,一直有此误解。但其实
ATL
提供了很多类用来帮助编写WIN32窗口程序,可能没有MFC使用的广泛和方便(当然啦,因为
ATL
本来难度就较一般的C++类库大)。用
ATL
编写WIN32窗口程序有什么...
ATL
布幔下的秘密之窗口类的秘密(果冻)
介绍 很多人认为
ATL
只是用来编写
COM
组件
的,其实你也可以使用
ATL
中的窗口类来创建基于窗口的应用程序。虽然你可以将基于MFC的程序转换为
ATL
,但是
ATL
中对于UI(译注:用户界面)
组件
的支持太少了。所以,这就要求你需要自己编写很多代码。例如,在
ATL
中没有文档/视图,所以在你想使用它的时候就需要自己实现了。在本篇中,我们将要探究一些关于窗口类的秘密,以及
ATL
技术实现的秘密。WTL(Wi...
ATL
3,245
社区成员
48,539
社区内容
发帖
与我相关
我的任务
ATL
ATL,Active Template Library活动(动态)模板库,是一种微软程序库,支持利用C++语言编写ASP代码以及其它ActiveX程序。
复制链接
扫一扫
分享
社区描述
ATL,Active Template Library活动(动态)模板库,是一种微软程序库,支持利用C++语言编写ASP代码以及其它ActiveX程序。
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章