是这样的,我在view类中,
void CZhView::OnDraw(CDC* pDC)中: CZhDoc* pDoc = GetDocument();
ASSERT_VALID(pDoc); CRect   rect; 
    GetClientRect(&rect); 
    pDC-> SetMapMode(MM_ANISOTROPIC); 
    pDC-> SetViewportOrg(rect.left+100,rect.bottom-100);//坐标对应 
    pDC-> SetViewportExt(rect.right,rect.bottom);//     pDC-> SetWindowOrg(0,0); //窗口对应
    pDC-> SetWindowExt(10000,-10000);
//设置了我的逻辑坐标系,然后紧接着我用MoveTo和LineTo画直线,结果是在我的逻辑坐标系下画的。但是,我在dialog类中定义了对话框,并设置一个按钮,在其响应函数中,比如OnButtonMy(),我调用了view的指针,即:
    CFrameWnd   *pFrame=(CFrameWnd*)AfxGetMainWnd(); 
    CView*   pView=pFrame-> GetActiveView();
    CDC   *pDC=pView-> GetDC();
    接着用MoveTo和LineTo画直线,却画在了物理坐标系下。用LPtoDP也解决不了,我想画在我设置的逻辑坐标系下啊!!!!!!!!!!!!!!!!!

解决方案 »

  1.   

    你把OnButtonMy()里面的pDC也设置逻辑坐标系,然后再画不就一样了。。
      

  2.   

    每个地方使用CDC的属性最好当时设置,用完恢复,指望使用CDC传递属性先弄懂每个地方使用的CDC有什么差别
      

  3.   

    pDC-> SetWindowExt(10000,-10000);这个逻辑长宽有点问题吧,应该设置为10000,10000比较恰当吧?