onPaint时候再绘制。
先好好看看教程。

解决方案 »

  1.   

    就是在onpaint里面调用画图的函数,初始化界面只是闪一下图就没啦
      

  2.   

    你应该在OnDraw函数里面画吧. 
      

  3.   

    对的,这是绘图的部分程序,那是该把什么改成全局

            CWnd *pWnd=GetDlgItem(nID);
    CRect ClientRect;                    //
    pWnd->GetClientRect(ClientRect);

    //获取DC
    CClientDC dc(pWnd);

    //设置剪辑区域
    CRgn ClientRgn;
    ClientRgn.CreateRectRgnIndirect(ClientRect);
    dc.SelectClipRgn(&ClientRgn);

    //设置画刷
    dc.SelectObject(GetStockObject(BLACK_BRUSH));

    //设置画笔
    CPen pen1(PS_SOLID, 1, RGB(255, 255, 255));    //白
    CPen pen2(PS_SOLID, 1, RGB(255, 255, 255));
    CPen pen3(PS_SOLID, 1, RGB(255, 255, 0));
    CPen pen4(PS_SOLID, 1, RGB(0, 100, 0));
    dc.SelectObject(pen1);

    //清空窗口
    dc.Rectangle(ClientRect);

    //设置映射方式
    dc.SetMapMode(MM_ISOTROPIC);
    dc.SetViewportExt(ClientRect.Width(), -ClientRect.Height());   //设置视区范围
    dc.SetViewportOrg(ClientRect.CenterPoint().x-20, ClientRect.CenterPoint().y+145); //设置视区起点坐标
    dc.SetWindowExt(MeterPerPixel*min(ClientRect.Width(), ClientRect.Height()), MeterPerPixel*min(ClientRect.Width(), ClientRect.Height())); //设置窗体范围
            ..............................以下省略
      

  4.   

    CClientDC dc(pWnd);这句最操蛋发消息给pWnd让他自己控制自己画图不好
    非要横加干涉传统的皇帝式思维
    活该
      

  5.   

    button的BN_CLICKED响应函数中设置标记,然后调用InvalidateRect强制刷新,OnPaint/OnDraw()函数中根据标记绘制图形。