VC++.net MFCです。
GetClientRectの結果が異なるPC環境があります。
そのため、MoveWindowや、描画の位置がずれてしまいます。
決まった場所に描画するいい方法はないでしょうか?
よろしくお願いします。
>GetClientRectの結果が異なるPC環境があります。
>そのため、MoveWindowや、描画の位置がずれてしまいます。
GetClientRect関数を呼び出している場所と、矩形領域を取得してからそれを使うところ
までが分かるコードをお見せください。
もし、ダイアログベースなら、
画面のプロパティで設定するフォントサイズの影響かも。
返信ありがとうございます。
GetClientRectの使用にかかわらず、
MoveWindow(引数は直接数字を入力)で位置付けたコントロールの位置がずれるようです。
GetClientRect(&rect)で試すと、
rect.bottomが20違うという結果になりました(あとは同じ)
ダイアログベースですので、
dairygoodsさんのおっしゃることを確認したいと思います。
確認してみましたが、関係ありませんでした。
(コンパネの画面のプロパティですよね?)
何が悪いんでしょうか??
コントロールの相対位置で試してみます。
実際の画面の違いはないのでしょうか?
両者のスクリーンショットを撮って重ね合わせるなりして、
・表示イメージが実際に20ピクセル違う>環境の影響らしい
・表示イメージは全くいっしょ>取得方法が間違っているようだ
という切り分けをした方がよいのでは。
画面上でずれがあります。
他のコンポーネントを基準にして位置付けたらうまくいきました。
ずれが生じる理由は不明なままですが。
ありがとうございました。