{
// TODO: 在此添加专用代码和/或调用基类
//CHtmlView::OnActivateFrame(nState,pDeactivateFrame);
}
增加一个成员函数CreateFromCtrl:
public:
BOOL CreateFromCtrl(UINT nID, CWnd* pParent);
这个函数通过对话框上的控件创建一个CHTMLCtrl控件,目的是在对话框设计的时候便于布局:
BOOL CHTMLCtrl::CreateFromCtrl(UINT nID,CWnd* pParent)
{
if (!pParent || !pParent->GetSafeHwnd())
return FALSE;
CWnd *pCtrl = pParent->GetDlgItem(nID);
if (!pCtrl)
return FALSE;
CRect rcCtrl;
pCtrl->GetWindowRect(rcCtrl);
pParent->ScreenToClient(rcCtrl);
UINT style = ::GetWindowLong(pCtrl->GetSafeHwnd(), GWL_STYLE);
pCtrl->DestroyWindow();
return Create(NULL, NULL, style |WS_CHILD | WS_VISIBLE, rcCtrl, pParent, nID, NULL);
}
还应注意,默认的从CView继承的类,其构造函数和析构函数是protected的,需要修改成public。
还应注意,默认的从CView继承的类,其构造函数和析构函数是protected的,需要修改成public。
public:
CHTMLCtrl();//动态创建所使用的受保护的构造函数
virtual ~CHTMLCtrl();
在对话框头文件中,插入包含文件:
#include "htmlctrl.h"
增加CHTMLCtrl类型的成员变量:
CHTMLCtrl m_ctlHTML;
在对话框初始化的时候,创建这个CHTMLCtrl控件:
BOOL CMyDialog::OnInitDialog()
{
CDialog::OnInitDialog();
...
m_ctlHTML.CreateFromCtrl(IDC_HTML, this);
return TRUE;
}
下面,再添加一个按钮,在按钮的消息响应函数中打开HTML文件:
void CMyDialog::OnSysCommand(UINT nID, LPARAM lParam)
{
if ((nID & 0xFFF0) == IDM_ABOUTBOX)
{
CAboutDlg dlgAbout;
dlgAbout.DoModal();
}
else
{
CDialog::OnSysCommand(nID, lParam);
}
}
在CFormView或对话框中动态添加CScrollView、CFormView,布布扣,bubuko.com
在CFormView或对话框中动态添加CScrollView、CFormView
本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/jisuanjixue/article-32922-4.html
严重警告