mfc picture 控件画图问题我想在对话框的picture控件上当鼠标单击的时候画上一个像素点,但是没任何反应,以下是在对话框的OnLButtonDown函数里的代码,对于MFC我是菜鸟中的菜鸟,CRect rect;CWnd* pWnd = G
来源:学生作业帮助网 编辑:六六作业网 时间:2024/12/18 16:19:54
mfc picture 控件画图问题我想在对话框的picture控件上当鼠标单击的时候画上一个像素点,但是没任何反应,以下是在对话框的OnLButtonDown函数里的代码,对于MFC我是菜鸟中的菜鸟,CRect rect;CWnd* pWnd = G
mfc picture 控件画图问题
我想在对话框的picture控件上当鼠标单击的时候画上一个像素点,但是没任何反应,以下是在对话框的OnLButtonDown函数里的代码,对于MFC我是菜鸟中的菜鸟,
CRect rect;
CWnd* pWnd = GetDlgItem(IDC_PIC1);
pWnd->GetClientRect(&rect);
CDC* pDC = pWnd->GetDC();
pDC->SetPixel(point,RGB(0,255,0));
pWnd->InvalidateRect(&rect); CDialog::OnLButtonDown(nFlags,point);
我新建了一个工程,确实能画出来,但是画出来的和点上去的相距很远!所以应该是坐标的问题,该怎么解决呢?
mfc picture 控件画图问题我想在对话框的picture控件上当鼠标单击的时候画上一个像素点,但是没任何反应,以下是在对话框的OnLButtonDown函数里的代码,对于MFC我是菜鸟中的菜鸟,CRect rect;CWnd* pWnd = G
CRect rect;
CWnd* pWnd = GetDlgItem(IDC_PIC1);
pWnd->GetClientRect(&rect);
CClientDC pDC(this);
pDC.SetPixel(point,RGB(0,0,0));
pWnd->InvalidateRect(&rect);
这样写就对了.原因在于CDC* pDC = pWnd->GetDC();
这一句得到的pDC是以你的图片控件的左上角为(0,0)坐标而画点的,而 CDialog::OnLButtonDown(nFlags,point);里带给我们的是以窗口客户区的左上角为(0,0)坐标的,所以当你鼠标点到picture控件的左上角时,point的值不会是(0,0),而是(55,66)之类的别的坐标,然后pDC就以picture控件的左上角为(0,0)坐标,画一个点.故我们点到是picture控件的左上角,而pDC画出的点却偏离了.给分吧!