Функция PathCompactPathW (shlwapi.h)
Усекает путь к файлу в соответствии с заданной шириной пикселей, заменяя компоненты пути многоточием.
Синтаксис
BOOL PathCompactPathW(
[in] HDC hDC,
[in, out] LPWSTR pszPath,
[in] UINT dx
);
Параметры
[in] hDC
Тип: HDC
Дескриптор контекста устройства, используемого для метрик шрифта. Это значение может иметь значение NULL.
[in, out] pszPath
Тип: LPTSTR
Указатель на строку, завершающуюся значением NULL, MAX_PATH, содержащую путь для изменения. При возврате этот буфер будет содержать измененную строку.
[in] dx
Тип: UINT
Ширина (в пикселях), в которой должна помещаться строка.
Возвращаемое значение
Тип: BOOL
Возвращает значение TRUE , если путь был успешно сжат до указанной ширины. Возвращает значение FALSE при сбое или , если базовая часть пути не соответствует указанной ширине.
Комментарии
Эта функция использует шрифт, выбранный в настоящее время в HDC , для вычисления ширины текста. Эта функция не сжимает путь за пределами базового имени файла, которому предшествует многоточие.
Примеры
#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
Примечание
Заголовок shlwapi.h определяет PathCompactPath в качестве псевдонима, который автоматически выбирает версию ANSI или Юникод этой функции на основе определения константы препроцессора ЮНИКОДа. Использование псевдонима, не зависящий от кодирования, с кодом, который не является нейтральным для кодировки, может привести к несоответствиям, которые приводят к ошибкам компиляции или времени выполнения. Дополнительные сведения см. в разделе Соглашения для прототипов функций.
Требования
Требование | Значение |
---|---|
Минимальная версия клиента | Windows 2000 Professional, Windows XP [только классические приложения] |
Минимальная версия сервера | Windows 2000 Server [только классические приложения] |
Целевая платформа | Windows |
Header | shlwapi.h |
Библиотека | Shlwapi.lib |
DLL | Shlwapi.dll (версия 4.71 или более поздняя) |