不规则对话框的实现 C++.doc_第1页
不规则对话框的实现 C++.doc_第2页
不规则对话框的实现 C++.doc_第3页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

不规则对话框的实现 C+ / 在 OnInitDialog() 时初始化相关数据 HDC hdcs; HBITMAP pBitmap; CBitmap m_bmp; pBitmap = (HBITMAP)LoadImage(NULL,图片.bmp,IMAGE_BITMAP,0,0,LR_LOADFROMFILE); hdcs = CreateCompatibleDC(NULL); m_bmp.Attach( pBitmap ); BITMAP bm; m_bmp.GetBitmap(&bm); CRect rtWindow; GetWindowRect(&rtWindow); rtWindow.right = rtWindow.left+bm.bmWidth; rtWindow.bottom =rtWindow.top +bm.bmHeight; MoveWindow(&rtWindow); CClientDC dc(this); SetupRegion(&dc,m_bmp,RGB(191,194,114) ); / 最后在 OnPaint 的else 里面 CClientDC dc(this); CDC picDC; picDC.CreateCompatibleDC (&dc); CBitmap *pOldBmp; pOldBmp = picDC.SelectObject (&m_bmp); BITMAP bm; m_bmp.GetBitmap(&bm); dc.BitBlt (0,0,bm.bmWidth ,bm.bmHeight,&picDC,0,0,SRCCOPY); dc.SelectObject(pOldBmp); / 下面是主代码void CtextDemoDlg:SetupRegion(CDC *pDC, CBitmap &cBitmap, COLORREF TransColor) CDC memDC; /创建与传入DC兼容的临时DC memDC.CreateCompatibleDC(pDC); CBitmap *pOldMemBmp=NULL; /将位图选入临时DC pOldMemBmp=memDC.SelectObject(&cBitmap); CRgn wndRgn; /创建总的窗体区域,初始region为0 wndRgn.CreateRectRgn(0,0,0,0); BITMAP bit; cBitmap.GetBitmap (&bit);/取得位图参数,这里要用到位图的长和宽 int y; for(y=0;y=bit.bmHeight ;y+) CRgn rgnTemp; /保存临时region int iX = 0; do /跳过透明色找到下一个非透明色的点. while (iX = bit.bmWidth & memDC.GetPixel(iX, y) = TransColor) iX+; /记住这个起始点 int iLeftX = iX; /寻找下个透明色的点 while (iX = bit.bmWidth & memDC.GetPixel(iX, y) != TransColor) +iX; /创建一个包含起点与重点间高为1像素的临时“region” rgnTemp.CreateRectRgn(iLeftX, y, iX, y+1); /合并到主region. wndRgn.CombineRgn(&wndRgn, &rgnTemp, RGN_OR); /删除临时region,否则下次创建时和出错 rgnTemp.DeleteObject(); whi

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论