Focus en window MDICHILD

Post Reply
FiveWiDi
Posts: 1238
Joined: Mon Oct 10, 2005 2:38 pm
Has thanked: 3 times
Been thanked: 4 times

Focus en window MDICHILD

Post by FiveWiDi »

Hola a todos,

¿Cómo puedo saber si una de las window MDICHILD tiene el foco?

Gracias,
Un Saludo
Carlos G.

FiveWin 24.02 + Harbour 3.2.0dev (r2403071241), BCC 7.7 Windows 10
User avatar
Antonio Linares
Site Admin
Posts: 42529
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain
Has thanked: 31 times
Been thanked: 77 times
Contact:

Re: Focus en window MDICHILD

Post by Antonio Linares »

Carlos,

buenos dias

Prueba con oWndChild:hWnd == GetFocus()

Tambien podrias usar oWndChild:bGotFocus = { || MsgBeep() } y oWndChild:bLostFocus = { || MsgBeep() }

Puedes usar OutputDebugString( "foco recibido" ) y dbwin32 en vez de MsgBeep(). Si usas MsgInfo() alteraras la secuencia de foco
regards, saludos

Antonio Linares
www.fivetechsoft.com
JESUS MARIN
Posts: 178
Joined: Wed Jan 02, 2019 8:36 am

Re: Focus en window MDICHILD

Post by JESUS MARIN »

Buenos dias
En mi entorno de pruebas, MdiChildFolder, creé una función que me muestra todas las ventanas MdiChild y me marca la que está activa.


Image

Por lo tanto deberia ser sencillo resolverlo. Te copio el código de esta función

Code: Select all | Expand

//--------------------------------------------------------------------------
METHOD MenuFolders( oButton, nRow, nCol ) CLASS TMdiChildFolder


LOCAL aVentanasMdi:=::Genera_botones_mdi()
LOCAL I:=1
local oMenu
LOCAL nRowMenu:=oButton:nTop+oButton:oWnd:nTop+oButton:nHeight
LOCAL nColMenu:=oButton:nLeft

MENU oMenu POPUP
   FOR I=1 TO LEN(aVentanasMdi)
      IF aVentanasMdi[i]==Self:cCaption
         MENUITEM aVentanasMdi[i] OF oMenu CHECKED
      ELSE
         MENUITEM aVentanasMdi[i] OF oMenu
      ENDIF
   NEXT I
ENDMENU

FOR I=1 TO LEN(aVentanasMdi)
   oMenu:aItems[i]:bAction := HazBlock(i)
NEXT I

oMenu:Activate( nRowMenu,nColMenu, Self , .f. )

RETURN(NIL)

//-----------------------------------------------------------------------------
Jesús Marín
deumare@gmail.com

Mi especialidad en programación : Virtualidad real ( en vez de la realidad virtual ) ;)
FiveWiDi
Posts: 1238
Joined: Mon Oct 10, 2005 2:38 pm
Has thanked: 3 times
Been thanked: 4 times

Re: Focus en window MDICHILD

Post by FiveWiDi »

Muchas gracias Jesus,

Estoy buscando algo que no precise código, alguna DATA.

Supongo que si la clase tiene alguna DATA que al tomar el foco le da .T. y cuando lo pierde le da .F. sería lo ideal.
Un Saludo
Carlos G.

FiveWin 24.02 + Harbour 3.2.0dev (r2403071241), BCC 7.7 Windows 10
User avatar
Antonio Linares
Site Admin
Posts: 42529
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain
Has thanked: 31 times
Been thanked: 77 times
Contact:

Re: Focus en window MDICHILD

Post by Antonio Linares »

Carlos,

oWndChild:lFocused
regards, saludos

Antonio Linares
www.fivetechsoft.com
User avatar
Antonio Linares
Site Admin
Posts: 42529
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain
Has thanked: 31 times
Been thanked: 77 times
Contact:

Re: Focus en window MDICHILD

Post by Antonio Linares »

JESUS MARIN wrote: Fri Jan 31, 2025 9:51 am Buenos dias
En mi entorno de pruebas, MdiChildFolder, creé una función que me muestra todas las ventanas MdiChild y me marca la que está activa.


Image

Por lo tanto deberia ser sencillo resolverlo. Te copio el código de esta función

Code: Select all | Expand

//--------------------------------------------------------------------------
METHOD MenuFolders( oButton, nRow, nCol ) CLASS TMdiChildFolder


LOCAL aVentanasMdi:=::Genera_botones_mdi()
LOCAL I:=1
local oMenu
LOCAL nRowMenu:=oButton:nTop+oButton:oWnd:nTop+oButton:nHeight
LOCAL nColMenu:=oButton:nLeft

MENU oMenu POPUP
   FOR I=1 TO LEN(aVentanasMdi)
      IF aVentanasMdi[i]==Self:cCaption
         MENUITEM aVentanasMdi[i] OF oMenu CHECKED
      ELSE
         MENUITEM aVentanasMdi[i] OF oMenu
      ENDIF
   NEXT I
ENDMENU

FOR I=1 TO LEN(aVentanasMdi)
   oMenu:aItems[i]:bAction := HazBlock(i)
NEXT I

oMenu:Activate( nRowMenu,nColMenu, Self , .f. )

RETURN(NIL)

//-----------------------------------------------------------------------------
Jesús, muy bonito y profesional tu diseño.

Sería genial si compartieses un ejemplo para todos, gracias!
regards, saludos

Antonio Linares
www.fivetechsoft.com
User avatar
FranciscoA
Posts: 2163
Joined: Fri Jul 18, 2008 1:24 am
Location: Chinandega, Nicaragua, C.A.

Re: Focus en window MDICHILD

Post by FranciscoA »

Estoy buscando algo que no precise código, alguna DATA.

Carlos.
Cuando abres ventanas MDICHILD, en el elemento 2 del menu de la ventana principal se van mostrando las mdichilds abiertas y marcada la que tiene el foco. No sé si es lo que buscas. ( MENUINFO 2 )

Saludos.
Francisco J. Alegría P.
Chinandega, Nicaragua.

Fwxh-MySql-TMySql
JESUS MARIN
Posts: 178
Joined: Wed Jan 02, 2019 8:36 am

Re: Focus en window MDICHILD

Post by JESUS MARIN »

Querido Antonio
Por mi parte, encantado de ceder todo el códdigo.
Solo dime cómo hacerlo.
Saludos
Jesús Marín
Antonio Linares wrote: Fri Jan 31, 2025 10:06 pm
JESUS MARIN wrote: Fri Jan 31, 2025 9:51 am Buenos dias
En mi entorno de pruebas, MdiChildFolder, creé una función que me muestra todas las ventanas MdiChild y me marca la que está activa.


Image

Por lo tanto deberia ser sencillo resolverlo. Te copio el código de esta función

Code: Select all | Expand

//--------------------------------------------------------------------------
METHOD MenuFolders( oButton, nRow, nCol ) CLASS TMdiChildFolder


LOCAL aVentanasMdi:=::Genera_botones_mdi()
LOCAL I:=1
local oMenu
LOCAL nRowMenu:=oButton:nTop+oButton:oWnd:nTop+oButton:nHeight
LOCAL nColMenu:=oButton:nLeft

MENU oMenu POPUP
   FOR I=1 TO LEN(aVentanasMdi)
      IF aVentanasMdi[i]==Self:cCaption
         MENUITEM aVentanasMdi[i] OF oMenu CHECKED
      ELSE
         MENUITEM aVentanasMdi[i] OF oMenu
      ENDIF
   NEXT I
ENDMENU

FOR I=1 TO LEN(aVentanasMdi)
   oMenu:aItems[i]:bAction := HazBlock(i)
NEXT I

oMenu:Activate( nRowMenu,nColMenu, Self , .f. )

RETURN(NIL)

//-----------------------------------------------------------------------------
Jesús, muy bonito y profesional tu diseño.

Sería genial si compartieses un ejemplo para todos, gracias!
Jesús Marín
deumare@gmail.com

Mi especialidad en programación : Virtualidad real ( en vez de la realidad virtual ) ;)
User avatar
karinha
Posts: 7940
Joined: Tue Dec 20, 2005 7:36 pm
Location: São Paulo - Brasil
Been thanked: 3 times
Contact:

Re: Focus en window MDICHILD

Post by karinha »

Jseus, Crea una cuenta aqui:

https://mega.nz

Regards, saludos.
João Santos - São Paulo - Brasil - Phone: +55(11)95150-7341
User avatar
Antonio Linares
Site Admin
Posts: 42529
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain
Has thanked: 31 times
Been thanked: 77 times
Contact:

Re: Focus en window MDICHILD

Post by Antonio Linares »

Jesús,

Lo más sencillo es crear un repositorio gratuito en github, subir todo el código allí y compartir la URL del repositorio :)

https://github.com/

Gracias!
regards, saludos

Antonio Linares
www.fivetechsoft.com
Post Reply