近藤です。
Yasuyuki Kashiwagi <y...@d1.dion.ne.jp> さんの
On Sun, 30 Jan 2000 20:36:08 +0900
[vcpp 00037113] 特定の場所の座標を取得 への返事です。
> 特定のウインドウの次の場所の座標を取得するにはどうすればいいのでしょうか?
>
> ・閉じるボタン(クローズボタン)…右上にある×ボタン
> ・最大化ボタン
> ・最小化ボタン
> ・システムメニュー…左上にあるアイコン
> ・フォーカスを持ったコントロール
>
> フォーカスを持ったコントロールは GetFocus を使えばできそうかなと
> 思いやってみたのですが、実行したファイル以外のプロセス(?)だったら
> HWND が取得できないんですね。他のプロセスのフォーカスをもったコン
> トロールの HWND はどうやって取得するのでしょう?
WM_NCHITTEST を捕まえれば、マウスカーソルが現在何の上にいるか
を知ることは可能ですが、非クライアント領域のボタン類の座標を直接
取得する一般的な手段は無いみたいですね。特に最近流行の非クライア
ント領域の表示をカスタマイズするユーティリティソフトを使われたら
「最大化ボタンが何処に描画されたかを知っているのは、そのユーティ
リティプログラムだけ」となってしまいますから、ちょいと無理だと思
います。
ただし、フォーカスを持ったコントロールは AttachThreadInput す
れば、他プロセスでも GetFocus が可能になります。
*-------------------------------------------*
| 近藤 良一
| k...@ieee.org
*-------------------------------------------*
Yasuyuki Kashiwagi <y...@d1.dion.ne.jp> さんの
On Sun, 30 Jan 2000 20:36:08 +0900
[vcpp 00037113] 特定の場所の座標を取得 への返事です。
> 特定のウインドウの次の場所の座標を取得するにはどうすればいいのでしょうか?
>
> ・閉じるボタン(クローズボタン)…右上にある×ボタン
> ・最大化ボタン
> ・最小化ボタン
> ・システムメニュー…左上にあるアイコン
> ・フォーカスを持ったコントロール
>
> フォーカスを持ったコントロールは GetFocus を使えばできそうかなと
> 思いやってみたのですが、実行したファイル以外のプロセス(?)だったら
> HWND が取得できないんですね。他のプロセスのフォーカスをもったコン
> トロールの HWND はどうやって取得するのでしょう?
WM_NCHITTEST を捕まえれば、マウスカーソルが現在何の上にいるか
を知ることは可能ですが、非クライアント領域のボタン類の座標を直接
取得する一般的な手段は無いみたいですね。特に最近流行の非クライア
ント領域の表示をカスタマイズするユーティリティソフトを使われたら
「最大化ボタンが何処に描画されたかを知っているのは、そのユーティ
リティプログラムだけ」となってしまいますから、ちょいと無理だと思
います。
ただし、フォーカスを持ったコントロールは AttachThreadInput す
れば、他プロセスでも GetFocus が可能になります。
*-------------------------------------------*
| 近藤 良一
| k...@ieee.org
*-------------------------------------------*