Função PathCompactPathW (shlwapi.h)
Trunca um caminho de arquivo para caber dentro de uma determinada largura de pixel substituindo componentes de caminho por reticências.
Sintaxe
BOOL PathCompactPathW(
[in] HDC hDC,
[in, out] LPWSTR pszPath,
[in] UINT dx
);
Parâmetros
[in] hDC
Tipo: HDC
Um identificador para o contexto do dispositivo usado para métricas de fonte. Esse valor pode ser NULL.
[in, out] pszPath
Tipo: LPTSTR
Um ponteiro para uma cadeia de caracteres de comprimento terminada em nulo MAX_PATH que contém o caminho a ser modificado. No retorno, esse buffer conterá a cadeia de caracteres modificada.
[in] dx
Tipo: UINT
A largura, em pixels, na qual a cadeia de caracteres deve se ajustar.
Valor de retorno
Tipo: BOOL
Retorna VERDADEIRO se o caminho tiver sido compactado com êxito com a largura especificada. Retorna FALSE em caso de falha ou se a parte base do caminho não se ajustaria à largura especificada.
Observações
Essa função usa a fonte atualmente selecionada em hDC para calcular a largura do texto. Essa função não compactará o caminho além do nome do arquivo base precedido por reticências.
Exemplos
#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
O cabeçalho shlwapi.h define PathCompactPath como um alias que seleciona automaticamente a versão ANSI ou Unicode dessa função com base na definição da constante do pré-processador UNICODE. A combinação do uso do alias neutro de codificação com código que não é neutro em codificação pode levar a incompatibilidades que resultam em erros de compilação ou de runtime. Para obter mais informações, consulte Conventions for Function Prototypes.
Requisitos
Requisito | Valor |
---|---|
de cliente com suporte mínimo | Windows 2000 Professional, Windows XP [somente aplicativos da área de trabalho] |
servidor com suporte mínimo | Windows 2000 Server [somente aplicativos da área de trabalho] |
da Plataforma de Destino |
Windows |
cabeçalho | shlwapi.h |
biblioteca | Shlwapi.lib |
de DLL |
Shlwapi.dll (versão 4.71 ou posterior) |