#include "FiveWin.ch"
#define COLOR_BTNFACE 15
function Main()
local oWnd
USE Customer
DEFINE WINDOW oWnd TITLE "Test" MDI
ACTIVATE WINDOW oWnd ;
ON INIT BuildChild()
return nil
function BuildChild()
local oChild
DEFINE WINDOW oChild TITLE "A Child Window" MDICHILD ;
COLOR 0, GetSysColor( COLOR_BTNFACE )
ACTIVATE WINDOW oChild ;
ON INIT BuildDialog( oChild )
return nil
function BuildDialog( oChild )
local oDlg, oBrw, oSay, cText := "Hello World!"
DEFINE DIALOG oDlg RESOURCE "DE_HEADER_BROWSE" OF oChild
oBrw = TXBrowse():New( oDlg )
oBrw:CreateFromResource( 10 )
oBrw:SetRDD()
REDEFINE BUTTON ID 20 OF oDlg
REDEFINE BUTTON ID 30 OF oDlg
REDEFINE BUTTON ID 40 OF oDlg
REDEFINE BUTTON ID 50 OF oDlg
REDEFINE BUTTON ID 60 OF oDlg
REDEFINE BUTTON ID 70 OF oDlg
REDEFINE BUTTON ID 80 OF oDlg
REDEFINE BUTTON ID 100 OF oDlg
REDEFINE BUTTON ID 1 OF oDlg
REDEFINE SAY oSay VAR cText ID 90 OF oDlg
ACTIVATE DIALOG oDlg NOWAIT ;
ON INIT ChangeParent( oDlg, oChild )
oDlg:End()
oChild:bResized = { || oBrw:SetSize( oChild:nWidth - 117, oChild:nHeight - 60 ),;
oSay:nTop := oChild:nHeight - 55, oSay:nLeft := ( oChild:nWidth / 2 ) - oSay:nWidth / 2 }
oChild:SetSize( 800, 400 )
return nil
function ChangeParent( oDlg, oChild )
local n
for n = 1 to Len( oDlg:aControls )
SetParent( oDlg:aControls[ n ]:hWnd, oChild:hWnd )
AAdd( oChild:aControls, oDlg:aControls[ n ] )
next
return nil
Antonio Linares wrote:Raymundo,
Con esta nueva forma de hacerlo (SetParent()) no se llega a mostrar el diálogo. Solo se crea, se pasan sus controles a la ventana de destino y luego se destruye el diálogo
#define GW_CHILD 5
#define GW_HWNDNEXT 2
function ChangeParent( oDlg, oChild )
local hCtrl := GetWindow( oDlg:hWnd, GW_CHILD )
local n
while hCtrl != 0
SetParent( hCtrl, oChild:hWnd )
hCtrl = GetWindow( hCtrl, GW_HWNDNEXT )
end
for n = 1 to Len( oDlg:aControls )
AAdd( oChild:aControls, oDlg:aControls[ n ] )
next
return nil
#define GW_CHILD 5
#define GW_HWNDNEXT 2
function ChangeParent( oDlg, oWnd )
local hCtrl := GetWindow( oDlg:hWnd, GW_CHILD )
local n, aChilds := {}
while hCtrl != 0
AAdd( aChilds, hCtrl )
hCtrl = GetWindow( hCtrl, GW_HWNDNEXT )
end
AEval( aChilds, { | hCtrl | SetParent( hCtrl, oWnd:hWnd ) } )
for n = 1 to Len( oDlg:aControls )
AAdd( oWnd:aControls, oDlg:aControls[ n ] )
next
return nil
Return to FiveWin para Harbour/xHarbour
Users browsing this forum: No registered users and 57 guests