我用下面的方法设置了绘图模式
pDC->SetMapMode(MM_ISOTROPIC);   
pDC->SetWindowExt(xWin,yWin);   
pDC->SetViewportExt(xView,yView);   
pDC->SetWindowOrg(xWinOrg,yWinOrg);    
pDC->SetViewportOrg(xViewOrg,yViewOrg); 
里面的变量是我计算出来的。
当我调用pDC->LPtoDP()这个方法时出现
debug assertion failed!afxwin1.inl line:470
错误,不知道是什么原因。
是不是我的逻辑坐标大于我开始设置的逻辑坐标就会出错,还是别的什么原因?

解决方案 »

  1.   


    CDC::LPtoDPvoid LPtoDP(LPPOINT lpPoints,int nCount=1) const;
    void LPtoDP(LPRECT lpRect ) const;
    void LPtoDP(LPSIZE lpSize ) const;参数: lpPoints 点数组的指针,数组中的每个点是一个POINT结构或CPoint对象 。  
    nCount 数组中点的数目。  
    lpRect RECT结构或CRect对象的指针,在一般情况下,该参数用于将矩形由逻辑单位向设备单位映射。  
    lpSize SIZE结构和CSize对象的指针。  说明:
    将逻辑单位转换为设备单位。函数将GDI逻辑坐标系统中的点的坐标或尺寸信息向设备坐标系统映射。转换取决于当前映射模式和设备窗口与视图端口的原始设置与扩展。点的x、y坐标是2位的带符号整数,由-32,768到32,767。在映射模式可能导致大于这些限制的情况下,系统分别将值设置为-32,768和32,767。
      

  2.   

    pDC 有问题 ,没有创建完毕或者是已经释放