为什么我用dc.DPtoLP后发觉逻辑坐标的y坐标沿y轴也是越往下越大?好像vc技术内幕上说的是逻辑坐标y坐标应该沿y轴越往下越小啊?

解决方案 »

  1.   

    那你需要用SetModeMap()来设置映射模式呀!
      

  2.   

    我设过了:
    void CMyView::OnPrepareDC(CDC* pDC, CPrintInfo* pInfo) 
    {
        pDC->SetMapMode(MM_HIMETRIC);
        CScrollView::OnPrepareDC(pDC, pInfo);
    }
      

  3.   

    OnLbuttonDown()
    {
    CClientDC dc(this);
    OnPrepareDC(&dc);             /////////这句别少
    CRect rect1(0,0,4000,-4000);
    CRect rect2(0,0,4000,-6000);
    dc.LPtoDP(rect1);           //////////rect1(0,0,100,100)
    dc.LPtoDP(rect2);          ///////////rect2(0,0,100,150)     
    if(rect1.PtInRect(point))
    MessageBox("IN");
    dc.DPtoLP(rect1);         ////////////rect1(0,0,4000,-4000);
    dc.DPtoLP(rect2);       //////////////rect2(0,0,4000,-6000);
                                     //////////////可见逻辑坐标y坐标应该沿y轴越往下越小
    }