GetClientRectの結果が違う – プログラミング – Home

通知
すべてクリア

[解決済] GetClientRectの結果が違う


omiomi
 omiomi
(@omiomi)
ゲスト
結合: 20年前
投稿: 22
Topic starter  

VC++.net MFCです。

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

よろしくお願いします。


引用未解決
トピックタグ
monkey
 monkey
(@monkey)
ゲスト
結合: 21年前
投稿: 70
 

>GetClientRectの結果が異なるPC環境があります。
>そのため、MoveWindowや、描画の位置がずれてしまいます。

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


返信引用
dairygoods
 dairygoods
(@dairygoods)
ゲスト
結合: 23年前
投稿: 1421
 

もし、ダイアログベースなら、
画面のプロパティで設定するフォントサイズの影響かも。


返信引用
omiomi
 omiomi
(@omiomi)
ゲスト
結合: 20年前
投稿: 22
Topic starter  

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

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

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


返信引用
omiomi
 omiomi
(@omiomi)
ゲスト
結合: 20年前
投稿: 22
Topic starter  

確認してみましたが、関係ありませんでした。
(コンパネの画面のプロパティですよね?)

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

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


返信引用
dairygoods
 dairygoods
(@dairygoods)
ゲスト
結合: 23年前
投稿: 1421
 

実際の画面の違いはないのでしょうか?

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


返信引用
omiomi
 omiomi
(@omiomi)
ゲスト
結合: 20年前
投稿: 22
Topic starter  

画面上でずれがあります。
他のコンポーネントを基準にして位置付けたらうまくいきました。
ずれが生じる理由は不明なままですが。
ありがとうございました。


返信引用

返信する

投稿者名

投稿者メールアドレス

タイトル *

プレビュー 0リビジョン 保存しました
共有:
タイトルとURLをコピーしました