Natter, see if this example helps. Your question is very confusing.
Natter, vea si este ejemplo ayuda. Tu pregunta es muy confusa.
// C:\FWH\SAMPLES\ABRIRPAS.PRG
#include "FiveWin.ch"
STATIC oWnd
FUNCTION Main()
LOCAL oIco, oBar, oBmp
SetBalloon( .T. )
SkinButtons()
DEFINE ICON oIco FILE "..\icons\fax.ico"
DEFINE WINDOW oWnd FROM 1, 5 TO 20, 70 TITLE "Abrir Pastas/Open Folders" ;
MENU BuildMenu() COLOR "B/W" ICON oIco
DEFINE BUTTONBAR oBar _3D SIZE 60, 40 OF oWnd 2007
WITH OBJECT oBar
oBar:nClrText := CLR_HBLUE
oBar:Adjust()
END
DEFINE BUTTON OF oBar FILENAME "..\bitmaps\16x16\Open.bmp" ;
PROMPT "Windows" ;
ACTION AbrePasta( GetWinDir() ) ;
TOOLTIP "Abrir a pasta do Windows" NOBORDER GROUP
DEFINE BUTTON OF oBar FILENAME "..\bitmaps\16x16\floppy.bmp" ;
PROMPT "System" ;
ACTION AbrePasta( GetSysDir() ) ;
TOOLTIP "Abrir a pasta do sistema" NOBORDER GROUP
DEFINE BUTTON OF oBar FILENAME "..\bitmaps\16x16\new.bmp" ;
PROMPT "Select" ;
ACTION AbrePasta( cGetDir() ) ;
TOOLTIP "Abrir uma pasta qualquer do sistema" NOBORDER GROUP
DEFINE BUTTON OF oBar FILENAME "..\bitmaps\16x16\Help.bmp" ;
PROMPT "Source" ;
ACTION AbrePasta( "c:\" ) ;
TOOLTIP "Abrir a pasta C:\" NOBORDER GROUP
DEFINE BUTTON OF oBar FILENAME "..\bitmaps\16x16\Exit.bmp" FLAT ;
ACTION( oWnd:End() ) TOOLTIP "Exit this app" GROUP
SET MESSAGE OF oWnd TO "Abrir pastas/Open Folders" 2007
DEFINE BITMAP oBmp FILENAME "..\bitmaps\visual.bmp"
oWnd:bPainted = {| hDC | BmpTiled( hDC, oWnd, oBmp ) }
ACTIVATE WINDOW oWnd CENTERED
RETURN NIL
FUNCTION BuildMenu()
LOCAL oMenu
MENU oMenu
MENUITEM "Abrir/Open"
MENU
MENUITEM "Pasta do Windows";
ACTION AbrePasta( GetWinDir() ) ;
MESSAGE "Abrir a pasta do Windows"
SEPARATOR
MENUITEM "Pasta de Sistema" ;
ACTION AbrePasta( GetSysDir() ) ;
MESSAGE "Abrir a pasta do sistema"
SEPARATOR
MENUITEM "Pasta selecionada" ;
ACTION AbrePasta( cGetDir() ) ;
MESSAGE "Abrir a pasta uma pasta qualquer"
SEPARATOR
MENUITEM "Unidade C:\ (Raiz)" ;
ACTION AbrePasta( "c:\" ) ;
MESSAGE "Abrir a pasta c:\"
SEPARATOR
MENUITEM "Sair" ;
ACTION oWnd:End() ;
MESSAGE "Finaliza a aplicação"
ENDMENU
ENDMENU
RETURN( oMenu )
FUNCTION AbrePasta( cPath )
LOCAL hFile
LOCAL cCmd := "start " + cPath, cBat := ".\abrir.bat"
IF ( hFile := FCreate( cBat ) ) != -1
FWrite( hFile, cCmd )
FClose( hFile )
MsgRun( "Executando...", "Executando...", {|| Winexec( cBat, 0 ) } )
ENDIF
RETURN NIL
STATIC FUNCTION BmpTiled( hDC, oWnd, oBmp )
LOCAL nWidth := oWnd:nWidth(), nHeight := oWnd:nHeight()
LOCAL nRow := 0, nCol := 0 // , n
LOCAL nBmpWidth := oBmp:nWidth(), nBmpHeight := oBmp:nHeight()
IF oBmp:hBitmap == 0
RETURN NIL
ENDIF
WHILE nRow < nHeight
nCol = 0
WHILE nCol < nWidth
PalBmpDraw( hDC, nRow, nCol, oBmp:hBitmap )
nCol += nBmpWidth
END
nRow += nBmpHeight
END
RETURN NIL
// FIN / END - kapiabafwh@gmail.com
Regards, saludos.