by cnavarro » Thu Feb 21, 2013 5:00 pm
Jose Luis, asi es como lo he hecho, si puedo echarte una mano en lo que esté a mi alcance......
.../...
local cControl := "TPanel"
local aPnels := {}
local aClrPnels := {}
local oBrush1
local cPanel := "wcia21.bmp" //"wcia2.bmp"
Local oBrw1
Local oBrw2
hDC := GetDeskTopWindow()
aRes := GetClientRect( hDC )
nAlto := aRes[3]
nAncho := aRes[4]
hDC := Nil
aRes := Nil
Do Case
Case nAncho <= 1366
nAnchoSpl := nAncho*0.16 //180 //nAncho/4
Case nAncho > 1366 .and. nAncho <= 1600
nAnchoSpl := nAncho*0.14 //180 //nAncho/4
Case nAncho > 1600
nAnchoSpl := nAncho*0.12 //180 //nAncho/4
EndCase
DEFINE ICON oIcon RESOURCE "Wcomp0"
DEFINE BRUSH oBrushWnd COLOR nRGB( nCol1, nCol2, nCol3 )
DEFINE WINDOW oAplica ;
TITLE "Prueba"+ ;
" - Usuario: "+WNetGetUser() ;//;
FROM -1,-1 TO -1,-1 ;
MENU Menuf() ;
ICON oIcon ;
BRUSH oBrushWnd ;
MDI ;
MENUINFO 8 //;
// NOSYSMENU
oAplica:nStyle := nOr( WS_THICKFRAME, WS_SYSMENU, WS_MINIMIZEBOX, WS_MAXIMIZEBOX )
// Desde Aqui
AAdd( aPnels, Nil ) // Panel Principal Izdo.
AAdd( aClrPnels , Nil )
aClrPnels[Len(aPnels)] := nRGB( 245, 245, 245 )
aPnels[Len(aPnels)] := &cControl():New( 0, 0, nAlto-106, nAnchoSpl, oAplica )
oAplica:oLeft := aPnels[Len(aPnels)]
DEFINE BRUSH oBrush1 COLOR nRGB( nCol1, nCol2, nCol3 ) //nRGB( 245, 245, 245 ) //aClrPnels[Len(aPnels)]
aPnels[Len(aPnels)]:oBrush := oBrush1
oBrush1 := Nil
// Este el bitmap que separa los dos browses - menús
/*
DEFINE BITMAP oBmpV FILE cPanel OF aPnels[Len(aPnels)]
aPnels[Len(aPnels)]:bPainted := { | hDC, cPS | PalBmpDraw( hDC, Int(nAlto/2)-36, ;
(nAnchoSpl-oBmpV:nWidth())/2, ;
oBmpV:hBitMap, oBmpV:hPalette,,,,.t., nClrFondo ) } //aClrPnels[Len(aPnels)] ) }
*/
// Menu superior
oBrw1 := MnuXBrw1( aPnels[Len(aPnels)], nAlto, nAnchoSpl, ) //, oSpl)
// Este es el Browse - menú inferior
oBrw2 := Nil
oBrw2 := MnuXBrw2( aPnels[Len(aPnels)], nAlto, nAnchoSpl, ) //oBrw2
//oBrwPrin := TareasOpen() /* XBrowse del problema */
@ 2+if( empty(oBar), -2, 34), nAnchoSpl-4 SPLITTER oSpl ;
VERTICAL ;
PREVIOUS CONTROLS aPnels[1];
SIZE 2, nAlto; // -107; //106
PIXEL ;
OF oAplica ;
_3DLOOK //;
//HINDS CONTROLS oBrwPrin ;
//oSpl:lStatic := .t.
DEFINE BITMAP oBmpH FILE cFondo OF oAplica
//(nAncho-oBmpH:nWidth()-( nAnchoSpl + 2 ))
oAplica:bPainted := {| hDC, cPS | PalBmpDraw( hDC, (nAlto-(oBmpH:nHeight()*2.5)) , (nAncho-(oBmpH:nWidth()*1.25)-( nAnchoSpl + 4 )) , oBmpH:hBitMap, oBmpH:hPalette,,,,.t.,nClrFondo )}
//cTit
oAplica:oMsgBar := TMsgBar():New( oAplica , OemToAnsi(cDesEmpre) , .t.,.f.,.T.,.T. )
ACTIVATE WINDOW oAplica MAXIMIZED ;
ON INIT ( (if( empty( nAcc ),Nil, Acciones( nAcc ) ) ) //, oBrw1:SetFocus() )
Los xbrowses de la izda del TPanel son Menús de "persiana" realizados con una clase de xbrowse
Un saludo
Cristobal Navarro
Hay dos tipos de personas: las que te hacen perder el tiempo y las que te hacen perder la noción del tiempo
El secreto de la felicidad no está en hacer lo que te gusta, sino en que te guste lo que haces