lo raro es que si definimos directamente controles en la ventana child, estos si responde a las teclas, por lo que se deduce que no es suficiente
con hacer un traslado de parents entre el dialogo y la ventana child.
prueba compilarlo, comentando y descomentando la linea
#define _SIN_DLGCHILD_
#include "FiveWin.ch"
#define GW_HWNDFIRST 0
#define GW_CHILD 5
#define GW_HWNDNEXT 2
#define _SIN_DLGCHILD_
/*--------------------------------------------------------------------------------------------------*/
STATIC oWnd
/*--------------------------------------------------------------------------------------------------*/
PROCEDURE Main()
LOCAL oMenu
SET DATE BRIT
SET CENTURY ON
DEFINE WINDOW oWnd MDI TITLE "Ventana Principal" MENU BuildWndMenu()
ACTIVATE WINDOW oWnd ;
ON INIT BuildWndChild() ;
MAXIMIZED ;
VALID MsgNoYes( "¿Desea salir de la ventana principal?", "Salir" )
RETURN
/*--------------------------------------------------------------------------------------------------*/
FUNCTION BuildWndmenu()
LOCAL oMenu
MENU oMenu
MENUITEM "Opcion &1"
MENU
MENUITEM "&Crear ventana Child" ACTION BuildWndChild()
SEPARATOR
MENUITEM "&Fin del programa" ACTION oWnd:end()
ENDMENU
ENDMENU
RETURN oMenu
/*--------------------------------------------------------------------------------------------------*/
PROCEDURE BuildWndChild()
LOCAL oWndChild
DEFINE WINDOW oWndChild ;
TITLE "Ventana Hija" ;
MDICHILD ;
COLOR CLR_BLACK, CLR_CYAN
ACTIVATE WINDOW oWndChild ;
ON INIT BuildDlgChild( oWndChild ) ;
VALID MsgNoYes( "¿Desea salir de la ventana hija?", "Salir" )
oWndChild:aControls[1]:SetFocus()
RETURN
/*--------------------------------------------------------------------------------------------------*/
PROCEDURE BuildDlgChild( oWndChild )
LOCAL oDlgChild, oB
LOCAL nNumero, cNombre, dFecha
nNumero := 100
cNombre := space( 30 )
dFecha := Date()
#ifdef _SIN_DLGCHILD_
@ 010, 020 SAY "Numero:" OF oWndChild PIXEL SIZE 100, 24
@ 035, 020 SAY "Nombre:" OF oWndChild PIXEL SIZE 100, 24
@ 060, 020 SAY "Fecha:" OF oWndChild PIXEL SIZE 100, 24
@ 010, 200 GET nNumero PICTURE "9999" OF oWndChild PIXEL SIZE 140, 24
@ 035, 200 GET cNombre PICTURE "@!" OF oWndChild PIXEL SIZE 140, 24
@ 060, 200 GET dFecha PICTURE "@D" OF oWndChild PIXEL SIZE 140, 24
@ 085, 200 BUTTON oB PROMPT "Sa&lir" OF oWndChild PIXEL SIZE 140, 24 ACTION oWndChild:End()
#else
DEFINE DIALOG oDlgChild OF oWndChild NAME "DLG_CHILD"
REDEFINE GET nNumero ;
ID 101 OF oDlgChild ;
PICTURE "9999"
REDEFINE GET cNombre ;
ID 102 OF oDlgChild ;
PICTURE "@!"
REDEFINE GET dFecha ;
ID 103 OF oDlgChild ;
PICTURE "@D"
REDEFINE BUTTON ;
ID 201 OF oDlgChild ;
ACTION oWndChild:End()
ACTIVATE DIALOG oDlgChild ;
NOWAIT ;
ON INIT ChangeParent( oDlgChild, oWndChild )
oDlgChild:End()
#endif
RETURN
/*--------------------------------------------------------------------------------------------------*/
PROCEDURE ChangeParent( oDlg, oChild )
LOCAL n
LOCAL hCtrl
LOCAL aChilds
hCtrl := GetWindow( oDlg:hWnd, GW_CHILD )
aChilds := {}
FOR n = 1 TO Len( oDlg:aControls )
AAdd( oChild:aControls, oDlg:aControls[ n ] )
NEXT
WHILE hCtrl != 0
AAdd( aChilds, hCtrl )
hCtrl := GetWindow( hCtrl, GW_HWNDNEXT )
END
AEval( aChilds, { |h| SetParent( h, oChild:hWnd ) } )
oChild:SetSize( oDlg:nWidth, oDlg:nHeight )
RETURN
/*--------------------------------------------------------------------------------------------------*/
// Generated by ResEdit 1.5.11
// Copyright (C) 2006-2012
// <!-- m --><a class="postlink" href="http://www.resedit.net">http://www.resedit.net</a><!-- m -->
#include <winresrc.h>
#include <windows.h>
#include <commctrl.h>
#include <richedit.h>
#define IDC_STATIC (-1)
//
// Dialog resources
//
DLG_CHILD DIALOG 0, 4294967267, 167, 88
STYLE DS_CENTER | DS_SETFONT | WS_VISIBLE | WS_CHILDWINDOW | WS_SYSMENU
FONT 10, "MS Sans Serif"
{
EDITTEXT 101, 77, 7, 60, 12, ES_RIGHT | ES_AUTOHSCROLL
EDITTEXT 102, 77, 21, 60, 12, ES_AUTOHSCROLL
EDITTEXT 103, 77, 35, 60, 12, ES_AUTOHSCROLL
PUSHBUTTON "&Salir", 201, 77, 49, 60, 16, BS_CENTER
LTEXT "Crédito número", 301, 7, 7, 65, 8, SS_LEFT
LTEXT "Nombre de cliente", 302, 7, 21, 65, 8, SS_LEFT
LTEXT "Fecha del credito", 303, 7, 35, 65, 8, SS_LEFT
}