Bagikan melalui


Fungsi PathCompactPathW (shlwapi.h)

Memotong jalur file agar pas dalam lebar piksel tertentu dengan mengganti komponen jalur dengan elipsis.

Sintaks

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

Parameter

[in] hDC

Jenis: HDC

Handel ke konteks perangkat yang digunakan untuk metrik font. Nilai ini bisa NULL.

[in, out] pszPath

Jenis: LPTSTR

Penunjuk ke string panjang yang dihentikan null MAX_PATH yang berisi jalur yang akan dimodifikasi. Saat dikembalikan, buffer ini akan berisi string yang dimodifikasi.

[in] dx

Jenis: UINT

Lebar, dalam piksel, di mana string harus pas.

Mengembalikan nilai

Jenis: BOOL

Mengembalikan TRUE jika jalur berhasil dikompresi ke lebar yang ditentukan. Mengembalikan FALSE pada kegagalan, atau jika bagian dasar jalur tidak akan sesuai dengan lebar yang ditentukan.

Keterangan

Fungsi ini menggunakan font yang saat ini dipilih di hDC untuk menghitung lebar teks. Fungsi ini tidak akan memampatkan jalur di luar nama file dasar yang didahului oleh elipsis.

Contoh

#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

Catatan

Header shlwapi.h mendefinisikan PathCompactPath sebagai alias yang secara otomatis memilih versi ANSI atau Unicode dari fungsi ini berdasarkan definisi konstanta pra-prosesor UNICODE. Mencampur penggunaan alias encoding-netral dengan kode yang tidak mengodekan-netral dapat menyebabkan ketidakcocokan yang mengakibatkan kesalahan kompilasi atau runtime. Untuk informasi selengkapnya, lihat Konvensi untuk Prototipe Fungsi.

Persyaratan

Persyaratan Nilai
Klien minimum yang didukung Windows 2000 Professional, Windows XP [hanya aplikasi desktop]
Server minimum yang didukung Windows 2000 Server [hanya aplikasi desktop]
Target Platform Windows
Header shlwapi.h
Pustaka Shlwapi.lib
DLL Shlwapi.dll (versi 4.71 atau yang lebih baru)