点BUTTON来改变flag,通过Invalidate(TRUE);触发onpaint
以下代码在onpaint函数内:
         CStatic* pWnd = (CStatic*)GetDlgItem(IDC_STATIC1);
CDC* pDC = pWnd->GetDC();
if(flag){
pDC->MoveTo(100,100);
pDC->LineTo(200,200);}问题是:为什么会画不出一条直线呢?

解决方案 »

  1.   

    你的画刷来?
    CPen RectPen(PS_DASH,1,0x0000FF);
    pDC->SelectObject(&RectPen); 然后再画啊!
      

  2.   

    会不会是你定义的起点终点超出的静态控件大小的范围,或者调用一下静态控件本身的Invalidate();其实为什么要用静态控件呢,直接在相应位置画不就好吗。
      

  3.   

    我本来是画在对话框的相应位置的,不过要在对话框背景着色,就试试STATIC