Página 1 de 1

Deshabilitar uso de teclas

Publicado: Mar Feb 21, 2012 1:57 am
por Martin Del Angel
Hola a Todos:
uso la clase TEdit
CLASS TEdit FROM XEdit
PUBLISHED:
PROPERTY lAutoSelect INIT asSELECTALL
PROPERTY nClrBorder INIT clRed EDITOR PE_Color
METHOD WMKeyDown( nKey, nFlags )
METHOD WMKillFocus( wParam, lParam ) INLINE Super:WMKillFocus(
wParam,lParam ), ::lInsert := .T., 0
PUBLIC:
METHOD WMNCPaint()
ENDCLASS
METHOD WMKeyDown( nKey, nFlags ) CLASS TEdit
IF nKey == VK_UP
::GoPrevControl()
ELSEIF nKey == VK_DOWN
::GoNextControl()
ELSE
RETURN Super:WMKeyDown( nKey, nFlags )
ENDIF
RETURN 0
//---------------------------------------------------------- ----------------
#pragma BEGINDUMP
#include "windows.h"
#include "xailer.h"
#include "colors.ch"
HB_FUNC_STATIC( TEDIT_WMNCPAINT )
{
PHB_ITEM Self = hb_stackSelfItem();
HWND hWnd = GetHandleOf( Self );
if( XA_ObjGetL( Self, "lFocused" ) )
{
HDC hdc = GetWindowDC( hWnd );
RECT rect;
HBRUSH hbr = CreateSolidBrush( (COLORREF) XA_ObjGetNL( Self,
"nClrBorder" ) );
GetWindowRect( hWnd, &rect );
rect.right -= rect.left;
rect.bottom -= rect.top;
rect.left = 0;
rect.top = 0;
FrameRect( hdc, &rect, hbr );
InflateRect( &rect, -1, -1 );
FrameRect( hdc, &rect, hbr );
DeleteObject( hbr );
}
else
PrevWindowProc( hWnd, WM_NCPAINT, hb_parnl( 1 ), 0 );
hb_retnl( 0 );
}
#pragma ENDDUMP
//---------------------------------------------------------- ----------------
Funciona perfecto el movimiento entre controles con las teclas Flecha
Arriba y Flecha Abajo.
Pero quiero desactivar este comportamiento cuando haga foco en un
Control TMemo. y que al salir de este se active nuevamente el uso de
teclas Arriba y Abajo para cambiarme entre controles
Si alguien me puede dar alguna sugerencia , gracias de antemano.
Saludos...

Deshabilitar uso de teclas

Publicado: Mar Feb 21, 2012 10:30 am
por jlalin
Martin,
prueba así­:
> METHOD WMKeyDown( nKey, nFlags ) CLASS TEdit
IF ::IsKindOf( "TMemo" )
RETURN Nil
ENDIF
...
Saludos,
José Lalí­n

Deshabilitar uso de teclas

Publicado: Mar Feb 21, 2012 4:51 pm
por Martin Del Angel
On 2/21/2012 3:30 AM, José Lalí­n wrote:
> Martin,
>
> prueba así­:
>
>> METHOD WMKeyDown( nKey, nFlags ) CLASS TEdit
>
> IF ::IsKindOf( "TMemo" )
> RETURN Nil
> ENDIF
>
> ...
>
> Saludos,
> José Lalí­n
>
Gracias José:
Funciono Perfecto.
Saludos...

Deshabilitar uso de teclas

Publicado: Mar Feb 21, 2012 9:20 pm
por Martin Del Angel
On 2/21/2012 9:51 AM, Martin Del Angel wrote:
> On 2/21/2012 3:30 AM, José Lalí­n wrote:
>> Martin,
>>
>> prueba así­:
>>
>>> METHOD WMKeyDown( nKey, nFlags ) CLASS TEdit
>>
>> IF ::IsKindOf( "TMemo" )
>> RETURN Nil
>> ENDIF
>>
>> ...
>>
>> Saludos,
>> José Lalí­n
>>
>
> Gracias José:
>
> Funciono Perfecto.
>
>
> Saludos...
Gracias José:
Funciono Perfecto
Saludos...