HIDESTARTICON / HIDETASKBAR Funcional desde DIALOGs

HIDESTARTICON / HIDETASKBAR Funcional desde DIALOGs

Postby Arturo Lopesoria » Fri Apr 03, 2009 2:34 pm

Hola a todos.
Tengo una aplicacion con una ventana principal y varios dialogos
La ventana principal usa unicametne botones y no usa menus, siendo un requisito no mostrar la barra de tareas.
He logrado mantener oculta la barra con el siguietne codigo:

Code: Select all  Expand view
       
oWnd:bGotFocus:={|| SHFullScreen( GetActiveWindow(), SHFS_HIDESTARTICON), ;
                                  SHFullScreen( GetActiveWindow(), SHFS_HIDETASKBAR   ), MoveWindow( oWnd:hWnd, 0,0,240,320 ) }
 


Esto funciona aun cuando el usuario pulsa la tecla de Start/windows, ejecuta alguna otra ventana de windows y regresa a la aplicacion,
siempre y cuando se encuentre en la ventana principal, sin embargo, si se encuentra en un Dialog no funciona, esto es:
al regresar a la aplicacion despues de haber abierto otra ventana de windows, la barra de tareas aparece en el Dialog.

He intentado incluir el ausente metodo ::GotFocus() en la clase TDialog, a partir del mismo metodo en TWindow,
y he probado que GotFocus si se ejecuta al recibir el foco, pero el codigo arriba mencionado no hace nada aparentemente cuando es llamado desde un Dialog.

ALGUNA SUGERENCIA?

Gracias, Saludos.
Arturo LS
User avatar
Arturo Lopesoria
 
Posts: 94
Joined: Fri Aug 10, 2007 1:47 am
Location: Mexico DF

Re: HIDESTARTICON / HIDETASKBAR Funcional desde DIALOGs

Postby Antonio Linares » Sat Apr 04, 2009 10:46 pm

Arturo,

Aqui tienes un ejemplo,

test.prg
Code: Select all  Expand view

#include "FWCE.ch"

#define SHFS_HIDETASKBAR      0x0002
#define SHFS_HIDESTARTICON    0x0020
 
function Main()
 
   local oWnd
 
   DEFINE WINDOW oWnd TITLE "Test"

   @ 2, 2 BUTTON "Exit" ACTION oWnd:End() SIZE 80, 20
   
   @ 4, 2 BUTTON "Dialog" ACTION BuildDialog() SIZE 80, 20

   oWnd:bGotFocus = { || SHFullScreen( GetActiveWindow(), SHFS_HIDESTARTICON ),;
                         SHFullScreen( GetActiveWindow(), SHFS_HIDETASKBAR ),;
                         MoveWindow( oWnd:hWnd, 0, 0, 240, 320 ) }
 
   ACTIVATE WINDOW oWnd ;
      ON INIT ( SHFullScreen( oWnd:hWnd, SHFS_HIDESTARTICON ),;
                SHFullScreen( oWnd:hWnd, SHFS_HIDETASKBAR ),;
                MoveWindow( oWnd:hWnd, 0, 0, 240, 320 ) )
 
return nil

function BuildDialog()

   local oDlg
   
   DEFINE DIALOG oDlg

   @ 2, 2 BUTTON "Exit" ACTION oDlg:End() SIZE 40, 10
   
   ACTIVATE DIALOG oDlg ;
      ON INIT ( DlgFullScreen( oDlg:hWnd ),;
                MoveWindow( oDlg:hWnd, 0, 0, 240, 320 ) )
   
return nil    

#pragma BEGINDUMP

#include <hbapi.h>
#include <windows.h>
#include <aygshell.h>

HB_FUNC( DLGFULLSCREEN )
{
   SHINITDLGINFO shidi;
 
   memset( &shidi, 0, sizeof( SHINITDLGINFO ) );
 
   shidi.dwMask  = SHIDIM_FLAGS;
   shidi.hDlg    = ( HWND ) hb_parnl( 1 );
   shidi.dwFlags = SHIDIF_SIZEDLGFULLSCREEN;
 
   SHInitDialog( &shidi );
}

#pragma ENDDUMP
 
regards, saludos

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

Re: HIDESTARTICON / HIDETASKBAR Funcional desde DIALOGs

Postby Arturo Lopesoria » Tue Apr 07, 2009 9:39 pm

Gracias Antonio.
Lo voy a probar ahora mismo.
Saludos y feliz semana Santa!!
Arturo LS
User avatar
Arturo Lopesoria
 
Posts: 94
Joined: Fri Aug 10, 2007 1:47 am
Location: Mexico DF


Return to FiveWin para Pocket PC

Who is online

Users browsing this forum: No registered users and 7 guests