Page 1 of 1

Read all handles of controls, associate ONLY handle Win/Dlg

Posted: Tue Mar 06, 2007 9:50 am
by ericmagaldi
How read all handles of controls, associate ONLY handle Window/Dialog activate.

objective, realize refresh without require any object.

Example:

Code: Select all

SetKey(VK_F5, {|a,b,c| ReadAllHandles() })
...
...
function ReadAllHandles()
local nWnd,nHandle

nWnd :=GetActiveWindow()
//nHandle = nil, first control
do while .t.
   nHandle:=NEXTDLGTAB(nWnd,nHandle)

   if ! MsgYesNo('nHandle=>'+NTRIM(nHandle) + CHR(13) + ;
      GetClassName(nHandle) + CHR(13) + ;
      GetWindowText(nHandle) + CHR(13) + ;
      'GetParent(nHandle)=>'+ntrim(GetParent(nHandle)) ;
      )

      exit

   endif

enddo
return nil
two problems.
If Control be in SysTabControl32( TFolder ), not know how read.
if Control be Disable, GetNextDlgTabItem skip handle control.

Please.

Posted: Thu Mar 08, 2007 11:24 am
by Antonio Linares
Éric,

> If Control be in SysTabControl32( TFolder ), not know how read.

Use GetClassName( hCtrlWnd ) to check for SysTabControl32 and check its childs

> if Control be Disable, GetNextDlgTabItem skip handle control.

Use GetWindow( hWnd, GW_CHILD ) and GW_HWNDNEXT