CClientDC dc(this);
OnPrepareDC(&dc);
CRect rectOld(m_pointTopLeft,m_sizeEllipse);
(1)dc.LPtoDP(rectOld);
(2)InvalidateRect(rectOld,TRUE);
m_pointTopLeft=point-m_sizeOffset;
dc.DPtoLP(&m_pointTopLeft);
CRect rectNew(m_pointTopLeft,m_sizeEllipse);
(3)dc.LPtoDP(rectNew);
(4)InvalidateRect(rectNew,TRUE);我的映射模式是MM_LOENGLISH.1.请帮我解释一下(1)与(3)为什么要转换成设备坐标?2.还有InvalidateRect()函数在这里的作用?3.InvalidateRect()的形参应该是逻辑坐标下的东西,而rectnew经转换不是变成设备坐标了吗?为什么也可以做InvalidateRect()的形参?4.我把第(3)个删除也可以运行出来。请问删与不删有什么区别?
OnPrepareDC(&dc);
CRect rectOld(m_pointTopLeft,m_sizeEllipse);
(1)dc.LPtoDP(rectOld);
(2)InvalidateRect(rectOld,TRUE);
m_pointTopLeft=point-m_sizeOffset;
dc.DPtoLP(&m_pointTopLeft);
CRect rectNew(m_pointTopLeft,m_sizeEllipse);
(3)dc.LPtoDP(rectNew);
(4)InvalidateRect(rectNew,TRUE);我的映射模式是MM_LOENGLISH.1.请帮我解释一下(1)与(3)为什么要转换成设备坐标?2.还有InvalidateRect()函数在这里的作用?3.InvalidateRect()的形参应该是逻辑坐标下的东西,而rectnew经转换不是变成设备坐标了吗?为什么也可以做InvalidateRect()的形参?4.我把第(3)个删除也可以运行出来。请问删与不删有什么区别?
解决方案 »
- MFC fwrite为何写不进去?
- 关于控件的问题
- NetworkService帐号的权限问题,请教~~~
- 高分跪求:用MFC的CFileDialog打开/保存文件对话框,把路径赋给变量
- 求救:PC的安全删除U盘是怎样做到的?
- 我想在vc里面申请一个10M*10M的二位数组,有没有办法啊
- CTreeCtrl怎样加进滚动条
- 我创建了一个窗口显示相关视频,用完如何释放窗口资源
- 我只想给客户lib及头文件,我如何实现??请大伙帮帮我,告诉我步骤
- 请教: CreateThread() 和 GetCurrentThread()得到的 句柄是否可以作为全局变量?
- 网络流数据模拟生成器
- 有关任务管理器的小问题
(注:这个去看孙鑫相关教程http://www.pconline.com.cn/pcedu/empolder/gj/vc/0607/820674.html
第5,10,11章中一处有讲,具体是哪章,忘了)2.InvalidateRect()是告诉系统重绘一个矩形区域,(注:这个MSDN上有详细说明)3.InvalidateRect只关心传入的那个值,至于这个值是什么坐标,它并不知道,也不关心. 他都会把这个坐标值按自己的方式进行转换,具体怎么转换,就不知道了.4.删不删都一样的话,只能说明没有区别了.(按事实说话)
同感,楼主还是多看看 MSDN