我做了2个按钮,按button1对按钮画边框,再按button2时清空边框,在button2上画,但是好像不行,我另做了一个按钮button3,在button3中调用Invalidate(TRUE); 再按botton2时画button2时就没问题,在线等
void CLinetDlg::OnButton1()
{ CWnd* pWnd=GetDlgItem(IDC_BUTTON1);
CDC* pDC=pWnd->GetDC();
CPen pen(PS_SOLID,2,RGB(255,0,0));
CPen * pOldPen=pDC->SelectObject(&pen);
pDC->MoveTo(0,0);
pDC->LineTo(0,200);
pDC->MoveTo(0,200);
pDC->LineTo(200,200); pDC->MoveTo(200,200);
pDC->LineTo(200,0); pDC->MoveTo(200,0);
pDC->LineTo(0,0);
pDC->SelectObject(pOldPen); ReleaseDC(pDC);
}void CLinetDlg::OnButton2()
{ Invalidate(TRUE); CWnd* pWnd1=GetDlgItem(IDC_BUTTON2);
CDC* pDC=pWnd1->GetDC();
CPen pen1(PS_SOLID,2,RGB(255,0,0));
CPen * pOldPen1=pDC->SelectObject(&pen1); pDC->MoveTo(0,0);
pDC->LineTo(0,200);
pDC->MoveTo(0,200);
pDC->LineTo(200,200); pDC->MoveTo(200,200);
pDC->LineTo(200,0); pDC->MoveTo(200,0);
pDC->LineTo(0,0);
pDC->SelectObject(pOldPen1);}
void CLinetDlg::OnButton1()
{ CWnd* pWnd=GetDlgItem(IDC_BUTTON1);
CDC* pDC=pWnd->GetDC();
CPen pen(PS_SOLID,2,RGB(255,0,0));
CPen * pOldPen=pDC->SelectObject(&pen);
pDC->MoveTo(0,0);
pDC->LineTo(0,200);
pDC->MoveTo(0,200);
pDC->LineTo(200,200); pDC->MoveTo(200,200);
pDC->LineTo(200,0); pDC->MoveTo(200,0);
pDC->LineTo(0,0);
pDC->SelectObject(pOldPen); ReleaseDC(pDC);
}void CLinetDlg::OnButton2()
{ Invalidate(TRUE); CWnd* pWnd1=GetDlgItem(IDC_BUTTON2);
CDC* pDC=pWnd1->GetDC();
CPen pen1(PS_SOLID,2,RGB(255,0,0));
CPen * pOldPen1=pDC->SelectObject(&pen1); pDC->MoveTo(0,0);
pDC->LineTo(0,200);
pDC->MoveTo(0,200);
pDC->LineTo(200,200); pDC->MoveTo(200,200);
pDC->LineTo(200,0); pDC->MoveTo(200,0);
pDC->LineTo(0,0);
pDC->SelectObject(pOldPen1);}
结尾加上:
pDC->SelectObject(pOldPen);
pen.DeleteObject();
void CLinetDlg::OnButton2()
{
CWnd* pWnd1=GetDlgItem(IDC_BUTTON2);
CDC* pDC=pWnd1->GetDC();
CPen pen1(PS_SOLID,2,RGB(255,0,0));
CPen * pOldPen1=pDC->SelectObject(&pen1); pDC->MoveTo(0,0);
pDC->LineTo(0,200);
pDC->MoveTo(0,200);
pDC->LineTo(200,200); pDC->MoveTo(200,200);
pDC->LineTo(200,0); pDC->MoveTo(200,0);
pDC->LineTo(0,0);
pDC->SelectObject(pOldPen1); pen1.DeleteObject();
}void CLinetDlg::OnButton3()
{
Invalidate(TRUE);
}
被你说得晕糊糊的
{ CWnd* pWnd=GetDlgItem(IDC_BUTTON1);
CDC* pDC=pWnd->GetDC();
CPen pen(PS_SOLID,2,RGB(255,0,0));
CPen * pOldPen=pDC->SelectObject(&pen);
pDC->SetROP2(R2_NOTXORPEN);
pDC->MoveTo(0,0);
pDC->LineTo(0,200);
pDC->MoveTo(0,200);
pDC->LineTo(200,200); pDC->MoveTo(200,200);
pDC->LineTo(200,0); pDC->MoveTo(200,0);
pDC->LineTo(0,0);
pDC->SelectObject(pOldPen);
ReleaseDC(pDC);
CWnd* pWnd1=GetDlgItem(IDC_BUTTON2);
pDC=pWnd1->GetDC();
CPen * pOldPen1=pDC->SelectObject(&pen); pDC->MoveTo(0,0);
pDC->LineTo(0,200);
pDC->MoveTo(0,200);
pDC->LineTo(200,200); pDC->MoveTo(200,200);
pDC->LineTo(200,0); pDC->MoveTo(200,0);
pDC->LineTo(0,0);
pDC->SelectObject(pOldPen1);
pen.DeleteObject();
ReleaseDC(pDC);}