WindowFromPointで、指定されたPOINT構造体の指す位置にあるウィンドウのハンドルを取得できる。
WindowFromPoint 関数 (winuser.h) - Win32 apps | Microsoft Learn
WindowFromPoint.cppにて、
メインとなるウィンドウ表示前に、ウィンドウハンドルを表示。
WM_CREATEで、子ウィンドウとなるボタンのハンドルも表示。
WM_LBUTTONDOWNでは、クリックした位置のスクリーン座標をWindowFromPointに渡して、ウィンドウハンドル取得。
ボタンの場合は、WM_LBUTTONDOWNに来ないので、WM_COMMANDで、ボタンのID(WM_APP + 1)のところに来た時に、GetCursorPosで取得した座標をWindowFromPointに渡して、ウィンドウハンドル取得。
ボタンはこれ。
ウィンドウはこれ。
ボタンを押した場合はこうなる。
クライアント領域のボタン以外のところを押したらこうなる。