cwebbrowser2 是否属于mfc/如何指定html字符串指直输出?? 1 在mfc结构图中没找到这个类?2 因为vb的webbrowser控件可以指定html字符串直接显示,cwebbrowser2可以吗? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 webbrowser控件是ActiveX控件;添加控件之后,可以声明一个对象CWebBrowser2 m_Browser;m_Browser.Navigate("http://bbs.pediy.com/",NULL,NULL,NULL,NULL);//浏览网页 可能没说清楚,我是希望直接显示html字符串CString sHtml;sHtml = "<html>abc</html>";CWebBrowser2 m_Browser;m_Browser.Navigate(sHtml,NULL,NULL,NULL,NULL);如何能实现这样显示? #include <iostream.h>#include <string.h>#include <afx.h>#include <afxinet.h>int main() { CInternetSession sess(_TEXT("")); CHttpFile* file = (CHttpFile*)sess.OpenURL(_TEXT("http://www.baidu.com")); CString str; while (file->ReadString(str)) { cout << str.GetBuffer(0) << endl; } file->Close(); cin.get(); return 0;} 希望直接显示html字符串?#include <iostream.h>#include <string.h>#include <afx.h>#include <afxinet.h>int main() { CInternetSession sess(_TEXT("")); CHttpFile* file = (CHttpFile*)sess.OpenURL(_TEXT("http://www.baidu.com")); CString str; while (file->ReadString(str)) { cout << str.GetBuffer(0) << endl; } file->Close(); cin.get(); return 0;} 就像这样http://topic.csdn.net/u/20090530/17/f41dd2ee-40d9-4420-a6bb-904da5447e3d.html 这样可以显示了,只是不太清除是否稳定方法是增加DocumentComplete过程由于在里面加了页面刷新的过程,会导致重复刷新,于是就增加个状态变量,限制只执行1次(bShow 和 str 都是成员变量)void CCWebBrowser2Dlg::DocumentComplete(LPDISPATCH pDisp, VARIANT* URL){ if(bShow ==false){ //LPTSTR str = _T("<html><body>abc</body></html>"); //m_browser.Navigate2(COleVariant("about:blank"), NULL, NULL, NULL, NULL); //////////////////////////////////////////// CComPtr< IDispatch > spDoc(m_browser.GetDocument()); ASSERT( spDoc ); CComQIPtr< IPersistStreamInit, &IID_IPersistStreamInit > spPSI( spDoc ); ASSERT(spPSI); LPTSTR lpMem = (LPTSTR)::GlobalAlloc( GPTR, ::lstrlen( str )+1 ); ASSERT( lpMem ); ::lstrcpy( lpMem, str ); CComPtr< IStream > spStream; ::CreateStreamOnHGlobal( lpMem, TRUE, &spStream ); ASSERT( spStream ); HRESULT hr = spPSI->InitNew(); ASSERT( SUCCEEDED(hr) ); hr = spPSI->Load( spStream ); ASSERT( SUCCEEDED(hr) ); //////////////////////////////////////////// bShow = true; }} 帮忙看下这个程序有什么错啊 求助:球面点三维坐标到二维坐标的转换 关于ICSeqCompressFrame使用的问题,请教 关CPropertySheet的问题.. 怎样获取dib图像的灰度信息并更改? png图片转ico图失败问题 请教:如何在两台拨号计算机之间用socket进行文件传送? 为什么CListView中我想不明白的问题 那位高手帮帮忙--对话框添加编辑控件后不能运行怎么办?80分 关于句柄 怎么知道数组所存的元素个数? VS2010代码提示功能
添加控件之后,可以声明一个对象
CWebBrowser2 m_Browser;
m_Browser.Navigate("http://bbs.pediy.com/",NULL,NULL,NULL,NULL);//浏览网页
sHtml = "<html>abc</html>";CWebBrowser2 m_Browser;
m_Browser.Navigate(sHtml,NULL,NULL,NULL,NULL);如何能实现这样显示?
#include <string.h>
#include <afx.h>
#include <afxinet.h>int main()
{
CInternetSession sess(_TEXT(""));
CHttpFile* file = (CHttpFile*)sess.OpenURL(_TEXT("http://www.baidu.com"));
CString str;
while (file->ReadString(str)) {
cout << str.GetBuffer(0) << endl;
}
file->Close();
cin.get();
return 0;
}
#include <iostream.h>
#include <string.h>
#include <afx.h>
#include <afxinet.h>int main()
{
CInternetSession sess(_TEXT(""));
CHttpFile* file = (CHttpFile*)sess.OpenURL(_TEXT("http://www.baidu.com"));
CString str;
while (file->ReadString(str)) {
cout << str.GetBuffer(0) << endl;
}
file->Close();
cin.get();
return 0;
}
方法是增加DocumentComplete过程
由于在里面加了页面刷新的过程,会导致重复刷新,于是就增加个状态变量,限制只执行1次
(bShow 和 str 都是成员变量)void CCWebBrowser2Dlg::DocumentComplete(LPDISPATCH pDisp, VARIANT* URL)
{ if(bShow ==false){
//LPTSTR str = _T("<html><body>abc</body></html>");
//m_browser.Navigate2(COleVariant("about:blank"), NULL, NULL, NULL, NULL); ////////////////////////////////////////////
CComPtr< IDispatch > spDoc(m_browser.GetDocument());
ASSERT( spDoc ); CComQIPtr< IPersistStreamInit, &IID_IPersistStreamInit > spPSI( spDoc );
ASSERT(spPSI); LPTSTR lpMem = (LPTSTR)::GlobalAlloc( GPTR, ::lstrlen( str )+1 );
ASSERT( lpMem );
::lstrcpy( lpMem, str ); CComPtr< IStream > spStream;
::CreateStreamOnHGlobal( lpMem, TRUE, &spStream );
ASSERT( spStream ); HRESULT hr = spPSI->InitNew();
ASSERT( SUCCEEDED(hr) ); hr = spPSI->Load( spStream );
ASSERT( SUCCEEDED(hr) ); ////////////////////////////////////////////
bShow = true;
}}