FiveTech Support Forums

FiveWin / Harbour / xBase community
Board index FiveWin para Harbour/xHarbour Teclas ALT+A,B,C en Menu Principal
Posts: 8515
Joined: Tue Dec 20, 2005 07:36 PM
Teclas ALT+A,B,C en Menu Principal
Posted: Tue Feb 11, 2014 12:29 PM
Buenas, Como hago para que ALT+A,B,C, etc se accione en FiveWin?

https://github.com/harbour/core/blob/ma ... e/inkey.ch

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

/* Alt keys */

#define K_ALT_A        286 /* Alt-A            */
#define K_ALT_B        304 /* Alt-B            */
#define K_ALT_C        302 /* Alt-C            */
#define K_ALT_D        288 /* Alt-D            */
#define K_ALT_E        274 /* Alt-E            */
#define K_ALT_F        289 /* Alt-F            */
#define K_ALT_G        290 /* Alt-G            */
#define K_ALT_H        291 /* Alt-H            */
#define K_ALT_I        279 /* Alt-I            */
#define K_ALT_J        292 /* Alt-J            */
#define K_ALT_K        293 /* Alt-K            */
#define K_ALT_L        294 /* Alt-L            */
#define K_ALT_M        306 /* Alt-M            */
#define K_ALT_N        305 /* Alt-N            */
#define K_ALT_O        280 /* Alt-O            */
#define K_ALT_P        281 /* Alt-P            */
#define K_ALT_Q        272 /* Alt-Q            */
#define K_ALT_R        275 /* Alt-R            */
#define K_ALT_S        287 /* Alt-S            */
#define K_ALT_T        276 /* Alt-T            */
#define K_ALT_U        278 /* Alt-U            */
#define K_ALT_V        303 /* Alt-V            */
#define K_ALT_W        273 /* Alt-W            */
#define K_ALT_X        301 /* Alt-X            */
#define K_ALT_Y        277 /* Alt-Y            */
#define K_ALT_Z        300 /* Alt-Z            */
#define K_ALT_BACKQUOTE    297 /* Alt-`            */
#define K_ALT_1        376 /* Alt-1            */
#define K_ALT_2        377 /* Alt-2            */
#define K_ALT_3        378 /* Alt-3            */
#define K_ALT_4        379 /* Alt-4            */
#define K_ALT_5        380 /* Alt-5            */
#define K_ALT_6        381 /* Alt-6            */
#define K_ALT_7        382 /* Alt-7            */
#define K_ALT_8        383 /* Alt-8            */
#define K_ALT_9        384 /* Alt-9            */
#define K_ALT_0        385 /* Alt-0            */
#define K_ALT_MINUS      386
#define K_ALT_EQUALS      387 /* * Alt-Equals          */
#define K_ALT_OSB       282
#define K_ALT_CSB       283
#define K_ALT_BACKSLASH    299
#define K_ALT_SC        295
#define K_ALT_QUOTE      296
#define K_ALT_COMMA      307
#define K_ALT_PERIOD      308
#define K_ALT_SLASH      309 /* Alt-Slash (fyi Ctrl-? doesn't
                     work - maybe just under xp?) */

static oWnd

//----------------------------------------------------------------//

function Main()

   local oBar
 
 
   SetKey( K_ALT_B, {|| If( GetKeyState( VK_CONTROL ), TESTE1(), Nil ) } )

   SetKey( K_ALT_C, {|| If( GetAsyncKey( VK_MENU ), TESTE2(), Nil ) } )

   DEFINE WINDOW oWnd TITLE "SetKey Action in Alt+ "

   DEFINE BUTTONBAR oBar _3D OF oWnd

   DEFINE BUTTON OF oBar // ACTION BuildObj()

   SET MESSAGE OF oWnd TO "SetKey Action in Alt+" NOINSET CLOCK DATE KEYBOARD

   ACTIVATE WINDOW oWnd

return nil

FUNCTION TESTE1()

   ? [TESTE1 ]

RETURN NIL

FUNCTION TESTE2()

   ? [TESTE2 ]

RETURN NIL


Gracias, saludos.
João Santos - São Paulo - Brasil - Phone: +55(11)95150-7341
Posts: 8515
Joined: Tue Dec 20, 2005 07:36 PM
Re: Teclas ALT+A,B,C en Menu Principal
Posted: Tue Feb 11, 2014 05:29 PM
No funciona

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

#Define VK_A   65    // tecla CTRL+A
#Define VK_B   66    // tecla CTRL+B
#Define VK_K   75    // tecla CTRL+K
#define VK_P   80    // tecla CTRL+P

//----------------------------------------------------------------//

static oWnd

function Main()

   local oBar

   SetKey( VK_A, {|| If( GetKeyState( VK_CONTROL ), Shortcut(), Nil ) } )

   SetKey( VK_B, {|| If( GetKeyState( VK_CONTROL ), Shortcut(), Nil ) } )

   SetKey( VK_K, {|| If( GetKeyState( VK_CONTROL ), Shortcut(), Nil ) } )

   SetKey( VK_P, {|| If( GetASyncKey( VK_MENU    ), Shortcut(), Nil ) } )


   DEFINE WINDOW oWnd TITLE "SetKey    "

   DEFINE BUTTONBAR oBar _3D OF oWnd

   DEFINE BUTTON OF oBar

   SET MESSAGE OF oWnd TO "Setkey    " NOINSET CLOCK DATE KEYBOARD

   ACTIVATE WINDOW oWnd

return nil

Procedure Shortcut()

   If GetKeyState(VK_SHIFT) // Shift
      ? "Shift+"  // funciona
   end

   If GetKeyState(VK_CONTROL) // CTRL
      ? "Ctrl+"  // funciona
   end

   If GetKeyState(VK_MENU) // Alt
      ? "Alt+"  // No funciona
   end

return
João Santos - São Paulo - Brasil - Phone: +55(11)95150-7341
Posts: 1144
Joined: Mon Feb 05, 2007 07:15 PM
Re: Teclas ALT+A,B,C en Menu Principal
Posted: Tue Feb 11, 2014 07:28 PM
hola:
Code (fw): Select all Collapse
oWnd:bKeyDown := {|nKey| RunKey( nKey ) }
ACTIVATE WINDOW oWnd

FUNCTION RunKey( nKey )
   DO CASE
   CASE nKey = VK_F9
   CASE ( nKey == ASC( "A" ) .OR. nKey == ASC( "a" ) ) .AND. GetKeyState( VK_CONTROL )
   OTHERWISE
      oWnd:SetFocus()
   ENDCASE
RETURN NIL


SALUDOS.
Cesar Cortes Cruz

SysCtrl Software

Mexico



' Sin +- FWH es mejor "
Posts: 8515
Joined: Tue Dec 20, 2005 07:36 PM
Re: Teclas ALT+A,B,C en Menu Principal
Posted: Wed Feb 12, 2014 05:18 PM
César, no funciona:


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

static oWnd

function Main()

   local oBar

   DEFINE WINDOW oWnd TITLE "SetKey - ALT+ no Funciona"

   DEFINE BUTTONBAR oBar _3D OF oWnd

   DEFINE BUTTON OF oBar

   SET MESSAGE OF oWnd TO "Setkey ALT+" NOINSET CLOCK DATE KEYBOARD

   oWnd:bKeyDown := { | nKey | RunKey( nKey ) }

   ACTIVATE WINDOW oWnd

RETURN NIL

FUNCTION RunKey( nKey )

   DO CASE
   CASE nKey = VK_F9

      ? [nkey 1: ], nKey  // funciona

   CASE ( nKey == ASC( "A" ) .OR. nKey == ASC( "a" ) ) .AND. ;
          GetKeyState( VK_CONTROL )  // No funciona

      ? [nkey 2: ], nKey

   CASE ( nKey == ASC( "P" ) .OR. nKey == ASC( "p" ) ) .AND. ;
          GetAsynckey( VK_MENU )  // no funciona

      ? [nkey 3: ], nKey

   CASE ( nKey == ASC( "A" ) .OR. nKey == ASC( "a" ) ) .AND. ;
          GetKeyState( VK_SHIFT )  // funciona

      ? [nkey 4: ], nKey

   CASE ( nKey == ASC( "A" ) .OR. nKey == ASC( "a" ) ) .AND. ;
          GetKeyState( VK_SHIFT )  // funciona

      ? [nkey 5: ], nKey

   OTHERWISE

      oWnd:SetFocus()

   ENDCASE

RETURN NIL
João Santos - São Paulo - Brasil - Phone: +55(11)95150-7341

Continue the discussion