FiveTech Support Forums

FiveWin / Harbour / xBase community
Board index FiveWin para Harbour/xHarbour Control ID en un diálogo
Posts: 44162
Joined: Thu Oct 06, 2005 05:47 PM

Control ID en un diálogo

Posted: Sat Aug 01, 2009 05:19 AM
Como buscar un control ID en un diálogo (sin redefinir sus controles):
Code (fw): Select all Collapse
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
Posts: 389
Joined: Wed Nov 29, 2006 01:51 PM

Re: Control ID en un diálogo

Posted: 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.

Posts: 44162
Joined: Thu Oct 06, 2005 05:47 PM

Re: Control ID en un diálogo

Posted: Mon Aug 03, 2009 02: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
Posts: 389
Joined: Wed Nov 29, 2006 01:51 PM

Re: Control ID en un diálogo

Posted: Mon Aug 03, 2009 04:14 PM

Antonio,

Gracias x responder, no lo habia pensado asi :)

Seguimos aprendiendo.... jejeje

Salu2.

Posts: 82
Joined: Fri Mar 13, 2009 06:51 PM

Re: Control ID en un diálogo

Posted: Thu Jan 14, 2010 05: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 (fw): Select all Collapse
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
Posts: 2365
Joined: Wed Nov 02, 2005 11:46 PM

Re: Control ID en un diálogo

Posted: Thu Jan 14, 2010 06: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
Posts: 82
Joined: Fri Mar 13, 2009 06:51 PM

Re: Control ID en un diálogo

Posted: Thu Jan 14, 2010 06: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
Posts: 44162
Joined: Thu Oct 06, 2005 05:47 PM

Re: Control ID en un diálogo

Posted: 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
Posts: 82
Joined: Fri Mar 13, 2009 06:51 PM

Re: Control ID en un diálogo

Posted: Fri Jan 15, 2010 01: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
Posts: 44162
Joined: Thu Oct 06, 2005 05:47 PM

Re: Control ID en un diálogo

Posted: Tue Jan 19, 2010 09:58 AM

Luiz,

Los identificadores tienen que estar definidos en tu fichero RC

regards, saludos

Antonio Linares
www.fivetechsoft.com
Posts: 82
Joined: Fri Mar 13, 2009 06:51 PM

Re: Control ID en un diálogo

Posted: 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

Continue the discussion