CBitmap bitmap;
HBITMAP hbm;
//pDoc->GetFileName()是一个BMP文件的名称(包括路径)
hbm = (HBITMAP)LoadImage(NULL, pDoc->GetFileName(), IMAGE_BITMAP, 0, 0,
LR_LOADFROMFILE | LR_CREATEDIBSECTION | LR_DEFAULTSIZE); bitmap.Attach(hbm);
BITMAP bm;
bitmap.GetBitmap((tagBITMAP*)&bm);//好像错在此处
bitmap.SetBitmapDimension(bm.bmWidth,bm.bmHeight); CDC dcImage;
if(!dcImage.CreateCompatibleDC(pDC))
return; CBitmap *oldbmp = dcImage.SelectObject(&bitmap); CSize size = bitmap.GetBitmapDimension();
pDC->BitBlt(0,0,size.cx,size.cy ,&dcImage,50,50,SRCCOPY); dcImage.SelectObject(oldbmp);
DeleteObject(bitmap);
HBITMAP hbm;
//pDoc->GetFileName()是一个BMP文件的名称(包括路径)
hbm = (HBITMAP)LoadImage(NULL, pDoc->GetFileName(), IMAGE_BITMAP, 0, 0,
LR_LOADFROMFILE | LR_CREATEDIBSECTION | LR_DEFAULTSIZE); bitmap.Attach(hbm);
BITMAP bm;
bitmap.GetBitmap((tagBITMAP*)&bm);//好像错在此处
bitmap.SetBitmapDimension(bm.bmWidth,bm.bmHeight); CDC dcImage;
if(!dcImage.CreateCompatibleDC(pDC))
return; CBitmap *oldbmp = dcImage.SelectObject(&bitmap); CSize size = bitmap.GetBitmapDimension();
pDC->BitBlt(0,0,size.cx,size.cy ,&dcImage,50,50,SRCCOPY); dcImage.SelectObject(oldbmp);
DeleteObject(bitmap);
解决方案 »
- vc++定时器
- MFC:通过发送消息让窗口最小化或最大化
- TIFF格式文件的融合问题
- 简单问题::如何在数据库中插入数据!(来者有分)
- 关于取记录集条数的问题
- 如何模拟键盘和鼠标,将鼠标移动到一个窗口的控件上,然后点击左键,(非一个进程,且接受消息窗口不一定是当前焦点窗口.)
- 请教简单的算法(字符串操作)
- 谁能提供一些vfm操作摄像头的教程!!谢谢!
- 为什么在线程入口函数中不能用函数SetDlgItemText()???
- 菜鸟请教大虾!有关hInstance,hWnd,hDC,等句柄的问题???
- 如何才能让view和里面的控件一样大?????
- 可设定颜色的滚动条控件,可设定滚动条颜色,支持水平和垂直
~~~~~~~~~~为什么要强制转换阿?
Getbitmap的形参本来就应该是BITMAP型指针阿
试试我这段代码...
用的是LoadImage读外部文件//显示外部的BMP文件
HBITMAP hbitmap;
hbitmap=(HBITMAP)LoadImage(AfxGetInstanceHandle(),"SAMPLE.BMP",IMAGE_BITMAP,0,0,LR_LOADFROMFILE|LR_CREATEDIBSECTION);
ASSERT(hbitmap);
HBITMAP OldBitmap;
CDC memDC2;
CRect rect;
memDC2.CreateCompatibleDC(pDC);
GetClientRect(rect);
OldBitmap=(HBITMAP)memDC2.SelectObject(hbitmap);
//显示位图
pDC->BitBlt(240,50,rect.Width()-20,rect.Height()-20,&memDC2,0,0,SRCCOPY);
pDC->TextOut(250,150,"显示外部BMP文件");
memDC2.SelectObject(OldBitmap);