找了一些有关gdi的一些代码 其中加载图片的方式都是用LoadBitmap从资源里加载,我想从一个外部文件加载该如何实现呢?
解决方案 »
- 关于获取应用程序在任务栏的按钮坐标的问题!
- 【请教】Unicode的DLL和Multi Byte的DLL内存空间上区别在哪里?
- 自定义类,创建对象出现的奇怪的问题~~~~在线等。。。急
- 如何使鼠标在屏幕的指定区域按一定时间间隔自己移动?
- 文本文件的问题
- 请问,如何在一个窗体中直接控制另一个窗体中的控件(VC)
- error LNK2005怎麽解决,
- 怎样判断系统安装了哪些补丁
- 怎样在对话框中按回车不关闭对话框?
- 请问通过局域网上网的机器与因特网上的某台机器如何使用TCP或UDP互联,一定要使用SOCKET4/5代理吗?如果不用那怎么办?
- 菜鸟求救 Directshow Timeline怎么保存到文件!!!!中间就一段音频。。。
- win32的消息的问题
IPicture *pPicture;//声明OLE提供的图像对象
IStream *pStrm;//声明一个流对象
CFileStatus fstatus;
CFile file;
LONG cb;
if((file.Open("D:/sunset.jpg",CFile::modeRead))&&(file.GetStatus("D:/sunset.jpg",fstatus))&&((cb=fstatus.m_size)!=-1))
{
HGLOBAL hGlobal=GlobalAlloc(GMEM_MOVEABLE,cb);
LPVOID pvData=NULL;
CDC *pDC;
pDC=(this->GetActiveWindow())->GetDC();//得到活动视图的设备上下文
if(hGlobal!=NULL)
{
if((pvData=GlobalLock(hGlobal))!=NULL)
{
file.Read(pvData,cb);//将图像文件数据读入内存
GlobalUnlock(hGlobal);
CreateStreamOnHGlobal(hGlobal,TRUE,&pStrm);//创建流对象
if(SUCCEEDED(OleLoadPicture(pStrm,fstatus.m_size,TRUE,IID_IPicture,(LPVOID*)&pPicture))) //根据流对象pStrm初始化图像对象pPicture
{
OLE_XSIZE_HIMETRIC Width;
OLE_YSIZE_HIMETRIC Height;
pPicture->get_Width(&Width);
pPicture->get_Height(&Height);
//得到图像的宽、高尺寸,注意该尺寸的逻辑单位不是图像的像素
if(FAILED(pPicture->Render(*pDC,100,80,300,230,0,Height,Width,-Height,NULL)))
//在初始点(100,80)宽为200、高为150的矩形中显示图形
AfxMessageBox("Failed to render the picture");
pPicture->Release();
}
else
AfxMessageBox("Error loadimg picture from stream!");
}
}
}
else
AfxMessageBox("Can open image file!");