Tecla BACK en smartphone

Post Reply
Salvador
Posts: 144
Joined: Sun Dec 18, 2005 3:18 pm
Location: España

Tecla BACK en smartphone

Post by Salvador »

Alguien sabe como se captura la pulsacion de dicha tecla desde un get?

He conseguido anular su funcionalidad con:

Code: Select all | Expand

DEFINE DIALOG oDlg RESOURCE "DLGPASSWORD" OF oCli:oWnd

   
   REDEFINE SAY ID 101 COLOR CLR_BLACK, CLR_WHITE OF oDlg
   REDEFINE GET oGet VAR oCli:cargo ID 102  OF oDlg;
   ON CHANGE oGet:Assign()   
     
    oGet:bGotFocus         := {|| SetInputmode( oGet:hWnd, IM_AMBIG ) }
   
    oDlg:bKeydown         := {|nkey| msginfo(str(nkey)+"get")}
    oDlg:bKeydown         := {|nkey| msginfo(str(nkey)+"dialogo get")}
    oCli:oWnd:bKeydown := {|nkey| msginfo(str(nkey)+" ventana principal")}
    ACTIVATE DIALOG oDlg;
    ON INIT ( DlgFullScr(oDlg:hwnd), oDlg:Setmenu( MenuPassword( oDlg ) ),;
                 VKBACKDISABLE( oDlg:hWnd ) )
      
HB_FUNC( VKBACKDISABLE ) // deshabilita la tecla back
{
   HWND hMenuBar = (HWND) SHFindMenuBar( (HWND) hb_parnl(1) ); 
      
    LPARAM lp = MAKELPARAM(SHMBOF_NODEFAULT | SHMBOF_NOTIFY,SHMBOF_NODEFAULT | SHMBOF_NOTIFY );
   
   SendMessage( hMenuBar, SHCMBM_OVERRIDEKEY, VK_TBACK, lp );
   
   return  ;
}



Después ningun control detecta su pulsación.
Tampoco la clase Tget lo detecta en sus metodos Keydown() y Keychar()
AlgunaIdea ?

Gracias.
Saludos
Salvador
User avatar
Antonio Linares
Site Admin
Posts: 42406
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain
Has thanked: 12 times
Been thanked: 48 times
Contact:

Post by Antonio Linares »

Salvador,

Te refieres a la tecla de borrado a la izquierda ? (flecha a la izquierda encima de enter en un teclado de PC).

Por que necesitas anularla ?
regards, saludos

Antonio Linares
www.fivetechsoft.com
Salvador
Posts: 144
Joined: Sun Dec 18, 2005 3:18 pm
Location: España

Post by Salvador »

Si la misma, en smartphone la tecla [<--]
Por defecto su funcionalidad es volver a la ventana anterior.
Cuando tienes un dialogo con un get, hay que darle la funcionalidad de de la tecla VK_BACK, por eso utilizo la función del post anterior, luego hay que capturar el evento de dicha tecla que será WM_HOTKEY y pasarlo al control que tiene el foco con la función SHSendBackToFocusWindow, para que este la procese.
El problema es que después de programar la tecla, no puedo capturar su evento.
Saludos
Salvador
Post Reply