任意形状的窗体

时间:2010-04-28 16:00:20  来源:第二电脑网  作者:第二电脑网

  第二电脑网导读:or(int i=0;i<Spirite->Height;i++) { bkey=true; for(int j=0;j<Spirite->Width;j++) { if(Spirite->Canvas->Pixels[j][i]==ColorKey) bkey=true; else{ if(bkey) iCount++; bkey=false;} } } byte* pData; RGNDATA* pRgnData; RECT* pRect; int iIndex=0,iLeft=0; pData=new Byte[sizeof(RGNDATAHEADER)+si...
  正文:Graphics::TBitmap* Spirite=new Graphics::TBitmap();
bool bkey=true;
int iCount=0;
TColor ColorKey=clWhite;
Spirite->LoadFromFile("D:bcbbakresourcetraffic.bmp");
Width=Spirite->Width;Height=Spirite->Height;
for(int i=0;i<Spirite->Height;i++)
{
bkey=true;
for(int j=0;j<Spirite->Width;j++)
{
if(Spirite->Canvas->Pixels[j][i]==ColorKey)
bkey=true;
else{ if(bkey) iCount++; bkey=false;}
}
}
byte* pData;
RGNDATA* pRgnData;
RECT* pRect;
int iIndex=0,iLeft=0;
pData=new Byte[sizeof(RGNDATAHEADER)+sizeof(RECT)*iCount];
pRgnData=(RGNDATA* )pData;
pRect=(RECT* )(pData+sizeof(RGNDATAHEADER));
pRgnData->rdh.dwSize= sizeof( RGNDATAHEADER ) ;
pRgnData->rdh.iType= RDH_RECTANGLES;
pRgnData->rdh.nCount= iCount;
pRgnData->rdh.nRgnSize = sizeof( RECT )*iCount;
pRgnData->rdh.rcBound.left= 0;
pRgnData->rdh.rcBound.top= 0;
pRgnData->rdh.rcBound.right=Spirite->Width;
pRgnData->rdh.rcBound.bottom=Spirite->Height;
for( int i=Spirite->Height-1;i>=0;i--) //因为Bitmap位图在Y方向是颠倒的所以要从底部开始
{
bkey = TRUE ; iLeft = -1;
for( int j=0;j<Spirite->Width;j++)
{
if(Spirite->Canvas->Pixels[j][i]==ColorKey )
{if( !bkey )
{pRect[iIndex].left =iLeft;
pRect[iIndex].right=j;
pRect[iIndex].top=Spirite->Width-i-1;
pRect[iIndex].bottom=Spirite->Height-i;
bkey=TRUE ;iIndex++ ;iLeft=-1;
}
}
else if(bkey){iLeft=j; bkey=false;}
}
if(iLeft>=0)
{
pRect[iIndex].left=iLeft ;
pRect[iIndex].right=Spirite->Width;
pRect[iIndex].top=i;
pRect[iIndex].bottom=i;
iIndex++;
}
}
bool br=ExtCreateRegion(NULL,sizeof( RGNDATAHEADER )+sizeof(RECT)*iCount,pRgnData);
if(!br) { ShowMessage("Create Form Failed."); Close(); }
delete[] pData;


"任意形状的窗体"由第二电脑网原创提供,转载请注明:http://www.002pc.com/master/College/Language/VC/2010-04-28/13798.html


关键字:

关于《任意形状的窗体》文章的评论

站内搜索: 高级搜索

热门搜索: Windows style 系统 tr IP QQ CPU 安装 function 注册 if td