VC++怎么 根据HTML代码的样子生成图片,就是类似IE网页的打印预览
图片保存出来就行
图片保存出来就行
解决方案 »
- 对话框如何让线程结束时自动调用窗口关闭?
- 数学问题
- 层叠窗口的API函数是什么?期待高手解决……
- _bstr_t类型的数据如何转化成long类型?
- CListCtrl各行的前景色,背景色如何分别设置?(最好不用drawitem)
- 这样的提示应该如何做呀!
- 求助,VC如何显示WORD文档
- 请问如何获取ini文件中的内容?分不够我另开帖子在加。急。。。随时恭候解答。谢谢了。
- 在SDK编程中,如何取得所有控件的句柄?
- 如何在CHtmlView中实现查找,就像ie中的find一样?请各位帮帮忙,有急用??
- 模态对话框对同一个主窗口下非模态showwindow执行的影响
- 关于ATL编写的COM组件中类的导出问题
WB.Navigate(L"http://www.youku.com", 0, 0, 0, 0); IWebBrowser2* pIWebBrowser2 = (IWebBrowser2*)WB.get_Document(); // 得到IWebBrowser2指针
HWND hTridentWnd = NULL;
IOleWindow* pOleWin = NULL;
pIWebBrowser2->QueryInterface(IID_PPV_ARGS(&pOleWin));
pOleWin->GetWindow(&hTridentWnd); // 得到Trident窗口handle (类名"Internet Explorer_Server")
CDC *hImageDC = GetDC();
::PrintWindow(hTridentWnd, *hImageDC, PW_CLIENTONLY);
HBITMAP bmDstp = CreateCompatibleBitmap(*hImageDC, 400, 400); BITMAP bmDst;
GetObject(bmDstp, sizeof(BITMAP), &bmDst); GetObject(*hImageDC, sizeof(BITMAP), &bmDst);
char *pBuf = new char[bmDst.bmWidthBytes*bmDst.bmHeight];
BITMAPINFO bmi;
memset(&bmi, 0, sizeof(BITMAPINFO));
bmi.bmiHeader.biSize = sizeof(BITMAPINFOHEADER);
bmi.bmiHeader.biWidth = bmDst.bmWidth;
bmi.bmiHeader.biHeight = bmDst.bmHeight;
bmi.bmiHeader.biPlanes = 1;
bmi.bmiHeader.biBitCount = bmDst.bmBitsPixel;
bmi.bmiHeader.biCompression = BI_RGB;
bmi.bmiHeader.biSizeImage = 0;
bmi.bmiHeader.biXPelsPerMeter = 0;
bmi.bmiHeader.biYPelsPerMeter = 0;
bmi.bmiHeader.biClrUsed = 0;
bmi.bmiHeader.biClrImportant = 0;
GetDIBits(*hImageDC, (HBITMAP)bmDstp, 0, bmDst.bmHeight, pBuf,
&bmi, DIB_RGB_COLORS); // 写回文件
BITMAPFILEHEADER fileHd; //输出的BMP文件相同,文件头共用
fileHd.bfType = 0x4d42;
fileHd.bfSize = sizeof(fileHd)+sizeof(BITMAPINFOHEADER)+(long int)bmDst.bmWidth*bmDst.bmHeight * 4;
fileHd.bfReserved1 = 0;
fileHd.bfReserved2 = 0;
fileHd.bfOffBits = sizeof(fileHd)+sizeof(BITMAPINFOHEADER); HANDLE hFile;
hFile = CreateFile(L"c:\\11.bmp", GENERIC_WRITE, FILE_SHARE_WRITE, NULL, CREATE_ALWAYS, FILE_ATTRIBUTE_NORMAL, NULL);
DWORD dwBytesWritten;
WriteFile(hFile, &fileHd, sizeof(fileHd), &dwBytesWritten, NULL);
WriteFile(hFile, &bmi, sizeof(bmi), &dwBytesWritten, NULL);
WriteFile(hFile, pBuf, bmDst.bmWidthBytes*bmDst.bmHeight, &dwBytesWritten, NULL);
CloseHandle(hFile);
delete[] pBuf;
我乱抄了一下代码 为什么写出来的图片是全黑色? 求修改