hMenu := WindowFromDC(ACanvas.Handle);
//Border flat...
if ( hMenu <> Handle ) and ( hMenu <> 0 ) then
begin
TmpCanvas := TCanvas.Create; TmpCanvas.Handle := GetDC(0);
TmpCanvas.Pen.Color := $AE7323;//CF9365;
TmpCanvas.Brush.Color:= $AE7323;//CF9365;
GetWindowRect(hMenu, TmpRect); TmpCanvas.FrameRect(TmpRect);
InflateRect(TmpRect, -1, -1);
TmpCanvas.Brush.Color := $FFFFFF;//DFDBDF;
TmpCanvas.FrameRect(TmpRect);
InflateRect(TmpRect, -1, -1);
TmpCanvas.FrameRect(TmpRect); ReleaseDC(0, TmpCanvas.Handle);
TmpCanvas.Free;
end;这部分代码是DELPHI版绘制边框部分,你可以参考下。
{
HWND hMenu= WindowFromDC(ACanvas->Handle);
if( hMenu!=this->Handle&&hMenu!=0 )
{
TCanvas *tempCanvas = new TCanvas();
tempCanvas->Handle = GetDC(0);
tempCanvas->Pen->Color = RGB(0,255,0);
tempCanvas->Brush->Color = RGB(0,0,255); tagRECT temRect;
GetWindowRect(hMenu,&temRect); TRect tempRect((int)(temRect.left),(int)(temRect.top),(int)(temRect.right),(int)(temRect.bottom) );
//////////////////////
tempCanvas->FrameRect(tempRect);
InflateRect(tempRect,-1,-1); tempCanvas->Brush->Color = RGB(0,0,0);
tempCanvas->FrameRect(tempRect);
InflateRect(tempRect,-1,-1);
tempCanvas->FrameRect(tempRect); ReleaseDC(0,tempCanvas->Handle); delete tempCanvas;
}
}