用C++实现半透明按钮控件(PNG,GDI+)
2011-04-09 14:28
369 查看
View Code
平铺图片的代码
附:PNGButton类代码下载
#pragma once #include "stdafx.h" using namespace Gdiplus; static bool ImageFromIDResource(UINT nID, LPCTSTR sTR,Image * &pImg) { HINSTANCE hInst = AfxGetResourceHandle(); HRSRC hRsrc = ::FindResource (hInst,MAKEINTRESOURCE(nID),sTR); // type if (!hRsrc) return FALSE; // load resource into memory DWORD len = SizeofResource(hInst, hRsrc); BYTE* lpRsrc = (BYTE*)LoadResource(hInst, hRsrc); if (!lpRsrc) return FALSE; // Allocate global memory on which to create stream HGLOBAL m_hMem = GlobalAlloc(GMEM_FIXED, len); BYTE* pmem = (BYTE*)GlobalLock(m_hMem); memcpy(pmem,lpRsrc,len); IStream* pstm; CreateStreamOnHGlobal(m_hMem,FALSE,&pstm); // load from stream pImg=Gdiplus::Image::FromStream(pstm); // free/release stuff GlobalUnlock(m_hMem); pstm->Release(); FreeResource(lpRsrc); return TRUE; }
平铺图片的代码
CPaintDC dc(this); CRect rect; GetClientRect(rect); CBrush bs(RGB(240,240,240));//窗口背景色 dc.FillRect(&rect,&bs); //窗口着色 //填充背景图片:平铺 Graphics g(dc.m_hDC); if(has_bg) g.DrawImage(this->bg,0,0); Gdiplus::TextureBrush bbs(this->img); g.FillRectangle(&bbs,0,0,rect.Width(),this->img->GetHeight()); g.ReleaseHDC(dc.m_hDC); //TRACE(L"CMainFrame::OnPaint\r\n");
附:PNGButton类代码下载
相关文章推荐
- C++实现半透明按钮控件(PNG,GDI+)
- C++实现半透明按钮控件(PNG,GDI+)
- 用C++实现半透明按钮控件(PNG,GDI+)
- 用C++实现半透明按钮控件(PNG,GDI+)
- 用C++实现半透明按钮控件(PNG,GDI+)
- VC下利用Picture控件实现png图片按钮(鼠标初始、按下、松开、获得焦点四种状态)
- VC中使用GDI+实现为按钮加载Png图片
- 在VC6.0中用GDI+调用png图片实现半透明渐变的特效窗口
- VC下利用Picture控件实现png图片按钮(鼠标初始、按下、松开、获得焦点四种状态)
- 使用PNG实现半透明的窗体(使用GDI+)
- VC中使用GDI+实现为按钮加载Png图片
- C/C++ 实现自动点击三方程序按钮控件方法!
- VC中使用GDI+实现为按钮加载Png图片
- 在VC6.0中用GDI+调用png图片实现半透明渐变的特效窗口
- 在VC6.0中用GDI+调用png图片实现半透明渐变的特效窗口
- VC中使用GDI+实现为按钮加载Png图片
- VC下利用Picture控件实现png图片按钮(鼠标初始、按下、松开、获得焦点四种状态)
- VC下利用Picture控件实现png图片按钮(鼠标初始、按下、松开、获得焦点四种状态)
- VC下利用Picture控件实现png图片按钮(鼠标初始、按下、松开、获得焦点四种状态)
- 在VC6.0中用GDI+调用png图片实现半透明渐变的特效窗口