保证控件与控件父控件背景一体

    SetBkMode(Cnvs->Handle,TRANSPARENT);
    Cnvs->Brush->Style=bsClear;
    if (AMouseIn)
    {
       Cnvs->Brush->Color=RGB(41,90,148);
       Cnvs->Pen->Color=RGB(41,90,148);
       Cnvs->Pen->Width=1;
       Cnvs->FillRect(R);
    }
    else
    {
          Cnvs->Brush->Color=RGB(1,104,183);
          Cnvs->Pen->Color=RGB(201,201,201);
          Cnvs->Pen->Width=1;
          Cnvs->Pen->Width=0;
          Cnvs->FillRect(R);
        //  Cnvs->BrushCopy(R,ImageBack->Picture->Bitmap,bsSkinButtonSoe->ClientRect,clNone);//最重要的是这一句。。。。。
    }


    Cnvs->Draw(5,R.Height()/2-ImageSoe->Height/2,ImageSoe->Picture->Graphic);
    Cnvs->Pen->Style=psClear;
    if (NewSoeDataList->Count>0)
    {
         Cnvs->Brush->Color=clRed;
         Cnvs->Ellipse(20,10,40,30);
    }
    else
    {
         Cnvs->Brush->Color=clWhite;
    }

    Cnvs->Brush->Color=clWhite;


    Cnvs->RoundRect(38,22,68,44,10,10);


    TRect WordRect=R;
    WordRect.left+=38;
    WordRect.right=68;
    WordRect.top= 22;
    WordRect.Bottom= 44;
    String User=NewSoeDataList->Count ;
    int h= :: DrawText(Cnvs->Handle,User.c_str(),User.Length(),(RECT *)&WordRect,DT_VCENTER |DT_CENTER	| DT_END_ELLIPSIS| DT_SINGLELINE	);//|DT_END_ELLIPSIS

    DrawDefault=false;

Cnvs->BrushCopy(R,ImageBack->Picture->Bitmap,bsSkinButtonSoe->ClientRect,clNone);

原理就是把你控制区域的内容,复制到本控件要,让他们看起来一至。

你可能感兴趣的:(C++,builder)