描述:
在OnInitDialog中创建线程ThreadWeb = CreateThread(NULL, 0, VisitWeb, (LPVOID)this, 0, &d);
线程中调用ie控件,访问网页, m_web.Navigate("http://www.163.com/", NULL, NULL, NULL, NULL);
结果在IE7.0下出错,IE6.0下没有问题。
出错信息:"无法找到http://www.163.com",请确保路径或Internet地址正确
点击确定后,显示Runtime Error
//////////////////////////////////////////
BOOL CGGClickerDlg::OnInitDialog()
{
.....
DWORD d = 0;
ThreadWeb = CreateThread(NULL, 0, VisitWeb, (LPVOID)this, 0, &d);
return TRUE;
}
/////////////////////////////////////////////////////////////////
DWORD WINAPI VisitWeb(LPVOID lpParam)
{
CGGClickerDlg *pDlg = (CGGClickerDlg *)lpParam;
while(1)
{
if(pDlg->GetSafeHwnd())
{
pDlg->Visit();
Sleep(10000);
}
}
return 0;
}
////////////////////////////////////////////////////////
void CGGClickerDlg::Visit()
{
CRect rc;
GetClientRect(&rc);
m_web.MoveWindow(&rc);
Sleep(500);
m_web.Navigate("http://www.163.com/", NULL, NULL, NULL, NULL);
}
解决方案1:
VisitWeb的函数里不要直接调用Visit()去显示IE内容,发个自己定义消息给自己的窗口,收到这个消息后再去调用m_web.Navigate( "http://www.163.com/ ", NULL, NULL, NULL, NULL);