604
社区成员
发帖
与我相关
我的任务
分享
WndProc(Msg);
if (Msg.Msg == WM_PAINT)
{
TControlCanvas *PanelCanvas=new TControlCanvas();
try
{
PanelCanvas->Control = this;
int iSaveIndex;
TPoint Position;
iSaveIndex = SaveDC(PanelCanvas->Handle);
GetViewportOrgEx(PanelCanvas->Handle, &Position);
SetViewportOrgEx(PanelCanvas->Handle, Position.x - this->Left, Position.y - this->Top, NULL);
IntersectClipRect(PanelCanvas->Handle, 0, 0, this->Parent->ClientWidth,
this->Parent->ClientHeight);
this->Parent->Perform(WM_ERASEBKGND, (int)PanelCanvas->Handle, 0);
this->Parent->Perform(WM_PAINT, (int)PanelCanvas->Handle, 0);
RestoreDC(PanelCanvas->Handle, iSaveIndex);
PanelCanvas->Brush->Color = clRed;
PanelCanvas->Pen->Width = 1;
PanelCanvas->FrameRect(TRect(0, 0, this->Width - 1, this->Height - 1));
}
__finally
{
delete PanelCanvas;
}
}