大侠帮我解决一下问题吧,查看我的提问《MFC如何使用LoadBitmapW从文件载入位图》
1个回答
展开全部
//1、在视图类中添加一个成员变量HANDLE m_hBmp
//2、在视图类的构造函数中调用LoadImage方法从磁盘中加载文件
//3、在OnDraw中绘制位图
CMyView::CMyView()
{
//加载位图
m_hBmp = LoadImage(NULL,"书.bmp",IMAGE_BITMAP,0,0,LR_LOADFROMFILE);
//书.bmp是路径,这里我已经把图复制到工程里面了。
// C++中\\表示“\”,要为“E:\\位图\\书.bmp”
}
void CMyView::OnDraw(CDC* pDC)
{
CMyDoc* pDoc = GetDocument();
ASSERT_VALID(pDoc);
CBitmap bmp; //定义一个位图对象
bmp.Attach(m_hBmp); //将位图关联到位图句柄上
CDC memDC; //定义一个设备上下文
memDC.CreateCompatibleDC(pDC); //创建兼容的设备上下文
memDC.SelectObject(&bmp); //选中位图对象
BITMAP BitInfo; //定义一个位图结构体
bmp.GetBitmap(&BitInfo); //获取位图信息
int x = BitInfo.bmWidth; //获取位图宽度
int y = BitInfo.bmHeight; //获取位图高度
pDC->BitBlt(0,0,x,y,&memDC,0,0,SRCCOPY); //向窗口绘制位图
bmp.Detach(); //分离位图句柄
memDC.DeleteDC(); //释放设备上下文对象
}
//2、在视图类的构造函数中调用LoadImage方法从磁盘中加载文件
//3、在OnDraw中绘制位图
CMyView::CMyView()
{
//加载位图
m_hBmp = LoadImage(NULL,"书.bmp",IMAGE_BITMAP,0,0,LR_LOADFROMFILE);
//书.bmp是路径,这里我已经把图复制到工程里面了。
// C++中\\表示“\”,要为“E:\\位图\\书.bmp”
}
void CMyView::OnDraw(CDC* pDC)
{
CMyDoc* pDoc = GetDocument();
ASSERT_VALID(pDoc);
CBitmap bmp; //定义一个位图对象
bmp.Attach(m_hBmp); //将位图关联到位图句柄上
CDC memDC; //定义一个设备上下文
memDC.CreateCompatibleDC(pDC); //创建兼容的设备上下文
memDC.SelectObject(&bmp); //选中位图对象
BITMAP BitInfo; //定义一个位图结构体
bmp.GetBitmap(&BitInfo); //获取位图信息
int x = BitInfo.bmWidth; //获取位图宽度
int y = BitInfo.bmHeight; //获取位图高度
pDC->BitBlt(0,0,x,y,&memDC,0,0,SRCCOPY); //向窗口绘制位图
bmp.Detach(); //分离位图句柄
memDC.DeleteDC(); //释放设备上下文对象
}
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询