JPEG格式的图片和BMP格式的图片显示方法好象不一样,
JPEG用lOADBITMAP函数会失败
JPEG怎么在一个对话框上显示,有源代码吗?谢谢
JPEG用lOADBITMAP函数会失败
JPEG怎么在一个对话框上显示,有源代码吗?谢谢
解决方案 »
- 数据刷新慢半拍
- 很难很难很难的问题(附代码)
- ToolBar在dialog 上显示问题.
- 请问怎样在分割条上加按钮呢?
- 如个加入帮助文件
- 不是淫技奇巧,怎么才能把程序运行空间控制在500k以内?
- 各位大虾请问在VC中CString局部变量必须要用ReleaseBuffer手动释放吗?
- 有谁知道,为什么www.codeproject.com和www.codeguru.com的一些代码,不可以加断点调试,这是为什么呢?回答有分
- unix 下 make 问题求教
- 怪哉:CDatabase的删除问题:"Delete * from tablename"
- 会VC的朋友请进,帮忙up也送分!
- 关于编辑框只能输数字的问题
LPPICTURE gpPicture;
void ShowPicture(CDC* pDC,CString m_strBRoute,int x,int y,int width,int height)
{
HANDLE hFile = CreateFile(m_strBRoute, GENERIC_READ, 0, NULL, OPEN_EXISTING, 0, NULL);
_ASSERTE(INVALID_HANDLE_VALUE != hFile);
DWORD dwFileSize = GetFileSize(hFile, NULL);
_ASSERTE(-1 != dwFileSize);
LPVOID pvData = NULL;
HGLOBAL hGlobal = GlobalAlloc(GMEM_MOVEABLE, dwFileSize);
_ASSERTE(NULL != hGlobal);
pvData = GlobalLock(hGlobal);
_ASSERTE(NULL != pvData);
DWORD dwBytesRead = 0;
BOOL bRead = ReadFile(hFile, pvData, dwFileSize, &dwBytesRead, NULL);
_ASSERTE(FALSE != bRead);
GlobalUnlock(hGlobal);
CloseHandle(hFile);
LPSTREAM pstm = NULL;
HRESULT hr = CreateStreamOnHGlobal(hGlobal, TRUE, &pstm);
_ASSERTE(SUCCEEDED(hr) && pstm);
if (gpPicture)
gpPicture->Release();
hr = OleLoadPicture(pstm, dwFileSize, FALSE, IID_IPicture, (LPVOID *)&gpPicture);
_ASSERTE(SUCCEEDED(hr) && gpPicture);
pstm->Release();
HDC hdc;
hdc=pDC->GetSafeHdc();
if (gpPicture)
{
long hmWidth;
long hmHeight;
gpPicture->get_Width(&hmWidth);
gpPicture->get_Height(&hmHeight);
int nWidth = MulDiv(hmWidth, GetDeviceCaps(hdc, LOGPIXELSX), HIMETRIC_INCH);
int nHeight = MulDiv(hmHeight, GetDeviceCaps(hdc, LOGPIXELSY), HIMETRIC_INCH);
RECT rc;
GetClientRect(&rc);
gpPicture->Render(hdc, x,y, (int)height*hmWidth/hmHeight,height, 0, hmHeight, hmWidth, -hmHeight, &rc);
}}CDC* pDC;
pDC=GetDC();
ShowPicture(pDC,"c:\\test.jpg",400,20,200,190); /*显示插图*/