• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:ウィンドウ位置情報の取得)

ウィンドウ位置情報の取得

このQ&Aのポイント
  • ウィンドウ位置情報を取得するためのコードを説明します。
  • 付箋がダイアログではなくウィンドウの場合の位置情報取得方法について教えてください。
  • ダイアログをウィンドウに変更した際にエラーが発生した場合の対処方法は?

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

  • ベストアンサー
  • taka_tetsu
  • ベストアンサー率65% (1020/1553)
回答No.1

>TRACE ( "X1(%d) Y1(%d) X2(%d) Y2(%d)\n", pDlg->m_rect.left, pDlg->m_rect.top, pDlg->m_rect.right, pDlg->m_rect.bottom ); これは、事前に座標、サイズをメンバ変数m_rectに格納してあるという前提の処理です。 自分でそんな処理を組んでいないのなら、CWnd::GetWindowRect()でその場で取得しましょう。

VitaminBB
質問者

お礼

回答ありがとう御座います。 おっしゃる通り、下記コードの見落としでした。 void CTestDlg::OnDestroy() //付箋 { CDialog::OnDestroy(); // 終了直前に現在の座標を覚える GetWindowRect( &m_rect ); } ウィンドウの場合も同様に以下のようにしてみました。 下記関数内では正しい座標が取得できています。 void CMyWnd::OnDestroy() //付箋 { CWnd::OnDestroy(); // 終了直前に現在の座標を覚える GetWindowRect( &m_rect ); delete this; } しかしながら、 TRACE ( "X1(%d) Y1(%d) X2(%d) Y2(%d)\n", pDlg->m_rect.left, pDlg->m_rect.top, pDlg->m_rect.right, pDlg->m_rect.bottom ); の時点では、明らかに違う値に変わっています。(でたらめな値になっている) また、行き詰りました。 助言ください。お願いいたします。

VitaminBB
質問者

補足

どうも付箋が破棄された時点で座標データも消えてしまってるようです。 これは当然のことなのでしょうか? そうだとすると、ダイアログの場合はどうして消えないのでしょうか? よろしくお願いいたします。

その他の回答 (3)

  • taka_tetsu
  • ベストアンサー率65% (1020/1553)
回答No.4

>#以前も少しお聞きしましたが、今もプログラマーなのですか、 まともなプログラミングは2年ばかりやってないかな? ということで、いまはプログラマーではないです。 たまにチェックやらサンプル作ったりするのに VisualStudioは使用できる状態になってますけど。 >また一日中回答出来る状況ってどうなってるんですか? 一日中PCの前に向かって仕事をしないで遊んでいるんでしょう、きっと(^^;;; 現実逃避してるのかもしれません・・・

VitaminBB
質問者

お礼

どもども、個人的なことですみませんでした。

  • taka_tetsu
  • ベストアンサー率65% (1020/1553)
回答No.3

m_pAryDlgって、CArrayですよね? これの使い方はOKですか? http://www.microsoft.com/japan/msdn/library/default.asp?url=/japan/msdn/library/ja/vclib/html/_MFC_CArray.asp

VitaminBB
質問者

お礼

回答ありがとうございます。 今日一日やって、まったくうまく行かなかったのですが、たった今ようやく出来ました。 但し、コードをメチャクチャシンプルにした場合なので、付箋紙ソフトで動かない状況は変わりません。 仕方ないので、付箋紙ソフトは一から作り直します。 #以前も少しお聞きしましたが、今もプログラマーなのですか、また一日中回答出来る状況ってどうなってるんですか?

  • taka_tetsu
  • ベストアンサー率65% (1020/1553)
回答No.2

だって、 delete this; がいるじゃないですか。 破棄してますよ。自分で。 よく落ちませんね。

VitaminBB
質問者

お礼

取りあえず、現状落ちてません。 delete this;もコメントアウトしてみましたが、現象変わらずです。 ウィンドウを破棄しない状態でデータを取り出してみましたが、やはりでたらめな値になっていました。

VitaminBB
質問者

補足

お礼の下記コメントは間違いです。 もう一度確認してみます。 ウィンドウを破棄しない状態でデータを取り出してみましたが、やはりでたらめな値になっていました。

関連するQ&A