100分dialog中嵌入Html出现的有关问题

100分求助:dialog中嵌入Html出现的问题
创建一个dialog,添加text control控件
从CHtmlView派生了CCtrlHtml类,在对话框初始化的时候创建html
生成成功,运行的时候报错
“dlgHtml.exe 中的 0x00413826 处未处理的异常: 0xC0000005: 读取位置 0xcccccccc 时发生访问冲突”
跟踪发现0xcccccccc 为CCtrlHtml类指针m_page的值
主要实现代码也不太多,请大家帮忙看看
主要代码如下:
CCtrlHtml头文件:
C/C++ code

class CCtrlHtml : public CHtmlView
{
//略
    DECLARE_MESSAGE_MAP()
public:
    BOOL    CreateFromStatic(UINT nID,CWnd* pParent);
    virtual void PostNcDestroy() { }
public:
    afx_msg void OnDestroy();
    afx_msg int OnMouseActivate(CWnd* pDesktopWnd, UINT nHitTest, UINT message);
public:
    virtual void OnBeforeNavigate2(    LPCTSTR lpszURL, DWORD nFlags, LPCTSTR lpszTargetFrameName,
                                    CByteArray& baPostedData, LPCTSTR lpszHeaders, BOOL* pbCancel);
    virtual void OnAppCmd(LPCTSTR lpszWhere) { }
};


CCtrlHtml实现文件:
C/C++ code

BOOL CCtrlHtml::CreateFromStatic(UINT nID, CWnd* pParent)
{
    CStatic wndStatic;
    if (!wndStatic.SubclassDlgItem(nID, pParent))
        return FALSE;
    // 获取静态控件的尺寸,并销毁该控件的窗口;
    CRect rc;
    wndStatic.GetWindowRect(&rc);
    pParent->ScreenToClient(&rc);
    wndStatic.DestroyWindow();
    // 创建一个HtmlView控件;
    return Create(    NULL, // class name
                    NULL, // title
                    (WS_CHILD | WS_VISIBLE ), // style
                    rc, // rectangle
                    pParent, // parent
                    nID, // control ID
                    NULL); // frame/doc context not used
}



对话框初始化函数
C/C++ code

BOOL CdlgHtmlDlg::OnInitDialog()
{
//略
    if( m_page )//对话框头文件有如下定义CCtrlHtml    *m_page;
    {
        m_html = "http://www.baidu.com";
        m_szTitle = "网页测试";
        
        //VERIFY(m_page->CreateFromStatic(IDC_STATIC_HTMLVIEW, this));
        m_page->CreateFromStatic(IDC_STATIC_HTML, this);
        CRect    rect;
        GetClientRect( rect );
                //if( m_page && m_page->GetSafeHwnd() && m_page->IsWindowVisible() )
        this->SetWindowText( m_szTitle );
        m_page->MoveWindow( rect.left,rect.top,rect.right,rect.bottom );
        m_page->Navigate( m_html );
    }
    return TRUE;  // 除非将焦点设置到控件,否则返回 TRUE
}



------解决方案--------------------
0xcccccccc表示指针在使用之前未赋值。
在进行有条件初始化的时候不要跳过这种指针。
------解决方案--------------------
CRect rect;
GetClientRect(&rect);
CFrame *pFrame = new CFrameWnd;
CHtmlView *pView = NULL;
if (pFrame != NULL)
{
pFrame->Create(NULL,NULL,WS_VISIBLE|WS_CHILD,rect,this);

CCreateContext cc;
cc.m_pCurrentDoc = new CMyDocumentEx(); //自己重载的一个CDocument类,使其构造函数//和析构函数为public类型就行了
cc.m_pNewViewClass = RUNTIME_CLASS(CGMSHtmlView);

pView=(CHtmlView*)(pFrame->CreateView(&cc));
pView->UpdateWindow();
pView->m_pMainDlg = m_pParentWnd;
pView->m_pHtmlDlg = this;
if (!m_strUrl.IsEmpty())
{
m_pView->Navigate2(m_strUrl);
}

//获取浏览器的对象指针
/* LPDISPATCH pDispatch = m_pView->GetApplication();
ASSERT(pDispatch != NULL);
pDispatch->QueryInterface(IID_IWebBrowser2,(void **)&m_pIWebBroswer);
*/

}//
------解决方案--------------------
你看看CreateFromStatic在CCtrlHtml类中哪里调用过,如果调用过一般不能这样使用的.