• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:GetDeviceCapsの値が不正)

GetDeviceCapsの値が不正

このQ&Aのポイント
  • 現在、MFCを使ってドローツールを作成しています。一部の関数でピクセル単位で指定する必要があるため、HIMETRICからPIXCELへの変換処理にGetDeviceCapsを使用しています。しかし、ディスプレイによって正しい値が取得できないことが判明しました。
  • 別の手段としてGetDeviceCaps(LOGPIXELSX OR LOGPIXELSY)やHIMETRICtoDPを試しましたが、マップモードをMM_HIMETRICとした場合に正確に描画できません。
  • ドロー系Windowsアプリの経験のある方で、この問題に対するヒントがあれば教えてください。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.1

HORZSIZE,VERTSIZEは、同じ解像度でもディスプレイの大きさによって変わってくるはずです。 ただし、すべてのグラフィックボード・ディスプレイの組み合わせで正しい値が取得できるかというと、そうではないようです。 一方、LOGPIXELSX,LOGPIXELSYは、Windowsの設定にある画面の解像度によって値が変化します。 通常、96DPIか120DPIの設定になっており、ディスプレイの物理サイズとは無関係の値になります。 (Windows7あたりからは、ちょっと違うかもしれません) なので、代用できる情報ではないということです。

ken2r
質問者

お礼

やはり、正しい値が取得できないのですね。 代替手段があるか更に調べたいと思います。 ご回答有難うございます。

関連するQ&A