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);
原理就是把你控制区域的内容,复制到本控件要,让他们看起来一至。