Compartir a través de


Función PathCompactPathA (shlwapi.h)

Trunca una ruta de acceso de archivo para ajustarse a un ancho de píxel determinado reemplazando los componentes de ruta de acceso por puntos suspensivos.

Sintaxis

BOOL PathCompactPathA(
  [in]      HDC   hDC,
  [in, out] LPSTR pszPath,
  [in]      UINT  dx
);

Parámetros

[in] hDC

Tipo: HDC

Identificador del contexto del dispositivo que se usa para las métricas de fuente. Este valor puede ser null.

[in, out] pszPath

Tipo: LPTSTR de

Puntero a una cadena terminada en null de longitud MAX_PATH que contiene la ruta de acceso que se va a modificar. A cambio, este búfer contendrá la cadena modificada.

[in] dx

Tipo: UINT

Ancho, en píxeles, en el que debe caber la cadena.

Valor devuelto

Tipo: BOOL de

Devuelve TRUE si la ruta de acceso se compactó correctamente con el ancho especificado. Devuelve FALSE en caso de error o si la parte base de la ruta de acceso no se ajustaría al ancho especificado.

Observaciones

Esta función usa la fuente seleccionada actualmente en hDC para calcular el ancho del texto. Esta función no compactará la ruta de acceso más allá del nombre de archivo base precedido por puntos suspensivos.

Ejemplos

#include <windows.h>
#include <iostream.h>
#include "Shlwapi.h"

HDC hdc;  /* display DC handle to current font metrics */ 

void main( void )
{
// String path name 1.
char buffer_1[MAX_PATH] = "C:\\path1\\path2\\sample.txt";
char *lpStr1;
lpStr1 = buffer_1;

// String path name 2.
char buffer_2[MAX_PATH] = "C:\\path1\\path2\\sample.txt";
char *lpStr2;
lpStr2 = buffer_2;

// String path name 3.
char buffer_3[MAX_PATH] = "C:\\path1\\path2\\sample.txt";
char *lpStr3;
lpStr3 = buffer_3;

// String path name 4.
char buffer_4[MAX_PATH] = "C:\\path1\\path2\\sample.txt";
char *lpStr4;
lpStr4 = buffer_4;

// Variable to get the return from "PathCompactPath".
int retval;

cout << "The un-truncated path is                " << lpStr1 << endl;

retval = PathCompactPath(hdc,lpStr1,125);
cout << "The truncated path at 125 pixels is :   " << lpStr1 << endl;

retval = PathCompactPath(hdc,lpStr2,120);
cout << "The truncated path at 120 pixels is :   " << lpStr2 << endl;

retval = PathCompactPath(hdc,lpStr3,110);
cout << "The truncated path at 110 pixels is :   " << lpStr3 << endl;

retval = PathCompactPath(hdc,lpStr4,25);
cout << "The truncated path at  25 pixels is :   " << lpStr4 << endl;
}

OUTPUT:
===========
The un-truncated path is                C:\path1\path2\sample.txt
The truncated path at 125 pixels is :   C:\path1\...\sample.txt
The truncated path at 120 pixels is :   C:\pat...\sample.txt
The truncated path at 110 pixels is :   C:\p...\sample.txt
The truncated path at  25 pixels is :   ...\sample.txt

Nota

El encabezado shlwapi.h define PathCompactPath como alias que selecciona automáticamente la versión ANSI o Unicode de esta función en función de la definición de la constante de preprocesador UNICODE. La combinación del uso del alias neutral de codificación con código que no es neutral de codificación puede dar lugar a errores de coincidencia que dan lugar a errores de compilación o tiempo de ejecución. Para obtener más información, vea Conventions for Function Prototypes.

Requisitos

Requisito Valor
cliente mínimo admitido Windows 2000 Professional, Windows XP [solo aplicaciones de escritorio]
servidor mínimo admitido Windows 2000 Server [solo aplicaciones de escritorio]
de la plataforma de destino de Windows
encabezado de shlwapi.h
biblioteca de Shlwapi.lib
DLL de Shlwapi.dll (versión 4.71 o posterior)