RunDlg32 y dialogos para pedir carpetas

RunDlg32 y dialogos para pedir carpetas

Postby carlosmora » Fri Jan 27, 2006 10:48 am

Estoy buscando la forma de cambiar la cgetdir para que me muestre el diálogo que aparece en el XP.
Supuse que estaria en rundlg32, por que es ese el parametro del WinExec() que aparece en el codigo fuente, pero no encuentro referencias por ningun lado.
Lo que más me sorprendió es que San Google me trajo un solo resultado!
Alguien me puede orientar al respecto?
Quisiera saber donde puedo saber algo respecto de rundlg32, donde esta el exe, donde lo busco, cuales son los parametros y como hago para usar el dialogo de obtener directorio nuevo, con el boton de crear carpeta y eso.

Saludos
carlosmora
 
Posts: 16
Joined: Thu Dec 01, 2005 4:15 pm

Postby R.F. » Fri Jan 27, 2006 4:37 pm

Si estas trabajando a 32 bits con (x)Harobur, no necesitas el RunDlg32, Todos los dialogos del sistema viene con look XP.

cGetDir, cGetFile, PrinterSetup, ChooseColor, ChooseFont, Msg... todos vienen con look XP
Saludos
R.F.
R.F.
 
Posts: 840
Joined: Thu Oct 13, 2005 7:05 pm

Postby carlosmora » Mon Jan 30, 2006 12:37 pm

Si pero no. La cosa esta en el uso del dialogo pero que incluya el boton de crear carpeta, y el edit para ingresar a mano el path. Si hay parametros de eso, necesitaria saber como ponerlos.
El cgetdir muestra un dialogo con el tree, un boton de aceptar y otro de cancelar, he visto en algunos instaladores de programas que hay mas posibilidades.

Saludos
carlosmora
 
Posts: 16
Joined: Thu Dec 01, 2005 4:15 pm

Postby carlosmora » Mon Jan 30, 2006 3:05 pm

Ya está, me respondo solito y de paso para poner el parche o incluirlo de alguna manera en la Fw:
[code]
#pragma BEGINDUMP
#include "windows.h"
#include "hbapi.h"


#include <Windows.h>
#include <CommDlg.h>

#ifdef __FLAT__
#include <shlobj.h>
#endif

#define OFN_LONGNAMES 0x00200000
#define WF_WINNT 0x4000
#define LOGPIXELSX 88

BOOL IsWin95(VOID);

BOOL CALLBACK ComDlgHkFile(HWND hDlg, UINT uMsg,
WPARAM wParam, LPARAM lPar);

/*
static far BOOL b95Look = FALSE;
static far char SelDir[] = "Select directory";
static far char IniDir[] = ".\\";
static far char File[] = "__test__.tmp";
static far char Font[] = "MS Sans Serif";
static far int PixelX = 0;
static far char Driver[] = "DISPLAY";
*/

HB_FUNC( CGETDIR )
{
BROWSEINFO lpbi;
char lpstrTitle[ 512 ], lpstrDisplayName[ MAX_PATH ];
LPCITEMIDLIST lpIDList;

_bset( ( char * ) &lpbi, 0, sizeof( lpbi ) );

lpbi.hwndOwner = GetActiveWindow();
lpbi.lpszTitle = hb_parc( 1 );
lpbi.ulFlags = BIF_RETURNONLYFSDIRS + BIF_DONTGOBELOWDOMAIN + BIF_USENEWUI;
lpIDList = SHBrowseForFolder( &lpbi);

if( lpIDList )
{
SHGetPathFromIDList( lpIDList, lpstrDisplayName );
hb_retc( lpstrDisplayName );
}
else
hb_retc( "" );
}

#pragma ENDDUMP[/code]

lo agregado es el BIF_USENEWUI. Una tontera, pero habia que buscar...
Saludos
carlosmora
 
Posts: 16
Joined: Thu Dec 01, 2005 4:15 pm


Return to FiveWin para Harbour/xHarbour

Who is online

Users browsing this forum: No registered users and 53 guests

cron