VC实现不规则窗口
2011-02-15 11:22
337 查看
在VC下创建不规则窗口非常简单,无非就是创建一个HRGN,然后再调用SetWindowRgn就行了,如我们要创建一个原形的窗口只需要如下代码:
void CExampleDlg::SetupRegion(CDC *pDC) { CDC memDC; CBitmap &cBitmap=m_bmpDraw; CBitmap* pOldMemBmp = NULL; COLORREF col,colMask; CRect cRect; int x, y; CRgn wndRgn, rgnTemp; GetWindowRect(&cRect); CPoint ptOrg=cRect.TopLeft(); BITMAP bmInfo; cBitmap.GetObject(sizeof(bmInfo),&bmInfo); CRect rcNewWnd=CRect(ptOrg,CSize(bmInfo.bmWidth,bmInfo.bmHeight)); memDC.CreateCompatibleDC(pDC); pOldMemBmp = memDC.SelectObject(&cBitmap); colMask=memDC.GetPixel(0,0); wndRgn.CreateRectRgn(0, 0, rcNewWnd.Width(), rcNewWnd.Height()); for(x=0; x<=rcNewWnd.Width(); x++) { for(y=0; y<=rcNewWnd.Height(); y++) { col = memDC.GetPixel(x, y); if(col == colMask) { rgnTemp.CreateRectRgn(x, y, x+1, y+1); wndRgn.CombineRgn(&wndRgn, &rgnTemp, RGN_XOR); rgnTemp.DeleteObject(); } } } memDC.SelectObject(pOldMemBmp); SetWindowRgn((HRGN)wndRgn, TRUE); }
相关文章推荐
- vc 实现透明窗口和不规则窗口
- VC++实现不规则窗口说明
- 用VC++实现不规则窗口
- VC++实现不规则窗口说明
- 用VC++实现不规则窗口
- VC实现区域选择以及不规则窗口示例
- VC中实现不规则对话框(窗口)
- 用VC++实现不规则窗口
- 用VC++实现不规则窗口
- VC不规则窗口实现—位图区域裁剪
- 在VC中实现全屏窗口程序
- [VC/MFC]一条语句实现程序运行时隐藏窗口
- vc开发环境下,浮动窗口的实现
- VC 制作系统托盘程序实现将窗口最小化到系统托
- Qt:Qt实现具有反锯齿的圆角窗口:不规则窗口
- VC实现A进程窗口嵌入到B进程窗口中显示的方法
- 纯属抄袭 -- SWT如何实现不规则窗口
- 轻松实现类VC界面(窗口停靠)
- VC:用AnimateWindow函数实现窗口动画效果
- 虚函数的真相完整版(VC编译器如何实现“virtual ”规则)