Boa tarde Giordano,
Aconteceu que como a Enchoice foi criada por último, o cálculo FWLayer já ocorreu com base na dialog sem outros componentes, para corrigir essa situação, você deve primeiro criar a Enchoice, dessa forma quando o FWLayer efetuar os cálculos de dimensões de suas linhas/colunas, ela já terá conhecimento que existe outro componente de interface na dialog que influenciara em seus cálculos.
Exemplo:
#include 'totvs.ch'
user function LayerEnch()
local oDlg as object
local oLayer as object
local oPnlDoc as object
local oPnlObs as object
local oWdwDoc as object
local oWdwObs as object
Define MsDialog oDlg Title 'Teste de Tela com Enchoice' From 0, 0 To 450, 700 Pixel Style DS_MODALFRAME
/*Cria a enchoide primeiro, dessa forma o Layer já terá conhecimento da enchoice e de seu tamanho*/
EnchoiceBar(oDlg,{ || oDlg:End() },{ || oDlg:End() },.F.,,,,.F.,.F.,.F.,.T.,.F.)
oLayer := FwLayer():New()
oLayer:Init(oDlg)
/*Montagem das Layers*/
oLayer:AddLine('LIN1', 035, .F.)
oLayer:AddLine('LIN2', 065, .F.)
oLayer:AddCollumn('COL1', 100, .T., 'LIN1')
oLayer:AddCollumn('COL2', 100, .T., 'LIN2')
oLayer:AddWindow('COL1', 'DOC' , 'Dados do Manifesto' , 100, .F. ,.T.,, 'LIN1', { || })
oLayer:AddWindow('COL2', 'OBS' , 'Observação do Manifesto' , 100, .F. ,.T.,, 'LIN2', { || })
/*Montagem dos Painéis*/
oPnlDoc := oLayer:GetWinPanel('COL1', 'DOC' , 'LIN1')
oPnlObs := oLayer:GetWinPanel('COL2', 'OBS' , 'LIN2')
/*Informando Títulos dos Painéis*/
oLayer:GetWindow('COL1', 'DOC', @oWdwDoc, 'LIN1')
oWdwDoc:oTitleBar:oFont := TFont():New('MS Sans Serif',,16,,.T.)
oLayer:GetWindow('COL2', 'OBS', @oWdwObs, 'LIN2')
oWdwObs:oTitleBar:oFont := TFont():New('MS Sans Serif',,16,,.T.)
Activate MsDialog oDlg
return nil