Last Updated 2003/11/05 |
Programming Tips Windows | 索 引 |
OSの違いによる GetDeviceCaps(HORZSIZE) の値
2003/11/05
画面の解像度に関係なく一定の大きさで表示するにはマッピングモードを MM_LOMETRIC に設定すればよい.(SetMapMode()使用) WindowsNT4.0 では VGA(640x480) でも XGA(1024x768) でも同じ大きさで表示可能である. しかし,Windows95 ではディスプレイの解像度により大きさが変化してしまう. これは GetDeviceCaps(HORZSIZE) で返ってくる値によっても確認が可能である. WindowsNT4.0 では GetDeviceCaps(HORZSIZE) にて常に 320 が返ってくるが,Windows95 では解像度で返ってくる値が変化する.
この回避方法は,Windows95 の時に描画の座標を変更するしかない.
上記にてどの解像度でも同じ大きさで描画できる. Inside Visual C++ Ver4 の書籍で以下の記述がある. 「画面には物理単位と論理単位があって Win3.1 では一致していなかった。線描コードがプリンタとディスプレイの両方で働くことを想定すると、プリンタの物理インチとディスプレイの論理インチを合わせるために、二つのデバイスで異なるマッピングモードを使うことを考えなければならなかった。 しかし、Win95 と新バージョンのWinNT では、物理サイズと論理サイズは同じになっている...」 参照 |
|