绘制正方形被对话框下本来有的picture控件给遮住了,如何解决

绘制正方形被对话框下本来有的picture控件给遮住了,怎么解决?
本帖最后由 VisualEleven 于 2014-05-15 15:17:09 编辑
我用下面的代码绘制了一个图片,但是被对话框下本来有的picture控件给遮住了,想将绘制图片显示在picture控件上,怎么办? 
代码如下:
void CpictureDlg::OnPaint()
{
CPaintDC dc(this); // 用于绘制的设备上下文
if (IsIconic())
{
SendMessage(WM_ICONERASEBKGND, reinterpret_cast<WPARAM>(dc.GetSafeHdc()), 0);
// 使图标在工作区矩形中居中
int cxIcon = GetSystemMetrics(SM_CXICON);
int cyIcon = GetSystemMetrics(SM_CYICON);
CRect rect;
GetClientRect(&rect);
int x = (rect.Width() - cxIcon + 1) / 2;
int y = (rect.Height() - cyIcon + 1) / 2;
// 绘制图标
dc.DrawIcon(x, y, m_hIcon);
}
else
{
CDialogEx::OnPaint();
}
CBrush brush;
brush.CreateSolidBrush(RGB(20,20,20));
CPen pen;
pen.CreatePen(PS_SOLID,1,RGB(0,0,0));
CPen* pOldPen = dc.SelectObject(&pen);

//画第一个矩形框

dc.Rectangle(100,100,200,200);
CBrush* pOldBrush = dc.SelectObject(&brush);
dc.FloodFill(150,150,RGB(0,0,0));
dc.SelectObject(pOldBrush);
dc.SelectObject(pOldPen);
}

效果图:绘制正方形被对话框下本来有的picture控件给遮住了,如何解决
左边为所绘制的正方形,有部分被右边的picture控件遮住!
------解决方案--------------------
else
{
CDialogEx::OnPaint();
}
//   要 画在 picture 上 , 那 就要 取 pic 的 rect, pic 的 DC。。。 你 是在 对话框 上 画, 当然 不在 pic 里了
CBrush brush;
brush.CreateSolidBrush(RGB(20,20,20));
CPen pen;
pen.CreatePen(PS_SOLID,1,RGB(0,0,0));
CPen* pOldPen = dc.SelectObject(&pen);

//画第一个矩形框

dc.Rectangle(100,100,200,200);
CBrush* pOldBrush = dc.SelectObject(&brush);
dc.FloodFill(150,150,RGB(0,0,0));
dc.SelectObject(pOldBrush);
dc.SelectObject(pOldPen);
------解决方案--------------------
不要用picture控件,图片在OnPaint函数中直接绘制上去,这样就可以实现了。