GetClientRectの結果が違う

[戻る]
omiomi 2005/01/21(金) 20:04:17
VC++.net MFCです。

GetClientRectの結果が異なるPC環境があります。
そのため、MoveWindowや、描画の位置がずれてしまいます。
決まった場所に描画するいい方法はないでしょうか?

よろしくお願いします。

monkey 2005/01/21(金) 22:11:08
>GetClientRectの結果が異なるPC環境があります。
>そのため、MoveWindowや、描画の位置がずれてしまいます。

GetClientRect関数を呼び出している場所と、矩形領域を取得してからそれを使うところ
までが分かるコードをお見せください。

dairygoods 2005/01/21(金) 23:12:16
もし、ダイアログベースなら、
画面のプロパティで設定するフォントサイズの影響かも。

omiomi 2005/01/22(土) 09:37:58
返信ありがとうございます。
GetClientRectの使用にかかわらず、
MoveWindow(引数は直接数字を入力)で位置付けたコントロールの位置がずれるようです。

GetClientRect(&rect)で試すと、
rect.bottomが20違うという結果になりました(あとは同じ)

ダイアログベースですので、
dairygoodsさんのおっしゃることを確認したいと思います。

omiomi 2005/01/23(日) 20:11:50
確認してみましたが、関係ありませんでした。
(コンパネの画面のプロパティですよね?)

何が悪いんでしょうか??

コントロールの相対位置で試してみます。

dairygoods 2005/01/24(月) 11:10:52
実際の画面の違いはないのでしょうか?

両者のスクリーンショットを撮って重ね合わせるなりして、
・表示イメージが実際に20ピクセル違う>環境の影響らしい
・表示イメージは全くいっしょ>取得方法が間違っているようだ
という切り分けをした方がよいのでは。

omiomi 2005/01/25(火) 20:41:26
[[解決]]
画面上でずれがあります。
他のコンポーネントを基準にして位置付けたらうまくいきました。
ずれが生じる理由は不明なままですが。
ありがとうございました。

古いスレッドには追加発言できません。