OnDraw(ATL_DRAWINFO& di)
{
RECT& rc = *(RECT*)di.prcBounds;
SetMapMode(di.hdcDraw,MM_LOMETRIC); long sx=rc.right*25.4*10/GetDeviceCaps(di.hdcDraw,LOGPIXELSX);
long sy=-1*rc.bottom*25.4*10/GetDeviceCaps(di.hdcDraw,LOGPIXELSY); MoveToEx(di.hdcDraw,0,0,NULL);
LineTo(di.hdcDraw ,sx,sy);//这条直线已经超出了我的控件范围 MoveToEx(di.hdcDraw,0,0,NULL);
LineTo(di.hdcDraw ,sx-150,sy+100);//这条直线刚好在我的控件范围之内 // 150,100 调试出来的
} 各位高手,为什么会出现上述奇怪的现象,我该怎么去纠正映射模式转换后坐标误差出现的误差?
{
RECT& rc = *(RECT*)di.prcBounds;
SetMapMode(di.hdcDraw,MM_LOMETRIC); long sx=rc.right*25.4*10/GetDeviceCaps(di.hdcDraw,LOGPIXELSX);
long sy=-1*rc.bottom*25.4*10/GetDeviceCaps(di.hdcDraw,LOGPIXELSY); MoveToEx(di.hdcDraw,0,0,NULL);
LineTo(di.hdcDraw ,sx,sy);//这条直线已经超出了我的控件范围 MoveToEx(di.hdcDraw,0,0,NULL);
LineTo(di.hdcDraw ,sx-150,sy+100);//这条直线刚好在我的控件范围之内 // 150,100 调试出来的
} 各位高手,为什么会出现上述奇怪的现象,我该怎么去纠正映射模式转换后坐标误差出现的误差?
帮忙给解决一下
SetMapMode(di.hdcDraw,MM_LOMETRIC);
这句。
不要自己去写