• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:ダイアログアプリのウィンドウ領域について)

ダイアログアプリのウィンドウ領域について

このQ&Aのポイント
  • VC++6.0MFCダイアログベースでアプリを開発している際、円の画像を四角のダイアログ領域に表示したい場合、楕円のリージョンを作成し、マウスがオーバーした時に画像を差し替えたいが、ダイアログ領域で反応してしまう。
  • 解決策として、マウスの座標とダイアログの座標を比較し、楕円のリージョンの上だけで反応するようにする方法がある。
  • アドバイスをお願いします。

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

  • ベストアンサー
  • a-kuma
  • ベストアンサー率50% (1122/2211)
回答No.1

あまり MFC には詳しくないのですが、 > GetWindowRect(&rect); > if (rect.PtInRect(pos)) { CRect は「矩形領域」を表すクラスですから、四角で反応するのは当たり前でしょう。 リージョンを表すクラス CRgn にも PtInRegion() メソッドがあるので、 それを使ってマウスが上にあるかどうかを判定すれば良いんじゃないか、と。 if (rect.PtInRect(pos)) {  ↓ if (m_rgn.PtInRect(pos)) { って。

yomogikun
質問者

お礼

ご教授ありがとうございます。 m_rgn.PtInRegion(pos) で正常動作いたしました。 CRgn にも PtInRegion ってのがあるんですねー。 勉強になりました。

関連するQ&A