物理坐标与逻辑坐标,这两个东西真是太容易混淆——关于这两者,有如下总结:
1、可以认为CDC的所有成员函数都以逻辑坐标作为其参数。
2、可以认为CWnd的成员函数都以设备坐标作为其参数。
3、所有选中测试(hit-test)操作都应考虑设备坐标。区域的定义应采用设备坐标。某些像CRect::PtInRect之类的函数只有在采用设备坐标参数时才会保证得到正确的结果。
4、将一些需要长期使用的值用逻辑坐标或物理坐标保存。如果使用设备坐标来保存某点的坐标的话,那么只要用户对窗口进行一下滚动,该点的坐标就不再有效。