关于对话框picture控件里画矩形的有关问题

关于对话框picture控件里画矩形的问题
目的:利用MFC+OpenCV实现图片显示和截取功能。想要在picture控件里实现图片显示,并且响应鼠标事件,画矩形截取图像一部分并保存。
问题:本来打算继承CStatic类重载OnPaint函数实现,但是一直有问题,后来准备直接在Dialog类里实现,但是响应鼠标事件时,picture控件里无法画矩形,而其他地方可以画。如图:
关于对话框picture控件里画矩形的有关问题
------解决方案--------------------
1.是不是画的颜色和背景一样,看不出来?
2.获取的DC不对?贴代码出来
3.不用picture控件行吗?直接在对话框上画,先把背景刷成黑色的,然后在上面画,不是一样的?
------解决方案--------------------
"但是响应鼠标事件时,picture控件里无法画矩形,而其他地方可以画。"
那是当然,鼠标在pic上,响应也要在pic里.把pic 删除.
------解决方案--------------------
picture控件里无法画矩形 的解决办法就是  在picture中的onpaint 函数里面控制绘制矩形,外部绘制会有刷新消息的问题
------解决方案--------------------
本帖最后由 VisualEleven 于 2014-05-12 16:38:15 编辑
void C界面5Dlg::OnLButtonDown(UINT nFlags, CPoint point)
{
lButtonDownNotUp = TRUE;
RECT rect;
m_showRectangle. GetClientRect( &rect ) ;
if( (point. x<rect. right) && (point. x>rect. left) && (point. y<rect. bottom) && (point. y>rect. top) )
{
regionLeftTopTemp = point;
}// TODO: 在此添加消息处理程序代码和/或调用默认值

CDialogEx::OnLButtonDown(nFlags, point);
}




void C界面5Dlg::OnLButtonUp(UINT nFlags, CPoint point)
{
RECT rect;
    m_showRectangle. GetClientRect( &rect );

    if( ( point.x<rect.right ) && ( point.x>rect.left ) && ( point.y<rect.bottom ) && ( point.y>rect.top ) )
{
     if(lButtonDownNotUp == TRUE )
 {
 
 regionRightBottomTemp = point;
         CDC * pDC = m_showRectangle. GetWindowDC ();
// SetBkMode(pDC->m_hDC,TRANSPARENT);
 pDC->SelectStockObject(NULL_BRUSH);
 pDC -> Rectangle( CRect( regionLeftTopTemp, regionRightBottomTemp ) ) ;

 //SetBkMode(pDC->m_hDC,TRANSPARENT);
     }
   }
lButtonDownNotUp=FALSE;// TODO: 在此添加消息处理程序代码和/或调用默认值


CDialogEx::OnLButtonUp(nFlags, point);
}



这样就可以画出来了。