Condividi tramite


Funzione PathCompactPathW (shlwapi.h)

Tronca un percorso di file per adattarsi all'interno di una determinata larghezza di pixel sostituendo i componenti di percorso con puntini di sospensione.

Sintassi

BOOL PathCompactPathW(
  [in]      HDC    hDC,
  [in, out] LPWSTR pszPath,
  [in]      UINT   dx
);

Parametri

[in] hDC

Tipo: HDC

Handle per il contesto di dispositivo usato per le metriche dei tipi di carattere. Questo valore può essere NULL.

[in, out] pszPath

Tipo: LPTSTR

Puntatore a una stringa di lunghezza con terminazione Null MAX_PATH che contiene il percorso da modificare. In caso di restituzione, questo buffer conterrà la stringa modificata.

[in] dx

Tipo: UINT

Larghezza, espressa in pixel, in cui deve essere adattata la stringa.

Valore restituito

Tipo: bool

Restituisce true se il percorso è stato compattato correttamente alla larghezza specificata. Restituisce false in caso di errore oppure se la parte di base del percorso non corrisponde alla larghezza specificata.

Osservazioni

Questa funzione usa il tipo di carattere attualmente selezionato in hDC per calcolare la larghezza del testo. Questa funzione non compatta il percorso oltre il nome del file di base preceduto dai puntini di sospensione.

Esempi

#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

L'intestazione shlwapi.h definisce PathCompactPath come alias che seleziona automaticamente la versione ANSI o Unicode di questa funzione in base alla definizione della costante del preprocessore UNICODE. La combinazione dell'utilizzo dell'alias indipendente dalla codifica con il codice non indipendente dalla codifica può causare mancate corrispondenze che generano errori di compilazione o di runtime. Per altre informazioni, vedere convenzioni di per i prototipi di funzioni.

Fabbisogno

Requisito Valore
client minimo supportato Windows 2000 Professional, Windows XP [solo app desktop]
server minimo supportato Windows 2000 Server [solo app desktop]
piattaforma di destinazione Finestre
intestazione shlwapi.h
libreria Shlwapi.lib
dll Shlwapi.dll (versione 4.71 o successiva)