activex如何响应dialog事件

lsq8178 2015-06-03 02:21:43
使用MFC创建一个ActiveX控件AAA,然后添加一个Dialog资源,双击添加Dialog类CNewDlg,在AAACtrl.cpp的OnCreate函数中调用CNewDlg的Create()函数,此时activeX控件会展示一个对话框。
如果在对话框中添加一个按钮,在单击时,控件的容器可以接收到此事件通知,请问应该怎么做?也就是说怎么把dialog的操作,通过事件传递给容器,即把dialog的操作与AAACtrl的事件关联起来?
求各位大神指导一下。
...全文
200 8 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
lsq8178 2015-06-11
  • 打赏
  • 举报
回复
这么久了还没人回答 顶一下
lsq8178 2015-06-05
  • 打赏
  • 举报
回复
谁知道啊,指点一下
lsq8178 2015-06-04
  • 打赏
  • 举报
回复

这是我在测试程序中截的图,ActiveX的左边是dialog,没有铺满整个控件,右边留出了空白,我添加了doubleclick事件,doubleclick和dialog的buttong都调用custmEvent,在空白处双击程序正常会弹出提示框,但点击button程序就死了
zgl7903 2015-06-04
  • 打赏
  • 举报
回复
Create 中 已经有this 传入句柄完成 ActiveX应该没有问题了 容器端有没有做事件的映射处理? .h DECLARE_EVENTSINK_MAP void CusmtEventTestactivexctrl(); .cpp BEGIN_EVENTSINK_MAP(CXXXClass, CBaseCWndClass) ON_EVENT(CXXXClass, IDC_ACTIVEXCTRLXXXX, IDXXXX, CXXXClass::CusmtEventTestactivexctrl, VTS_NONE) END_EVENTSINK_MAP() void CXXXClass::CusmtEventTestactivexctrl() { // TODO: 在此处添加消息处理程序代码 }
lsq8178 2015-06-03
  • 打赏
  • 举报
回复
引用 1 楼 zgl7903 的回复:
ActiveX 添加一个事件 如 CustmEvent, 此时在 XXXCtrl 中就会有 FireCustmEvent Create 中传入 XXXCtrl 窗口句柄 ((CActiveXT1Ctrl*) GetParent())->CustmEvent
传句柄可不可以讲详细一点啊,不太懂
lsq8178 2015-06-03
  • 打赏
  • 举报
回复
先谢谢zgl7903 Create函数中我是这样写的:

int CVolumeShowOcxCtrl::OnCreate(LPCREATESTRUCT lpCreateStruct)
{
	if (COleControl::OnCreate(lpCreateStruct) == -1)
		return -1;

	// TODO:  在此添加您专用的创建代码
	m_viewDlg = new CViewDlg();
	m_viewDlg->Create(IDD_DIALOG_MAIN, this);
	return 0;
}
然后在dialog类中这样添加

void CViewDlg::OnBnClickedButtonTest()
{
	// TODO: 在此添加控件通知处理程序代码
	((CVolumeShowOcxCtrl* )GetParent())->FireCustmEvent();
}	
我用ActiveX Control test Container测试时正常,可是用mfc程序测试时一点button程序就死了,是不是哪里不对啊
zgl7903 2015-06-03
  • 打赏
  • 举报
回复
ActiveX 添加一个事件 如 CustmEvent, 此时在 XXXCtrl 中就会有 FireCustmEvent Create 中传入 XXXCtrl 窗口句柄 ((CActiveXT1Ctrl*) GetParent())->FireCustmEvent(……)
zgl7903 2015-06-03
  • 打赏
  • 举报
回复
ActiveX 添加一个事件 如 CustmEvent, 此时在 XXXCtrl 中就会有 FireCustmEvent Create 中传入 XXXCtrl 窗口句柄 ((CActiveXT1Ctrl*) GetParent())->CustmEvent

3,248

社区成员

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

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