RealChildWindowFromPointの使い方。

返信する


答えを正確に入力してください。答えられるかどうかでスパムボットか否かを判定します。

BBCode: ON
[img]: ON
[url]: ON
スマイリー: OFF

トピックのレビュー
   

展開ビュー トピックのレビュー: RealChildWindowFromPointの使い方。

by 7 » 2006年4月27日(木) 21:42

> Int64,QWord がActiveBasicになかったら使えなかったんでしょうかね。
> 上のくだりで気付いたんですけど、 と書いても動きました。

by 7 » 2006年4月26日(水) 17:37

てふろんさん さんが書きました:RealChildWindowFromPoint の第二引数は POINT構造体 の値渡しかと。
よって Int64 か QWord に置き換えてあげる必要があるような気がします。

> Dim uHitTest As Qword
> uHitTest = ptHitTest.x or ( ptHitTest.y << 32 )
> hHit = fnRealWndFromPoint(pParent,uHitTest)
とすれば動いてくれるような気がします。
これでもできなくて悩んでいた所、グループボックスの中のActiveBasicで言う「通知」にチェックが入ってないスタティックコントロールは感知できないってことが分かりました...。
他のコントロールは取得できていました。 Int64,QWord がActiveBasicになかったら使えなかったんでしょうかね。
ゲストさん さんが書きました:なので、こうしてみてください。

Declare Function RealChildWindowFromPoint Lib "user32" _
(hWndParent As HWND, _
xPoint As Long, _
yPoint As Long) As HWND
こういう風に宣言できたんですか!これが分かってれば悩むことも無かったかもしれませんね。

てふろんさん、ゲストさん、ありがとうございました。

by ゲスト » 2006年4月26日(水) 10:51

すでにレスが付いてる通り、元の宣言は、値渡しですね。

HWND RealChildWindowFromPoint(
HWND hwndParent,
POINT ptParentClientCoords
);

なので、こうしてみてください。

Declare Function RealChildWindowFromPoint Lib "user32" _
(hWndParent As HWND, _
xPoint As Long, _
yPoint As Long) As HWND

by てふろん » 2006年4月26日(水) 10:23

こんにちは、てふろんです。

RealChildWindowFromPoint の第二引数は POINT構造体 の値渡しかと。
よって Int64 か QWord に置き換えてあげる必要があるような気がします。

> Dim fnRealWndFromPoint As *Function(ByVal hwndParent As HWND,ptParentClientCoords As QWord) As HWND
このように関数ポインタを定義し、

> Dim uHitTest As Qword
> uHitTest = ptHitTest.x or ( ptHitTest.y << 32 )
> hHit = fnRealWndFromPoint(pParent,uHitTest)
とすれば動いてくれるような気がします。

テストしてないので全くわかりませんが。

by 7 » 2006年4月25日(火) 21:12

> そのAPIだけが失敗するのなら問題ですが。
RealChildWindowFromPoint()関数の戻り値がいつも 0 ですね。
関数が悪い訳じゃなくて指定すべき値が間違ってるんでしょうか...。
違うサンプルコードから以下のように直したんですけどやっぱりグループボックスの中のコントロールのハンドルを取得できません。 環境が悪いんでしょうかねぇ...。

by ゲスト » 2006年4月25日(火) 16:27

とりあずデバッグして一つ一つの処理を確認してみては?
そのAPIだけが失敗するのなら問題ですが。
同系のAPIと使用方法は、大差ないですし。

RealChildWindowFromPointの使い方。

by 7 » 2006年4月24日(月) 20:24

カーソル下のウィンドウハンドルを取得しようと思い、グループボックスの中にあるコントロールも取得したかったのでRealChildWindowFromPoint()関数を使おうとしたんですがうまくいきません。 どなたかRealChildWindowFromPoint()関数に詳しい方いませんか?

ページトップ