Control ID en un diálogo

Control ID en un diálogo

Postby Antonio Linares » Sat Aug 01, 2009 5:19 am

Como buscar un control ID en un diálogo (sin redefinir sus controles):
Code: Select all  Expand view

DEFINE DIALOG oDlg RESOURCE cResDlgName

ACTIVATE DIALOG oDlg ;
  ON INIT ( lFound := LookForControl( oDlg:hWnd, nCtrlId ), oDlg:End() )

...

function LookForControl( hDlg, nCtrlId )

  local hCtrl

  while ( hCtrl := GetWindow( hDlg, GW_CHILD ) ) != 0 .and. GetParent( hCtrl ) == hDlg
     if GetWindowLong( hCtrl, GWL_ID ) == nCtrlId
        return .T.
     endif
     hCtrl = GetWindow( hCtrl, GW_HWNDNEXT )
  end

return .F.
 
regards, saludos

Antonio Linares
www.fivetechsoft.com
User avatar
Antonio Linares
Site Admin
 
Posts: 42052
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain

Re: Control ID en un diálogo

Postby Ariel » Sat Aug 01, 2009 12:36 pm

Antonio,

Perdón mi ignorancia, y ... cual es el sentido de buscar un ID si no lo REDEFINO ????

Salu2, Ariel.
Ariel
 
Posts: 376
Joined: Wed Nov 29, 2006 1:51 pm
Location: Rosario - Argentina

Re: Control ID en un diálogo

Postby Antonio Linares » Mon Aug 03, 2009 2:52 pm

Ariel,

Algunos usuarios me preguntaron la forma de hacerlo.

Imagino que para aplicaciones grandes y genericas en donde lo puedan necesitar :-) (módulos parecidos pero con diferencias que reusen código, etc.)
regards, saludos

Antonio Linares
www.fivetechsoft.com
User avatar
Antonio Linares
Site Admin
 
Posts: 42052
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain

Re: Control ID en un diálogo

Postby Ariel » Mon Aug 03, 2009 4:14 pm

Antonio,

Gracias x responder, no lo habia pensado asi :)

Seguimos aprendiendo.... jejeje

Salu2.
Ariel
 
Posts: 376
Joined: Wed Nov 29, 2006 1:51 pm
Location: Rosario - Argentina

Re: Control ID en un diálogo

Postby ICO » Thu Jan 14, 2010 5:45 pm

Hola mr Antonio ¿Podría mostrarme un ejemplo en la práctica? Por ejemplo yo tengo en mi controles de diálogo ID 4050.4051 y 4052 .... etc
como lo hago basado en el ejemplo anterior? No soy capaz de trabajar en mi PRG, regresa este error

Code: Select all  Expand view
Error description: Error BASE/1003  Variable does not exist: GW_CHILD


que es eso GW_CHILD?

Gracias
Luiz Arruda [ ico.corumba@gmail.com ]
Corumba/MS - Brasil
FiveWin 9.04
[x]Harbour
xDev
WS
User avatar
ICO
 
Posts: 82
Joined: Fri Mar 13, 2009 6:51 pm

Re: Control ID en un diálogo

Postby Daniel Garcia-Gil » Thu Jan 14, 2010 6:00 pm

Hola ICO

coloca estos define, seguro los necesitaras

#define GW_HWNDNEXT 2
#define GW_CHILD 5
#define GWL_ID (-12)

GW_CHILD es un "flag" que usa la funcion GetWindow, por eso el prefijo (GW)
http://msdn.microsoft.com/en-us/library/ms633515(VS.85).aspx

GWL es para la funcion GetWindowLong...
podras encontrar muchas variables con distintos prefijos es una manera facil de identificar la funcion que lo usa
User avatar
Daniel Garcia-Gil
 
Posts: 2365
Joined: Wed Nov 02, 2005 11:46 pm
Location: Isla de Margarita

Re: Control ID en un diálogo

Postby ICO » Thu Jan 14, 2010 6:30 pm

Hola Daniel
poner la define como se muestra, pero mi aplicación dejó de funcionar

Abraços..
Luiz Arruda [ ico.corumba@gmail.com ]
Corumba/MS - Brasil
FiveWin 9.04
[x]Harbour
xDev
WS
User avatar
ICO
 
Posts: 82
Joined: Fri Mar 13, 2009 6:51 pm

Re: Control ID en un diálogo

Postby Antonio Linares » Thu Jan 14, 2010 11:14 pm

Luiz,

Puedes poner un ejemplo completo de cómo lo estás usando ? gracias
regards, saludos

Antonio Linares
www.fivetechsoft.com
User avatar
Antonio Linares
Site Admin
 
Posts: 42052
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain

Re: Control ID en un diálogo

Postby ICO » Fri Jan 15, 2010 1:12 am

Ola Antonio
es exactamente lo que mi quieres saber, Copei y pegado su ejemplo, que está por encima y en lugar de nctrlID poner 4050.4051 Quiero saber dónde colocar los identificadores

no tengo idea de cómo proceder

Gracias
Luiz Arruda [ ico.corumba@gmail.com ]
Corumba/MS - Brasil
FiveWin 9.04
[x]Harbour
xDev
WS
User avatar
ICO
 
Posts: 82
Joined: Fri Mar 13, 2009 6:51 pm

Re: Control ID en un diálogo

Postby Antonio Linares » Tue Jan 19, 2010 9:58 am

Luiz,

Los identificadores tienen que estar definidos en tu fichero RC
regards, saludos

Antonio Linares
www.fivetechsoft.com
User avatar
Antonio Linares
Site Admin
 
Posts: 42052
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain

Re: Control ID en un diálogo

Postby ICO » Tue Jan 19, 2010 10:35 am

Gracias Antonio, voy a tratar de hacer después de que el informe del resultado..

abrazos
Luiz Arruda [ ico.corumba@gmail.com ]
Corumba/MS - Brasil
FiveWin 9.04
[x]Harbour
xDev
WS
User avatar
ICO
 
Posts: 82
Joined: Fri Mar 13, 2009 6:51 pm


Return to FiveWin para Harbour/xHarbour

Who is online

Users browsing this forum: No registered users and 52 guests