OCX 界面对话框 无法显示webBrower 大家帮忙看看?
我需要在一个OCX里面显示一个浏览器的对话框,
1 先资源视图先向工程里插入了一个IDD_FORMVIEW的非模态对话框 (IDD_FORMVIEW)
2 类向导为这个对话框创建了对应了一个类CMyDlg
3 在对话框上导入了Registered ActiveX Controls里面的“Microsoft Web 浏览器” (IDC_EXPLORER1)并且在对话框类CMyDlg中关联了一个 成员变量m_Explores
4 在CxxxCtrl(向导生成的类)中添加了WM_CREATE的消息处理函数
int CTestOcxCtrl::OnCreate(LPCREATESTRUCT lpCreateStruct)
{
if (COleControl::OnCreate(lpCreateStruct) == -1)
return -1;
m_pDialog = new CMyDlg(); //CMyDlg* m_pDialog
//Check if new succeeded and we got a valid pointer to a dialog object
if(m_pDialog != NULL)
{
BOOL ret = m_pDialog->Create(IDD_FORMVIEW,this);
if(!ret) //Create failed.
{
AfxMessageBox(_T("Error creating Dialog"));
return -1;
}
m_pDialog->ShowWindow(SW_SHOW);
}
else
AfxMessageBox(_T("Error Creating Dialog Object"));
return 0;
}
6 在CMyDlg::OnInitDialog中添加如下代码
BOOL CMyDlg::OnInitDialog()
{
CDialog::OnInitDialog();
//AfxMessageBox("Enter CMyDlg OnInitDialog");
CString strURL =_T( "http://www.sina.com.cn");
m_varURL = (_variant_t)(LPCTSTR)strURL;
m_Explorer.Navigate2(&m_varURL, NULL, NULL, NULL, NULL);
//m_Explorer.SetVisible(TRUE);
return TRUE; // return TRUE unless you set the focus to a control
// EXCEPTION: OCX Property Pages should return FALSE
}
编译可通过,可是程序运行起来却无法显示出来我嵌入到对话框中的WebBrower而且,程序起来后,出几个提示框后,会自动异常退出
调试跟进去后发现
执行完 m_pDialog = new CMyDlg(); 该语句后调试窗口m_pDialog的Value 以红色字体标出0x04581450
hWnd=0x00000000
执行完 BOOL ret = m_pDialog->Create(IDD_FORMVIEW,this);后ret = 0
这是怎么回事呢?
如果我把跟WebBrower 相关的全都删除掉,程序能正确的进行下去(可以显示一个空白的面板),所以我考虑应该是WebBrower没设置好,高人们帮帮忙看看我的问题到底出那里,会不会我是我的COM库没有初始化。