Page 1 of 1
Control ID en un diálogo
Posted:
Sat Aug 01, 2009 5:19 am
by Antonio Linares
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.
Re: Control ID en un diálogo
Posted:
Sat Aug 01, 2009 12:36 pm
by Ariel
Antonio,
Perdón mi ignorancia, y ... cual es el sentido de buscar un ID si no lo REDEFINO ????
Salu2, Ariel.
Re: Control ID en un diálogo
Posted:
Mon Aug 03, 2009 2:52 pm
by Antonio Linares
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.)
Re: Control ID en un diálogo
Posted:
Mon Aug 03, 2009 4:14 pm
by Ariel
Antonio,
Gracias x responder, no lo habia pensado asi
Seguimos aprendiendo.... jejeje
Salu2.
Re: Control ID en un diálogo
Posted:
Thu Jan 14, 2010 5:45 pm
by ICO
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
Re: Control ID en un diálogo
Posted:
Thu Jan 14, 2010 6:00 pm
by Daniel Garcia-Gil
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).aspxGWL es para la funcion GetWindowLong...
podras encontrar muchas variables con distintos prefijos es una manera facil de identificar la funcion que lo usa
Re: Control ID en un diálogo
Posted:
Thu Jan 14, 2010 6:30 pm
by ICO
Hola Daniel
poner la define como se muestra, pero mi aplicación dejó de funcionar
Abraços..
Re: Control ID en un diálogo
Posted:
Thu Jan 14, 2010 11:14 pm
by Antonio Linares
Luiz,
Puedes poner un ejemplo completo de cómo lo estás usando ? gracias
Re: Control ID en un diálogo
Posted:
Fri Jan 15, 2010 1:12 am
by ICO
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
Re: Control ID en un diálogo
Posted:
Tue Jan 19, 2010 9:58 am
by Antonio Linares
Luiz,
Los identificadores tienen que estar definidos en tu fichero RC
Re: Control ID en un diálogo
Posted:
Tue Jan 19, 2010 10:35 am
by ICO
Gracias Antonio, voy a tratar de hacer después de que el informe del resultado..
abrazos