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