
VC图形编程
奥雷连诺
这个作者很懒,什么都没留下…
展开
-
使用CImage双缓冲
void CXXXButton::OnPaint(){ CPaintDC dc(this); CRect rect; this->GetClientRect(&rect); int imageW = m_pImage->GetWidth(); //m_pImage你自己的成员变量,自己去定义吧。 int imageH = m原创 2013-04-22 18:20:46 · 1740 阅读 · 1 评论 -
GDI+ 双缓冲
BOOL CXXXDlg::OnEraseBkgnd(CDC *pDC){ CRect rect; this->GetClientRect(rect); if(!m_pBkImage) //定义的一个成员变量 { m_原创 2013-04-27 18:28:20 · 1063 阅读 · 0 评论 -
GDI+ 为了阴影和透明,使用双层窗口遇到的一些问题
在wnidows C++ 客户端开发中,使用GDI+和png透明或者异形图片,结合UpdateLayeredWindow 双层窗口,可以实现透明,阴影,异形的效果。 其原理便是背景窗口使用UpdateLayeredWindow,刷新png图片,前景窗口作为实际窗口放一些空间,但前景窗口实际上是透明的,这样可以点击移动背景窗口,然后当背景窗口移动时,移动前景窗口。1.当时候产品马上要发布原创 2013-04-28 21:11:24 · 1857 阅读 · 0 评论 -
GDI+ 对象释放崩溃的问题
确保在Gdiplus::GdiplusShutdown(m_gdiplusToken); 之前delete 掉GDI+的对象,例如:delete *pBitmap;如果先Gdiplus::GdiplusShutdown(m_gdiplusToken);再delete *pBitmap; 程序会崩溃。有时候会为了方便误将Gdiplus::GdiplusShutdown(m_gdiplusTo原创 2013-12-03 15:22:04 · 3045 阅读 · 0 评论 -
VC++ SetLayeredWindowAttributes 部分窗口透明鼠标穿透
在初始化中使用下面两行代码ModifyStyleEx(0, WS_EX_LAYERED);::SetLayeredWindowAttributes(m_hWnd, RGB(1, 255, 0), 100, LWA_COLORKEY); //set color transparent,指定透明的颜色然后在OnEraseBkgnd或者OnPaint中CRect re原创 2014-12-17 13:30:47 · 6461 阅读 · 2 评论