📄 untitled-13.txt
字号:
42 MFC Windows程序设计(第2版)
— —
点(X,y)映射成设备点(0,0),即显示平面的左上角。在MM_TEXT映射模式下,两个函数
间的区别就在于x和y的正负号。在其他映射模式下,区别就更显著了.因为SetView-nortora
处理设备坐标值,而Setwindoworg处理逻辑坐标值。本章后面部分给出了使用这两个函数
的例子。
最后一个例子。假定目前在MM_HIMETRIC映射模式下画图,这里一个单位等价于
1/100毫米,X轴正向向右,y轴正向向上,现在想将原点移至窗口的左下角。下面有一种方
法很容易做到这一点:
CRect rect;
GetCI。entRect(&rect);
dc.SetV。ewn。rtoro(0, rect.He。aht(》;
这样您就可以用原点在窗口左下角,并且X和y均为正的坐标值画图了。
2.1.吕坐标系小结
在谈到映射模式、窗口原点、视口原点以及其他与GDI处理坐标值有关的惯用语时,很
容易把它们混淆起来。理解设备坐标系和逻辑坐标系间的区别有助于理清这些概念。
在设备坐标系中,距离长短以像素点数目来计量。设备上的(0,0)点始终在显示平面
的左上角,X轴正向向右,y轴正向向下。逻辑坐标系则全然不同。原点可放在任一位置,并
且随着映射模式的不同,x轴、y轴方向以及缩放比例因子(相当于一个逻辑单位的像素点
数目)都会发生变化。更明白地说,它们随窗口范围和视口范围的不同而发生变化。MM_
ISOTROPIC和MM.ANISOTROPIC映射模式允许改变这两个范围的大小,但其他映射模式则
不允许。
有时,您会听到Windows程序员谈论“用户坐标值”和“屏幕坐标值”。用户坐标值是原点
设立在窗口客户区左上角的设备坐标值。屏幕坐标值是原点位于屏幕左上角的设备坐标值。
调用 CWnd:: ClientTOScreen和 CWhd:: ScreenTOClient函数可实现用户坐标值与屏幕坐标值之间
的转换。当您第一次调用一个返回屏幕垠标值的Wndows函数,并需要将返回的屏幕坐标值
再传送给需要用户坐标值的函数(或者反过来)时,上面两个函数的用处就很明显了。
2.1.9豪取设备信息
有时,在输出之前捕获一些设备信息是很有帮助的。 CDC:: GetDeviceCaps函数可帮助
用户检索到设备的各种信息,从设备支持的颜色数目到水平和竖直方向上可显示的像素点
的数目。下面的程序代码实现屏幕宽和高的初始化,它将宽设为CX,高设为Xy,都以像素点
数目计算:
CClientDC dc(this);
nit ex= dc.GetDeviceCaps(HORZRES);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -