FiveTech Support Forums

FiveWin / Harbour / xBase community
Board index FiveWin para Harbour/xHarbour SYSMENU en DIALOG
Posts: 654
Joined: Mon May 29, 2006 03:14 PM
SYSMENU en DIALOG
Posted: Wed Jun 13, 2012 05:43 AM

¿ Se puede poner un SYSMENU en un dialogo (DIALOG) ?

Gracias por las respuestas...

Mi abuelo decía: Los aviones vuelan porque Dios quiere, y los helicópteros ni Dios sabe porque vuelan.

FWH 16.02, xHarbour 1.2.3, Harbour 3.2.0, WorkShop 4.5, AJ Make 0.30, Borlan BCC 7.00, VisualStudio 2013
Posts: 44158
Joined: Thu Oct 06, 2005 05:47 PM
Re: SYSMENU en DIALOG
Posted: Wed Jun 13, 2012 11:03 AM
JM,

Prueba a crearlo desde la claúsula ON INIT del ACTIVTE DIALOG ... :

Code (fw): Select all Collapse
ACTIVATE DIALOG oDlg ON INIT BuildSysMenu( oDlg )

...

function BuildSysMenu( oDlg )

   local oSysMenu

   REDEFINE SYSMENU oSysMenu OF oDlg
      MENUITEM "&Hey! We are here" ACTION MsgInfo( "Yes, we are!" )

      MENUITEM FILE "..\bitmaps\Ico.bmp" ;
         ACTION MsgInfo( "FiveWin, Clipper + xBase + OOPS" )

      MENUITEM "&Reset..." ACTION oSysMenu:Reset()

   ENDMENU

return nil
regards, saludos

Antonio Linares
www.fivetechsoft.com
Posts: 654
Joined: Mon May 29, 2006 03:14 PM
Re: SYSMENU en DIALOG
Posted: Fri Jun 15, 2012 07:13 AM

No funciona, no aparece... el SysMenu.

Mi abuelo decía: Los aviones vuelan porque Dios quiere, y los helicópteros ni Dios sabe porque vuelan.

FWH 16.02, xHarbour 1.2.3, Harbour 3.2.0, WorkShop 4.5, AJ Make 0.30, Borlan BCC 7.00, VisualStudio 2013
Posts: 44158
Joined: Thu Oct 06, 2005 05:47 PM
Re: SYSMENU en DIALOG
Posted: Fri Jun 15, 2012 07:27 AM
JM,

Este ejemplo funciona bien aqui:

jmsys.prg
Code (fw): Select all Collapse
#include "FiveWin.ch"

function Main()

   local oDlg

   DEFINE DIALOG oDlg STYLE WS_SYSMENU

   ACTIVATE DIALOG oDlg CENTERED ;
      ON INIT BuildSysMenu( oDlg )

return nil

function BuildSysMenu( oDlg )

   local oSysMenu

   REDEFINE SYSMENU oSysMenu OF oDlg
      MENUITEM "&Hey! We are here" ACTION MsgInfo( "Yes, we are!" )

      MENUITEM FILE "..\bitmaps\Ico.bmp" ;
         ACTION MsgInfo( "FiveWin, Clipper + xBase + OOPS" )

      MENUITEM "&Reset..." ACTION oSysMenu:Reset()

   ENDMENU

return nil
regards, saludos

Antonio Linares
www.fivetechsoft.com
Posts: 632
Joined: Thu Jan 19, 2006 10:45 AM
Re: SYSMENU en DIALOG
Posted: Fri Jun 15, 2012 12:40 PM

Confirmado, funciona perfecto, aparece en la esquina superior izquierda y cuando le pulsas al reset se desactiva.

Saludos



Andrés González desde Mallorca
Posts: 654
Joined: Mon May 29, 2006 03:14 PM
Re: SYSMENU en DIALOG
Posted: Fri Jun 15, 2012 11:32 PM
Mi dialogo es desde recurso (RC) y no me funciona...

Code (fw): Select all Collapse
#include "FiveWin.ch"
function main()
local oDlg
DEFINE DIALOG oDlg NAME "DIALOGO"
// ...
ACTIVATE DIALOG oDlg CENTER ON INIT BuildSysMenu( oDlg )
return nil

function BuildSysMenu( oDlg )
   local oSysMenu
   REDEFINE SYSMENU oSysMenu OF oDlg
      MENUITEM "&Hey! We are here" ACTION MsgInfo( "Yes, we are!" )
      MENUITEM FILE "..\bitmaps\Ico.bmp" ;
         ACTION MsgInfo( "FiveWin, Clipper + xBase + OOPS" )
      MENUITEM "&Reset..." ACTION oSysMenu:Reset()
   ENDMENU
return nil

/* Fichero RC
DIALOGO DIALOG 50, 50, 160, 140
STYLE DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU | WS_MINIMIZEBOX
CAPTION "Prueba..."
FONT 8, "MS Sans Serif"
{
//...
}
*/
Mi abuelo decía: Los aviones vuelan porque Dios quiere, y los helicópteros ni Dios sabe porque vuelan.

FWH 16.02, xHarbour 1.2.3, Harbour 3.2.0, WorkShop 4.5, AJ Make 0.30, Borlan BCC 7.00, VisualStudio 2013
Posts: 44158
Joined: Thu Oct 06, 2005 05:47 PM
Re: SYSMENU en DIALOG
Posted: Sat Jun 16, 2012 07:22 AM

JM,

Quita el estilo DS_MODALFRAME en tu RC y funcionando :-)

regards, saludos

Antonio Linares
www.fivetechsoft.com
Posts: 654
Joined: Mon May 29, 2006 03:14 PM
Re: SYSMENU en DIALOG
Posted: Sun Jun 17, 2012 10:21 AM
Antonio Linares wrote:Quita el estilo DS_MODALFRAME en tu RC y funcionando :-)

Efectivamente, ¡¡¡ funciona !!!
¿ Que hace el estilo DS_MODALFRAME ? o ¿ que hace si lo quito ?

¿ Como pongo un icono en la esquina superior izquierda, para un dialogo mediante recursos ? me sale un cuadradito blanco.

Gracias.
Mi abuelo decía: Los aviones vuelan porque Dios quiere, y los helicópteros ni Dios sabe porque vuelan.

FWH 16.02, xHarbour 1.2.3, Harbour 3.2.0, WorkShop 4.5, AJ Make 0.30, Borlan BCC 7.00, VisualStudio 2013
Posts: 44158
Joined: Thu Oct 06, 2005 05:47 PM
Re: SYSMENU en DIALOG
Posted: Sun Jun 17, 2012 11:03 AM
JM,

Al quitar DS_MODALFRAME aparece el menu de systema. Al usar DS_MODALFRAME se quita. Digamos que Microsoft, por defecto, prefiere que el diálogo no muestre menu de sistema, pero no pasa nada por usarlo.

Aqui tienes un ejemplo de como cambiarle el icono:

Code (fw): Select all Collapse
#include "FiveWin.ch"

function Main()

   local oDlg, oIco
   
   DEFINE ICON oIco FILE "..\icons\fivewin.ico"

   DEFINE DIALOG oDlg NAME "DIALOGO" ICON oIco

   ACTIVATE DIALOG oDlg CENTERED ;
      ON INIT BuildSysMenu( oDlg )

return nil

function BuildSysMenu( oDlg )

   local oSysMenu

   REDEFINE SYSMENU oSysMenu OF oDlg
      MENUITEM "&Hey! We are here" ACTION MsgInfo( "Yes, we are!" )

      MENUITEM FILE "..\bitmaps\Ico.bmp" ;
         ACTION MsgInfo( "FiveWin, Clipper + xBase + OOPS" )

      MENUITEM "&Reset..." ACTION oSysMenu:Reset()

   ENDMENU

return nil
regards, saludos

Antonio Linares
www.fivetechsoft.com
Posts: 654
Joined: Mon May 29, 2006 03:14 PM
Re: SYSMENU en DIALOG
Posted: Sun Jun 17, 2012 11:11 AM

Perfecto... funciona todo correctamente.

Gracias.

Mi abuelo decía: Los aviones vuelan porque Dios quiere, y los helicópteros ni Dios sabe porque vuelan.

FWH 16.02, xHarbour 1.2.3, Harbour 3.2.0, WorkShop 4.5, AJ Make 0.30, Borlan BCC 7.00, VisualStudio 2013

Continue the discussion