我谢一个CHtmlCtrl类继承CHtmlView

LIUBING453719140 2012-05-10 09:38:46
我写一个CHtmlCtrl类继承CHtmlView类,基于单文档的,让ABOUT对话框里面的STATIC控件显示浏览器网页,浏览器使显示出来当我点击STATIC控件或者确定按钮时,会出现调式断言失败!!!请求各位大侠帮忙哈,小弟是个新手呢!!下面是部分代码,不知道哪个地方出错呢?

BOOL CHtmlCtrl::CreateFromStatic(UINT nID, CWnd* pParent)
{

CStatic wndStatic; //静态控件对象;
if (!wndStatic.SubclassDlgItem(nID, pParent))
return FALSE;
// 获取静态控制的矩形区域并转换为父窗口的客户区坐标
CRect rc;
wndStatic.GetWindowRect(&rc);
pParent->ScreenToClient(&rc);
wndStatic.DestroyWindow();
// 创建 HTML 控制 (CHtmlView)
return Create(NULL, // 类名;
NULL, // 标题;
(WS_CHILD | WS_VISIBLE ), // 风格;
rc, // 矩形区域;
pParent, // 父窗口;
nID, // 控制的ID号;
NULL); //取消文档框架支持;

}


int CHtmlCtrl::OnMouseActivate(CWnd* pDesktopWnd, UINT nHitTest, UINT message)
{
// TODO: 在此添加消息处理程序代码和/或调用默认值
return CHtmlView::OnMouseActivate(pDesktopWnd, nHitTest, message);
}


void CHtmlCtrl::OnDestroy()
{

CFrameWnd* pFrame = GetParentFrame();
if(pFrame!=NULL&&pFrame->GetActiveView()==this)
// deactive during death
pFrame->SetActiveView(NULL);
//CHtmlView::OnDestroy();
CWnd::OnDestroy();
// TODO: 在此处添加消息处理程序代码
}


BOOL CAboutDlg::OnInitDialog()
{
CDialogEx::OnInitDialog();

// TODO: 在此添加额外的初始化

VERIFY(CDialog::OnInitDialog());
VERIFY(m_page.CreateFromStatic(IDC_STATIC_HTMLVIEW, this));
m_page.LoadFromResource(IDC_STATIC_HTMLVIEW);
m_page.Navigate2(_T("http://www.baidu.com"),NULL,NULL);
return TRUE; // return TRUE unless you set the focus to a control
// 异常: OCX 属性页应返回 FALSE
}
...全文
190 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
hzhang2483 2012-08-05
  • 打赏
  • 举报
回复
return Create(NULL, // 类名;
NULL, // 标题;
(WS_CHILD | WS_VISIBLE ), // 风格;
rc, // 矩形区域;
pParent, // 父窗口;
nID, // 控制的ID号;
NULL); //取消文档框架支持
zgl7903 2012-08-05
  • 打赏
  • 举报
回复

BOOL CHtmlCtrl::CreateFromStatic(UINT nID, CWnd* pParent)
{
ASSERT(pParent);
CWnd *pStatic = CWnd::FromHandle(::GetDlgItem(pParent->GetSafeHwnd(), nID));
ASSERT(pStatic);

CRect rc;
pStatic->GetWindowRect(&rc);
pParent->ScreenToClient(&rc);
pStatic->DestroyWindow();

// 创建 HTML 控制 (CHtmlView)
return Create(NULL, // 类名;
NULL, // 标题;
(WS_CHILD | WS_VISIBLE ), // 风格;
rc, // 矩形区域;
pParent, // 父窗口;
nID, // 控制的ID号;
NULL); //取消文档框架支持;
}

niulei 2012-08-05
  • 打赏
  • 举报
回复
m_page.CreateFromStatic(IDC_STATIC_HTMLVIEW, this)
我总是这句创建不了资源,m_page总是null
牛 魔 王 2012-06-07
  • 打赏
  • 举报
回复
m_page.LoadFromResource(IDC_STATIC_HTMLVIEW);
这句应该是装载HTML资源。

1,649

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 非技术类
社区管理员
  • 非技术类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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