Página 1 de 1

Ajuda com hwg_EnableMenuSystemItem

Enviado: 10 Out 2013 18:15
por asimoes
Pessoal,

Estou testando essa função da hwgui e só estou conseguindo sucesso com a primeira instrução abaixo:

hwg_EnableMenuSystemItem( oMainWindow:handle, SC_CLOSE, .F. ) // Aqui funciona (desabilita o X da janela)

hwg_EnableMenuSystemItem( oMainWindow:handle, SC_MAXIMIZE, .F. ) // Aqui não funciona

hwg_EnableMenuSystemItem( oMainWindow:handle, SC_MINIMIZE, .F. ) // Aqui não funciona

Aluguma dica?

Ajuda com hwg_EnableMenuSystemItem

Enviado: 10 Out 2013 22:22
por asimoes
Pessoal,

Por favor quem quiser, façam os testes.
Reportem erros.

Os exemplo abaixo desabilita os controles da janela ativa.

Código: Selecionar todos

FUNCTION MAIN
  INIT WINDOW oMainWindow ;
        MAIN ;
        TITLE   "Teste" ;
        ICON    oIconApp ;
        AT      0,0 ;
        SIZE    640,480 ;
        FONT    oFont ;
        COLOR   16760439 ;
        STYLE   DS_CENTER + WS_VISIBLE + WS_SYSMENU;
        ON INIT {||DesabilitaBotoesSysMenu()}
        
        SET TIMER oTimer OF oMainWindow VALUE 5000 ACTION {||HabilitaBotoesSysMenu()}
        
   oMainWindow:Center()
   
   oMainWindow:Activate()
RETURN Nil

FUNCTION DesabilitaBotoesSysMenu
   //DisableSysMenu(oMainWindow:handle,SC_CLOSE)
   // posicoes que desabilitam o controle da janela:
   // 0 = restaurar
   // 2 = resize da janela
   // 3 = minimizar da janela
   // 4 = maximizar da janela
   // 6 = fechar da janela
   DisableSysMenu2(oMainWindow:handle,2) //  POR MF_BYPOSITION
   DisableSysMenu(oMainWindow:handle,SC_SIZE) // POR MF_BYCOMMAND 
RETURN -1

FUNCTION HabilitaBotoesSysMenu
   oMainWindow:oTimer:End()
   EnableSysMenu2(oMainWindow:handle,2) // POR MF_BYPOSITION
   EnableSysMenu(oMainWindow:handle,SC_SIZE) // POR MF_BYCOMMAND 
RETURN -1

Código: Selecionar todos

//ControleJanela.c
#pragma BEGINDUMP
#define OEMRESOURCE
#include "hwingui.h"
#include <commctrl.h>
#ifdef __DMC__
#define MIIM_BITMAP     0x00000080
#endif
#include "hbapiitm.h"
#include "hbvm.h"
#include "hbstack.h"

#define  FLAG_DISABLED   1

HB_FUNC ( DISABLESYSMENU )
{
  HWND hWnd;
  HMENU hMenu;
  int menuItemCount;
  
  hWnd = (HWND) hb_parnl( 1 );
  hMenu = GetSystemMenu( hWnd, FALSE );
  if (hMenu != 0)
  { 
   DeleteMenu( hMenu, HB_PARHANDLE( 2 ), MF_BYCOMMAND);
  } 
  {
   hb_retni( menuItemCount );
  }
}

HB_FUNC ( ENABLESYSMENU )
{
  HWND hWnd;
  HMENU hMenu;
  int menuItemCount;
  
  hWnd = (HWND) hb_parnl( 1 );
  hMenu = GetSystemMenu( hWnd, TRUE );
  if (hMenu != 0)
  { 
   DeleteMenu( hMenu, HB_PARHANDLE( 2 ), MF_BYCOMMAND);
  } 
  {
   hb_retni( menuItemCount );
  }
}

HB_FUNC ( DISABLESYSMENU2 )
{
  HWND hWnd;
  HMENU hMenu;
  int menuItemCount;
  
  hWnd = (HWND) hb_parnl( 1 );
  hMenu = GetSystemMenu( hWnd, FALSE );
  menuItemCount = GetMenuItemCount(hMenu);
  if (hMenu != 0)
  { 
   RemoveMenu( hMenu, HB_PARHANDLE( 2 ), MF_BYPOSITION);
  }
  {
   hb_retni( menuItemCount );
  } 
}

HB_FUNC ( ENABLESYSMENU2 )
{
  HWND hWnd;
  HMENU hMenu;
  int menuItemCount;
  
  hWnd = (HWND) hb_parnl( 1 );
  hMenu = GetSystemMenu( hWnd, TRUE );
  if (hMenu != 0)
  { 
   RemoveMenu( hMenu, HB_PARHANDLE( 2 ), MF_BYPOSITION);
  } 
  {
   hb_retni( menuItemCount );
  }
}
#pragma ENDDUMP