Beep on ALT-key

Post Reply
User avatar
Enrico Maria Giordano
Posts: 7355
Joined: Thu Oct 06, 2005 8:17 pm
Location: Roma - Italia
Contact:

Beep on ALT-key

Post by Enrico Maria Giordano »

I'm trying to trap ALT-key. It works, but I hear a sound. How can I avoid it?

EMG
User avatar
karinha
Posts: 4882
Joined: Tue Dec 20, 2005 7:36 pm
Location: São Paulo - Brasil

Re: Beep on ALT-key

Post by karinha »

For Example?

Regards.
João Santos - São Paulo - Brasil
User avatar
karinha
Posts: 4882
Joined: Tue Dec 20, 2005 7:36 pm
Location: São Paulo - Brasil

Re: Beep on ALT-key

Post by karinha »

Button, Listbox, combo, Where? Do you have a test code?

Regards.
João Santos - São Paulo - Brasil
User avatar
karinha
Posts: 4882
Joined: Tue Dec 20, 2005 7:36 pm
Location: São Paulo - Brasil

Re: Beep on ALT-key

Post by karinha »

Normal.

Master, see if you haven't connected anything in the windows settings.

Code: Select all

// Testing NON-Modal Dialog Boxes - \SAMPLES\TESTDLGN.PRG

#include "fivewin.ch"

Static MainWnd

Function Main()

   DEFINE WINDOW MainWnd FROM 1, 1 TO 22, 75 ;
      TITLE "Test" ;
      MENU BuildMenu() ;
      COLOR "W/B"
      
   ACTIVATE WINDOW MainWnd MAXIMIZED ;
      VALID MsgYesNo( "Want to end ?" )
   
Return NIL

Function BuildMenu()

   local oMenu

   MENU oMenu
      MENUITEM OemToAnsi( "&Try" ) ACTION Try( )

      MENUITEM "E&xit" ACTION MainWnd:End()
   ENDMENU
   
Return oMenu

Function Try()

   Local oDlg

   DEFINE DIALOG oDlg TITLE "Non modal dialog"
   
   @ 2, 2 BUTTON "&End" OF oDlg ACTION oDlg:End( )
   
   /*
   ACTIVATE DIALOG oDlg CENTERED NOWAIT ;
      VALID MsgYesNo( "Want to close it ?" )
   */

   ACTIVATE DIALOG oDlg CENTERED

Return NIL
 
Regards.
João Santos - São Paulo - Brasil
User avatar
Enrico Maria Giordano
Posts: 7355
Joined: Thu Oct 06, 2005 8:17 pm
Location: Roma - Italia
Contact:

Re: Beep on ALT-key

Post by Enrico Maria Giordano »

Yes, as I want to handle the ALT-key combination through bKeyDown not with a menu item.

EMG
User avatar
karinha
Posts: 4882
Joined: Tue Dec 20, 2005 7:36 pm
Location: São Paulo - Brasil

Re: Beep on ALT-key

Post by karinha »

Master:

En wBrowse.prg o Dialog.prg haga esto:

In wBrowse.prg or Dialog.prg...

Code: Select all


   DATA   bAltKey

    // Para Acionamento da Tecla Alt+++...
    METHOD SysCommand( nType, nLoWord, nHiWord )

en:

METHOD Syscommand( nType, nLowOrd, nHiWord ) Class TWBrowse  //Era TcBrowse

    Local oFolder, nItem, nButton 
    Local hCtrl 

    DO CASE

    Case nType == SC_KEYMENU   // Alt+...

       If ::bAltKey != Nil
          Eval( ::bAltKey, nLoWord )
       Endif

    ENDCASE

Return Super:SysCommand( nType, nLoWord, nHiWord )


    // En el modulo:

    // Para Acionar a Tecla ALT, Dentro da ListBox(wBrowse.Prg)
    oLbx:bAltKey  := { | nKey, nFlags | TESTE_KEY( nKey, aGetVenda,  oLbx,   ;
                                                     oDlgVendas, DbClientes, ;
                                                     DbEstoque,  DbPedidos,  ;
                                                     DbFornece, oSaida ) }


// Para Usar Tecla ALT+Letra
STATIC FUNCTION Teste_Key( nKey, aGetVenda,  oLbx, oDlgVendas, DbClientes, ;
                                 DbEstoque,  DbPedidos,  DbFornece, oSaida )

   LOCAL cKey := CHR( nKey )
   LOCAL X, oCtrl, oMeter, oText, lEnd, DeOndeVem, DbSangria

   MEMVAR nValorCompra, aSaysMoveis, nTelefone, cNomeClien, nCodigoProd
   MEMVAR NNUMEROTEL

   IF GetKeyState( VK_CONTROL ) .AND. ;
      GetKeyState( VK_SHIFT )

      //MsgInfo( " CONTROL + SHIFT + " + cKey )

   ELSEIF GetKeyState( VK_CONTROL )

      //MsgInfo( " ALT + CONTROL + " + cKey )

   ELSEIF GetKeyState( VK_SHIFT )

      //MsgInfo( " ALT + SHIFT + " + cKey )

   ELSEIF GetKeyState( VK_MENU )                    // alt key

      //MsgInfo( " ALT + " + cKey + " ACIONADA " )

   ENDIF

   cKey := Upper( cKey )

   IF  cKey == "I"            // Alt+I

      // MsgInfo( " INCLUIR" )

   ELSEIF cKey == "A"    // Alt+A

      // MsgInfo( " ALTERAR" )

   ELSEIF cKey == "C"    // Alt+C

      // Se a ListBox dos Produtos Tiver Ötens...
      SELECT ( DbPedidos:cAlias )
      GO TOP

      IF EOF()

         lLigaCliente := .T.  //-> Liga o Get dos Clientes

         aSaysMoveis[1]:Show()

         aGetVenda[1]:Show()
         aGetVenda[2]:Show()

         XFOCUS( aGetVenda[3] )

         RETURN( .T. )
      ELSE

         nCodigoProd  := SPACE( 13 )

         aGetVenda[3]:VarPut( nCodigoProd )
         aGetVenda[3]:Refresh()

         XFOCUS( aGetVenda[3] )

         RETURN( .F. )
      ENDIF

   ELSEIF cKey == "E"    // Alt+E

      //MsgInfo( " EXCLUIR" )

   ELSEIF cKey == "F"    // Alt+F FORNECEDORES

      // Se a ListBox dos Produtos Tiver Ötens...
      SELECT ( DbPedidos:cAlias )
      GO TOP

      IF EOF()

         lLigaCliente := .T.  //-> Liga o Get dos Clientes

         aSaysMoveis[1]:Show()

         aGetVenda[1]:Show()
         aGetVenda[2]:Show()

         XFOCUS( aGetVenda[3] )

         RETURN( .T. )

      ELSE

         nCodigoProd  := SPACE( 13 )

         aGetVenda[3]:VarPut( nCodigoProd )
         aGetVenda[3]:Refresh()

         XFOCUS( aGetVenda[3] )

         RETURN( .F. )

      ENDIF

   ELSEIF cKey == "P"    // Alt+P

      IF lPesqFone .AND. nValorCompra <= 0

         //MsgInfo( " ULTIMOS PEDIDOS DO CLIENTE" )
         ULTIMOS_PEDIDOS( nKey, aGetVenda,  oLbx, oDlgVendas, DbClientes, ;
                                DbEstoque,  DbPedidos, oSaida )
      ELSE

         RETURN( .F. )

      ENDIF

   ELSEIF cKey == "R"    // Alt+R

      //MsgInfo( OemToAnsi( " RELATàRIOS" ) )

      //-> Reservada Para a VALOR NO CAIXA DO DIA -> VALORNCX.PRG
   ELSEIF cKey == "V"  //-> ALT+V

      IF NVALORCOMPRA <= 0

         VALORNCX( DbPedidos, DbSangria, oLbx, DeOndeVem := 1,             ;
            oMeter, oText, lEnd )

      ELSE

         // mensa

      ENDIF

      SELECT ( DbPedidos:cAlias )
      DbPedidos:SetOrder( 1 )
      GO TOP

      //-> Codigo do Produto
      nCodigoProd  := SPACE( 13 )
      aGetVenda[3]:VarPut( nCodigoProd )
      aGetVenda[3]:Refresh()
      XFOCUS( aGetVenda[3] )

      //-> Reservada Para a Calculadora - At+X na ListBox dos Produtos
   ELSEIF cKey == "X"  //-> Chamar a Calculadora

      CALCULAD( 0, X, oCtrl )

   ENDIF

RETURN( nKey )
 
Regards,
João Santos - São Paulo - Brasil
User avatar
karinha
Posts: 4882
Joined: Tue Dec 20, 2005 7:36 pm
Location: São Paulo - Brasil

Re: Beep on ALT-key

Post by karinha »

ok. ahora, és con el maestro Cristóbal. Regards, saludos.
João Santos - São Paulo - Brasil
User avatar
cnavarro
Posts: 5792
Joined: Wed Feb 15, 2012 8:25 pm
Location: España

Re: Beep on ALT-key

Post by cnavarro »

Enrico, I believe that this characteristic is changed in the configuration of the Operating System.
C. Navarro
Hay dos tipos de personas: las que te hacen perder el tiempo y las que te hacen perder la noción del tiempo
Si alguien te dice que algo no se puede hacer, recuerda que esta hablando de sus limitaciones, no de las tuyas.
User avatar
Otto
Posts: 4470
Joined: Fri Oct 07, 2005 7:07 pm
Contact:

Re: Beep on ALT-key

Post by Otto »

Enrico, I will remember that we changed for a similar case
METHOD HandleEvent( nMsg, nWParam, nLParam ) CLASS TControl
case nMsg == WM_SYSCOMMAND
return ::SysCommand( nWParam, nLoWord( nLParam ), nHiWord( nLParam ) )
Best regards,
Otto
********************************************************************
mod harbour - Vamos a la conquista de la Web
modharbour.org

********************************************************************
User avatar
Enrico Maria Giordano
Posts: 7355
Joined: Thu Oct 06, 2005 8:17 pm
Location: Roma - Italia
Contact:

Re: Beep on ALT-key

Post by Enrico Maria Giordano »

I don't want to alter the FWH source code. Anyway, I tried with OVERRIDE command and it didn't work (the program didn't start).

EMG
User avatar
James Bott
Posts: 4654
Joined: Fri Nov 18, 2005 4:52 pm
Location: San Diego, California, USA
Contact:

Re: Beep on ALT-key

Post by James Bott »

Enrico,

You don't have to modify the source, you can subclass instead.

James
FWH 18.05/xHarbour 1.2.3/BCC7/Windows 10
Post Reply