一个制件任意窗口的方法

 首先我先创建一个资源位图,然后把你要画的位图形状画在资源位图上,但要使第一个像素不要被画到.

然后用m_bitmap.LoadBitmap(资源位图);加载.

再用 CDC tempDC;
 CWindowDC dc(此窗口类);
 COLORREF colorMark,color;
 CRgn wndRgn,tempRgn;
 tempDC.CreateCompatibleDC(&dc);
 tempDC.SelectObject(&m_bitmap);
 colorMark=tempDC.GetPixel(0,0);//获得第一个像素点的颜色值
 if(m_SystemMetrics>468){
  m_SystemMetrics=468;
 }
 wndRgn.CreateRectRgn(0,0,位图宽,位图高);
 for(int i=0;i<m_SystemMetrics;i++){              //把跟第一个像素点颜色值相同的跟源矩形异或
  for(int j=0;j<35;j++){
   color=tempDC.GetPixel(i,j);
   if(colorMark==color){
    tempRgn.CreateRectRgn(i,j,i+1,j+1);
    wndRgn.CombineRgn(&tempRgn,&wndRgn,RGN_XOR);
    tempRgn.DeleteObject();
   }
  }
 }

最后用SetWindowRgn((HRGN)wndRgn,true);把本窗口的形状改成异或后的矩形

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值