国产黄色免费网站,人人干人人干人人干,免费大黄网站在线看,国产情侣一区二区三区,99精品国产福利免费一区二区,国产亚洲成归v人片在线观看,伊人88

2023信創(chuàng)獨(dú)角獸企業(yè)100強(qiáng)
全世界各行各業(yè)聯(lián)合起來(lái),internet一定要實(shí)現(xiàn)!

C++ 中不規(guī)則窗體的快速顯示

2004-02-14 eNet&Ciweek

  最終解決方案

    考慮到既不增加算法的復(fù)雜度,又可大幅度縮短不規(guī)則窗體的創(chuàng)建速度,因此采用綜合以上兩種方案,達(dá)到我們應(yīng)用的目的,程序中首先應(yīng)用方法二對(duì)圖片雙向掃描,產(chǎn)生輪廓坐標(biāo)點(diǎn)數(shù)組,然后在圖片輪廓內(nèi)應(yīng)用方法一將內(nèi)凹部分摳去,最后才用多邊形區(qū)域創(chuàng)建函數(shù)摳去圖片外圍部分。程序如下:

  void __fastcall TForm1::FormCreate(TObject *Sender)  

  {
  
  register int x,y;

  int l,r;  

  POINT *a;  

  bool lb,rb;  

  HRGN WndRgn,TempRgn,tepRgn;  

  Width=800;Height=600;  

  if((a=(POINT *)malloc(800*4*(sizeof(POINT))))==NULL)  

  {  

  ShowMessage("申請(qǐng)內(nèi)存失??!");  

  exit(0);  

  }

  Image1->Picture->LoadFromFile(".\\face.bmp");  

  Width=Image1->Width;  

  Height=Image1->Height;  

  Repaint();  

  l=0;r=Image1->Height*2-1;  

  WndRgn=CreateRectRgn(0,0,Image1->Width,Image1->Height);  

  < //應(yīng)用方法二產(chǎn)生輪廓坐標(biāo)點(diǎn)數(shù)組  

  for(y=0;yHeight;y++)  

  {  

  lb=true;

  for(x=0;xWidth;x++)  

  if(Image1->Canvas->Pixels[x][y]!=clWhite)  

  {  

  a[l].x=x+1;  

  a[l].y=y;  

  lb=false;  

  break;  

  }  

  if(lb) a[l]=a[l-1];  

  l++;  

  rb=true;

  for(x=Image1->Width-1;x>=0;x--)  

  if(Image1->Canvas->Pixels[x][y]!=clWhite)  

  {  

  a[r].x=x;  

  a[r].y=y;  

  rb=false;  

  break;  

  }  

  if(rb) a[r]=a[r+1];  

  r--;  

  }  

  //應(yīng)用方法一摳去圖片內(nèi)凹部分  

  r=Image1->Height*2-1;  

  for(y=0;yHeight;y++){  

  for(x=a[y].x;x

  if(Image1->Canvas->Pixels[x][y]==clWhite)  

  {  

  < tepRgn=CreateRectRgn(x,y,x+1,y+1);  

  CombineRgn(WndRgn,WndRgn,tepRgn,RGN_XOR);  

  DeleteObject(tepRgn);  

  }  

  r--;  

  }   

  //將圖片外圍部分摳去  

  TempRgn=CreatePolygonRgn(a,Image1->Height*2,ALTERNATE);  

  CombineRgn(WndRgn,WndRgn,TempRgn,RGN_AND);  

  DeleteObject(TempRgn);  

  free(a);  

  //顯示不規(guī)則窗體  

  SetWindowRgn(Handle,WndRgn,true);  

  SetWindowPos(Handle,HWND_TOP,0,0,0,0,SWP_NOMOVE SWP_NOSIZE);  

  }  

  至此,一個(gè)漂亮的程序界面就出現(xiàn)在你的屏幕上了。

相關(guān)頻道: eNews

您對(duì)本文或本站有任何意見,請(qǐng)?jiān)谙路教峤?,謝謝!

投稿信箱:tougao@enet16.com