• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:C言語・Windows RECTが渡せない)

C言語・Windows RECTが渡せない

このQ&Aのポイント
  • C言語のWindowsプログラムで、左クリック後に四角形の描画をしたいのですがうまくいきません。
  • WM_LBUTTONDOWNイベントで定義したRECT構造体を、別の関数に渡しRectangleで描画したいのですが、その関数内でRECTの値を調べるととんでもない値になっています。
  • 何度やってもどうして値がおかしくなるのかわかりません。WM_LBUTTONDOWNもWM_PAINTも正常に反応していると思います。どうか知恵をお貸しくださいm(_ _)m

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

  • ベストアンサー
  • zwi
  • ベストアンサー率56% (730/1282)
回答No.2

変数の寿命を理解していないから起こる問題だと思います。 RECT rcPos; はローカル変数なので関数を抜けるまでの寿命です。 つまり、WM_LBUTTONDOWNメッセージ時のrcPosとWM_PAINTメッセージ時のrcPosは違う変数なのです。なので値が引き継がれません。 staticにするとかグローバル変数にするとか変数寿命をコントロールしてください。

Di_Glass
質問者

お礼

返事が遅くなって申し訳ありません。 static RECT rcPos; にすればうまく行きました。 メッセージで変数が違うとは… 勉強不足でした。どうもありがとうございますm(_ _)m

その他の回答 (1)

  • f272
  • ベストアンサー率46% (8467/18126)
回答No.1

詳しく見てないけど,パッと見た感じでは RECT rcPos; を static RECT rcPos; に変更する。

関連するQ&A