Como saber que IDs estan definidos en un recurso

Post Reply
carlosmora
Posts: 16
Joined: Thu Dec 01, 2005 4:15 pm

Como saber que IDs estan definidos en un recurso

Post by carlosmora »

Hola,
bueno, pues lo dicho, quisiera saber si hay modo de conocer los IDs definidos en un Diálogo conociendo el nombre del diálogo, sin tener que definirlo y eso. En realidad me valdría aunque los tuviera que definir, pero antes del activate dialog.
Es para no tener que declarar a mano los say transparentes. Si les asigno un rango de IDs predefinido, recorro los id del diálogo y si esta en el rango le hago el redefine correspondiente.

Saludos
User avatar
Antonio Linares
Site Admin
Posts: 37481
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain
Contact:

Post by Antonio Linares »

Carlos,

Tendrías que hacerlo desde la claúsula ON INIT en el ACTIVATE:

Code: Select all

   ACTIVATE DIALOG oDlg ;
      ON INIT RedefineSays( oDlg ) 
En la función RedefineSays() a la que llamas, ya tienes el handle de ventana del diálogo, oDlg:hWnd. Y con ese handle puedes recorrer todos sus controles hijos:

Code: Select all

function RedefineSays( oDlg )

   local hCtrl := GetWindow( oDlg:hWnd, GW_CHILD )

   while hCtrl != 0
      if GetClassName( hCtrl ) == "Static"  // SAY
         ...
      endif
      hCtrl = GetWindow( hCtrl, GW_HWNDNEXT )
   end

return nil
regards, saludos

Antonio Linares
www.fivetechsoft.com
carlosmora
Posts: 16
Joined: Thu Dec 01, 2005 4:15 pm

Post by carlosmora »

Gracias Antonio,
Necesitaría conocer el ID porque según el mismo es la definicion que tengo del Say, por decirte algo, los ID 100 al 199 están con una fuente y un color, los 200 a 299 con otro, etc. Como obtengo el ID?

Gracias
User avatar
Antonio Linares
Site Admin
Posts: 37481
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain
Contact:

Post by Antonio Linares »

Carlos,

GetDlgCtrlID( hCtrl ) --> nId
regards, saludos

Antonio Linares
www.fivetechsoft.com
Post Reply