(2008-06-05) Похоронил ноут, с ним последние исходники, HTSpy в том числе. Когда и буду ли восстанавливать - не знаю, поэтому выкладываю самое позднее из оставшегося: v.2008-02-29. ------ (2008-07-17) После v.2008-02-29 дважды случались моменты просветления, когда код переписывался с нуля за один присест, так что v.2008-02-29 - всего лишь очень предварительный набросок утраченного. Но я вылез не со стенаниями по этому поводу, а потому как замечены досадные опечатки. В справке "HTSpy_080119" из аттача читаем: Однако в задизабленном окне HTSpy v.2008-02-29 - инфопанель не ресайзится. Правим: "WndProc.asm" -> ".elseif eax==WM_SETCURSOR" -> ".if ebx==WM_MOUSEMOVE" -> ".if edx==id-6 && esi==HTCLIENT" + "WndProc.asm" -> ".elseif eax==WM_SETCURSOR" -> ".elseif ebx==WM_LBUTTONDOWN" -> "if edx==id-6 && esi==HTCLIENT" => выкидываем выделенное. Кроме того, в том же "WndProc.asm" обработка WM_PAINT впоследствии была переписана по Фень Юаню: Код (Text): .elseif eax==WM_PAINT .if wParam==0 invoke BeginPaint,hWnd,addr ps .else mov eax,wParam .endif mov ebx,eax invoke SendDlgItemMessage,hWnd,id,BM_GETCHECK,0,0 invoke OnDraw,ebx,eax invoke GetClientRect,hWnd,addr rt invoke FrameRect,ebx,addr rt,hbrush .if wParam==0 invoke EndPaint,hWnd,addr ps .endif .elseif eax==WM_PRINTCLIENT invoke SendMessage,hWnd,WM_PAINT,wParam,lParam Кроме того, в "HTLab.asm" Код (Text): .elseif eax==WM_DESTROY invoke DestroyWindow,hWnd xor eax,eax заменить на Код (Text): .elseif eax==WM_CLOSE invoke SetWindowPos,hWnd,HWND_BOTTOM,0,0,0,0,SWP_FRAMECHANGED invoke DestroyWindow,hWnd xor eax,eax ------ (2009-04-02) + png
WndFromPt - это несколько контр-примеров в одном флаконе к MSDN-овским справкам о WindowFromPoint, RealChildWindowFromPoint, ChildWindowFromPointEx. В частности, демонстрируется недокументированная придурочная реакция RealChildWindowFromPoint на WS_EX_LAYOUTRTL, которую прозевал HTSpy (а ранее ParentOwner, но подметил ExtraSpy). Кроме того, WndFromPt предлагает для самопального Window Finder несколько надстроек над этими *WindowFromPoint*, а также отсутствующую API - "PtINindow". В окне WndFromPt и в его меню - подборка подопытных случаев.
+ -------- 2011-04-27: В самом конце прошлого года поучаствовал в обсуждении на блоге Раймонда Чена его заметки WindowFromPoint, ChildWindowFromPoint, RealChildWindowFromPoint, when will it all end?, а позднее набросал расширение данного тестера, в порядке критики соответствующих статей MSDN: http://files.rsdn.ru/42164/windowfrompoint_review.zip.