Hola Manuel Mercado.
Es un placer de usar su clase. De hecho el uso desde el año 2003.
En esa ocasión se produjo un error de utilizar ALT + CLAVE, cuando hay dos cuadros de diálogo abierto y tienen los mismos botones. Al pulsar ALT + CLAVE actuó todos los botones que había que clave.
Arreglar la sustitución de la SendMsg() por PostMessage(), pero en el actual xHarbour el error persiste. ¿Qué puede ser?
* ============================================================================
* METHOD TSButton:GetDlgCode() Version 6.0 Mar/1/2008
* ============================================================================
METHOD GetDlgCode( nLastKey ) CLASS TSButton
If nLastkey > 0 .and. nLastkey == ::nWakeup
::nWakeup := 0
EndIf
If (! ::oWnd:lValidating .and. ::lCancel .and. ::cAccel != Nil .and. ;
GetAsyncKey( VK_MENU ) .and. ;
GetAsyncKey( Asc( Upper( ::cAccel ) ) ) .and. ::nWakeup == 0 )
** Modificacao feita por Alexandre Pereira JUL/2003
PostMessage( ::hWnd, FM_CLICK )
* ::SendMsg( FM_CLICK )
** Fim
Return 1
ElseIf (! ::oWnd:lValidating .and. ::lWhen .and. !::lCancel .and. ::cAccel != Nil .and. ;
GetAsyncKey( VK_MENU ) .and. ;
GetAsyncKey( Asc( Upper( ::cAccel ) ) ) .and. ::nWakeup == 0 )
** Modificacao feita por Alexandre Pereira JUL/2003
PostMessage( ::hWnd, FM_CLICK )
* ::SendMsg( FM_CLICK )
** Fim
Return 1
EndIf
Return If( ::lActive, DLGC_WANTALLKEYS, Nil )
///////////////////////////////////////////////
Lo siento por la traducción.
Alexandre Pereira