DrawImage BitBlt StretchBlt画PNG图片的方法
2013-09-11 15:39
134 查看
DrawImage BitBlt StretchBlt画PNG图片的方法
在对话框的OnPaint() 函数中添加代码:
以本人的代码为例:
//Graphics graphics
//graphics.DrawImage方法使用
void UserList::OnPaint()
{
CPaintDC dc(this); // device context for painting
//第一种画图的方法graphics.DrawImage拉伸图片
CRect rect;
GetClientRect(&rect);
Graphics graphics(dc.m_hDC);
//加载PNG图片
Bitmap background(L".\\userlist\\classlist_top.png");
graphics.DrawImage(&background,0,0,rect.Width(),rect.Height());
CDialog::OnPaint();
}
void UserList::OnPaint()
{
CPaintDC dc(this); // device context for painting
//加载PNG图片
Bitmap background(L".\\userlist\\classlist_top.png");
//第二种画图的方法BitBlt原始图片
CRect rc;
CDC MemDC;
CBitmap cbitmap;
CBitmap* pOldBmp = NULL;
HBITMAP hBitmap;
CDC * pDC = GetDC();
// Bitmap To HBITMAP
// HBITMAP To CBitmap *
background.GetHBITMAP(Color(0,0,0),&hBitmap); // Bitmap To HBITMAP
CBitmap* cBitmap = CBitmap::FromHandle(hBitmap); // HBITMAP To CBitmap *
//显示图片
MemDC.CreateCompatibleDC(pDC);
pOldBmp = MemDC.SelectObject(cBitmap);
GetClientRect(&rc);
dc.BitBlt(0, 0, rect.Width(),rect.Height(), &MemDC, 0, 0, SRCCOPY);
//releaseDC
MemDC.SelectObject(pOldBmp);
MemDC.DeleteDC();
cBitmap->DeleteObject();
CDialog::OnPaint();
}
void UserList::OnPaint()
{
CPaintDC dc(this); // device context for painting
//加载PNG图片
Bitmap background(L".\\userlist\\classlist_top.png");
//第三种画图的方法StretchBlt平铺图片
CRect rc;
CDC MemDC;
CBitmap cbitmap;
CBitmap* pOldBmp = NULL;
HBITMAP hBitmap;
CDC * pDC = GetDC();
// Bitmap To HBITMAP
// HBITMAP To CBitmap *
background.GetHBITMAP(Color(0,0,0),&hBitmap); // Bitmap To HBITMAP
CBitmap* cBitmap = CBitmap::FromHandle(hBitmap);// HBITMAP To CBitmap *
//显示图片
MemDC.CreateCompatibleDC(pDC);
pOldBmp = MemDC.SelectObject(cBitmap);
GetClientRect(&rc);
dc.StretchBlt(0,0,rect.Width(),rect.Height(),&MemDC,0,0,background.GetWidth(), background.GetHeight(), SRCCOPY);
//releaseDC
MemDC.SelectObject(pOldBmp);
MemDC.DeleteDC();
cBitmap->DeleteObject();
CDialog::OnPaint();
}
在对话框的OnPaint() 函数中添加代码:
以本人的代码为例:
//Graphics graphics
//graphics.DrawImage方法使用
void UserList::OnPaint()
{
CPaintDC dc(this); // device context for painting
//第一种画图的方法graphics.DrawImage拉伸图片
CRect rect;
GetClientRect(&rect);
Graphics graphics(dc.m_hDC);
//加载PNG图片
Bitmap background(L".\\userlist\\classlist_top.png");
graphics.DrawImage(&background,0,0,rect.Width(),rect.Height());
CDialog::OnPaint();
}
void UserList::OnPaint()
{
CPaintDC dc(this); // device context for painting
//加载PNG图片
Bitmap background(L".\\userlist\\classlist_top.png");
//第二种画图的方法BitBlt原始图片
CRect rc;
CDC MemDC;
CBitmap cbitmap;
CBitmap* pOldBmp = NULL;
HBITMAP hBitmap;
CDC * pDC = GetDC();
// Bitmap To HBITMAP
// HBITMAP To CBitmap *
background.GetHBITMAP(Color(0,0,0),&hBitmap); // Bitmap To HBITMAP
CBitmap* cBitmap = CBitmap::FromHandle(hBitmap); // HBITMAP To CBitmap *
//显示图片
MemDC.CreateCompatibleDC(pDC);
pOldBmp = MemDC.SelectObject(cBitmap);
GetClientRect(&rc);
dc.BitBlt(0, 0, rect.Width(),rect.Height(), &MemDC, 0, 0, SRCCOPY);
//releaseDC
MemDC.SelectObject(pOldBmp);
MemDC.DeleteDC();
cBitmap->DeleteObject();
CDialog::OnPaint();
}
void UserList::OnPaint()
{
CPaintDC dc(this); // device context for painting
//加载PNG图片
Bitmap background(L".\\userlist\\classlist_top.png");
//第三种画图的方法StretchBlt平铺图片
CRect rc;
CDC MemDC;
CBitmap cbitmap;
CBitmap* pOldBmp = NULL;
HBITMAP hBitmap;
CDC * pDC = GetDC();
// Bitmap To HBITMAP
// HBITMAP To CBitmap *
background.GetHBITMAP(Color(0,0,0),&hBitmap); // Bitmap To HBITMAP
CBitmap* cBitmap = CBitmap::FromHandle(hBitmap);// HBITMAP To CBitmap *
//显示图片
MemDC.CreateCompatibleDC(pDC);
pOldBmp = MemDC.SelectObject(cBitmap);
GetClientRect(&rc);
dc.StretchBlt(0,0,rect.Width(),rect.Height(),&MemDC,0,0,background.GetWidth(), background.GetHeight(), SRCCOPY);
//releaseDC
MemDC.SelectObject(pOldBmp);
MemDC.DeleteDC();
cBitmap->DeleteObject();
CDialog::OnPaint();
}
相关文章推荐
- C# 判断图形文件(GIF,JPG,PNG)的图片格式的方法
- PNG图片兼容方法
- E6中PNG透明背景图片处理方法
- 解决IE6下Png图片透明的最佳方法
- png图片的制作方法
- IE6显示png透明背景、图片的方法
- 使IE6下PNG背景图片透明的七种方法
- 最有效的方法:减少和优化PNG图片
- PHP缩小png图片,保留透明色方法
- PNG图片压缩方法
- photoshop 输出切片成透明背景png图片方法
- VC下加载JPG/GIF/PNG图片的两种方法
- Android png透明图片转jpg时背景变黑的解决方法
- png透明问题解决方法(png图片ie6不兼容问题)
- VC下加载JPG/GIF/PNG图片的两种方法
- 在IE和VB中支持png图片透明效果的实现方法(vb源码打包)
- IE6中png图片透明方法
- png透明图片,ie下的怪异模式,无法显示的解决方法
- 在IE6 情况下让PNG图片透明的3种方法
- GDI+ 与 GDI (平铺与拉伸)PNG背景图贴图片的方法