|
我需要在父窗口中重绘子窗口区域,但却刷新了整个区域。代码如下:
子窗口先绘制到内存m_dc中,然后要求父窗口更新子窗口区域。
CChild::Paint(CDC *pDC)
{
CRect rWindow;
GetWindowRect(rWindow);
GetParent()->ScreenToClient(rWindow);
pDC->BitBlt(rWindow.left,rWindow.top,rWindow.Width(),rWindow.Height(),
&m_dc,0,0,SRCCOPY);
//要求更新子窗口区域
rWindow.InflateRect(1,1); //如果原字窗口区域的话会调用子窗口的OnPaint进行处理。
GetParent()->Invalidate();
}
//再在父窗中调子窗口的函数进行更新。
CMyDialog::OnPaint()
{
CPaintDC dc(this);
child->Paint(&dc);
}
|
|