CHtmlView的事件怎么映射?

苗疆三刀 2012-06-02 04:16:24
我用MyBrowser继承CHtmlView来定制了一个网页浏览器:
class CMyBrowser : public CLhpHtmlView
{......}
现在在对话框里进行调用:
CmyDlg.h
class CmyDlg : public CDialog
{
......
CMyBrowser m_Browser;
......
}

CmyDlg.cpp
BOOL CmyDlg::OnInitDialog()
{
......
m_Browser.CreateFromStatic(IDC_BROWSR, this);
......
}
现在遇到的问题是:不知道怎么在 CmyDlg 里接收 CMyBrowser 的事件映射,比如:OnStatusTextChange(LPCTSTR lpszText);

如果只是在 CMyBrowser 的类里重载 OnStatusTextChange,我知道怎么做,不过这样操作有一点不好,那就是无法操作 CmyDlg 和CmyDlg上的控件。所以请教各位大大,怎么将CMyBrowser的OnStatusTextChange事件进行映射,让CmyDlg来调用?

比如com里的webbrowser组件,它的事件就是直接进行映射,然后让对话框进行调用的:

CmyDlg.cpp
BEGIN_EVENTSINK_MAP(CmyDlg, CDialog)
ON_EVENT(CmyDlg, IDC_EXPLORER1, 102, CmyDlg::StatusTextChangeExplorer1, VTS_BSTR)
END_EVENTSINK_MAP()
void CmyDlg::StatusTextChangeExplorer1(LPCTSTR Text){}
...全文
147 6 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
Eleven 2012-06-02
  • 打赏
  • 举报
回复
转发消息到对话框类即可
sryteawrt 2012-06-02
  • 打赏
  • 举报
回复
右键你的类 属性 在重写那里 有可以重写的函数 添加代码就行了
如果没有的话 只能自己写
苗疆三刀 2012-06-02
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 的回复:]

引用 4 楼 的回复:

引用 2 楼 的回复:

转发消息到对话框类即可


请教大大,怎么转发?VC应该可以用微软的宏进行事件映射的吧。
他说的是通过自定义消息转出来
[/Quote]

版大,能给个例子吗?对这一块还不熟~
向立天 2012-06-02
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 的回复:]

引用 2 楼 的回复:

转发消息到对话框类即可


请教大大,怎么转发?VC应该可以用微软的宏进行事件映射的吧。
[/Quote]他说的是通过自定义消息转出来
苗疆三刀 2012-06-02
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 的回复:]

转发消息到对话框类即可
[/Quote]

请教大大,怎么转发?VC应该可以用微软的宏进行事件映射的吧。
苗疆三刀 2012-06-02
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 的回复:]

右键你的类 属性 在重写那里 有可以重写的函数 添加代码就行了
如果没有的话 只能自己写
[/Quote]
您好,我要的不是重写,重写我会,我要的是浏览器事件映射,要不然CmyDlg无法接受浏览器事件。

3,248

社区成员

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

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