Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Sejumlah fungsi disediakan untuk memformat dan mengurai CString objek. Anda dapat menggunakan fungsi ini setiap kali Anda harus memanipulasi objek, tetapi sangat berguna untuk memformat CString string yang akan muncul dalam teks kotak pesan.
Grup fungsi ini juga menyertakan rutinitas global untuk menampilkan kotak pesan.
CString Fungsi
| Nama | Deskripsi |
|---|---|
AfxExtractSubString |
Mengekstrak substring yang dipisahkan oleh satu karakter dari string sumber tertentu. |
AfxFormatString1 |
Mengganti string yang diberikan untuk karakter format "%1" dalam string yang terkandung dalam tabel string. |
AfxFormatString2 |
Mengganti dua string untuk karakter format "%1" dan "%2" dalam string yang terkandung dalam tabel string. |
AfxMessageBox |
Menampilkan kotak pesan. |
Persyaratan
Header afxwin.h
AfxExtractSubString
Fungsi global ini dapat digunakan untuk mengekstrak substring dari string sumber tertentu.
BOOL AFXAPI AfxExtractSubString (
CString& rString,
LPCTSTR lpszFullString,
int iSubString,
TCHAR chSep = '\n');
Parameter
rString
Referensi ke CString objek yang akan menerima substring individual.
lpszFullString
String yang berisi teks lengkap string yang akan diekstrak.
iSubString
Indeks berbasis nol dari substring untuk mengekstrak dari lpszFullString.
chSep
Karakter pemisah yang digunakan untuk memisahkan substring.
Tampilkan Nilai
TRUE jika fungsi berhasil mengekstrak substring pada indeks yang disediakan; jika tidak, FALSE.
Keterangan
Fungsi ini berguna untuk mengekstrak beberapa substring dari string sumber ketika satu karakter yang diketahui memisahkan setiap substring. Fungsi ini mencari dari awal lpszFullString parameter setiap kali dipanggil.
Fungsi ini akan mengembalikan FALSE jika diatur lpszFullString ke NULL atau fungsi mencapai akhir lpszFullString tanpa menemukan iSubString+1 kemunculan karakter pemisah yang ditentukan. Parameter rString tidak akan dimodifikasi dari nilai aslinya jika lpszFullString diatur ke NULL; jika tidak, rString parameter diatur ke string kosong jika substring tidak dapat diekstraksi untuk indeks yang ditentukan.
Contoh
// The following example extracts a series of name, value pairs from a
// given source string:
// Input string consisting of a number of name, value pairs
LPCTSTR lpszSource = _T("\"Name\"=\"John Smith\"\n")
_T("\"Company\"=\"Contoso, Ltd\"\n\"Salary\"=\"25,000\"");
CString strNameValue; // an individual name, value pair
int i = 0; // substring index to extract
while (AfxExtractSubString(strNameValue, lpszSource, i))
{
// Prepare to move to the next substring
i++;
CString strName, strValue; // individual name and value elements
// Attempt to extract the name element from the pair
if (!AfxExtractSubString(strName, strNameValue, 0, _T('=')))
{
// Pass an error message to the debugger for display
OutputDebugString(_T("Error extracting name\r\n"));
continue;
}
// Attempt to extract the value element from the pair
if (!AfxExtractSubString(strValue, strNameValue, 1, _T('=')))
{
// Pass an error message to the debugger for display
OutputDebugString(_T("Error extracting value element\r\n"));
continue;
}
// Pass the name, value pair to the debugger for display
CString strOutput = strName + _T(" equals ") + strValue + _T("\r\n");
OutputDebugString(strOutput);
}
Persyaratan
Header afxwin.h
AfxFormatString1
Ganti string yang diarahkan oleh lpsz1 untuk instans karakter "%1" apa pun dalam sumber daya string templat yang diidentifikasi oleh nIDS.
void AfxFormatString1(
CString& rString,
UINT nIDS,
LPCTSTR lpsz1);
Parameter
rString
Referensi ke CString objek yang akan berisi string yang dihasilkan setelah substitusi dilakukan.
nIDS
ID sumber daya string templat tempat substitusi akan dilakukan.
lpsz1
String yang akan menggantikan karakter "%1" format dalam string templat.
Keterangan
String yang baru terbentuk disimpan di rString. Misalnya, jika string dalam tabel string adalah "File %1 not found", dan lpsz1 sama dengan "C:\MYFILE.TXT", maka rString akan berisi string "File C:\MYFILE.TXT not found". Fungsi ini berguna untuk memformat string yang dikirim ke kotak pesan dan jendela lainnya.
Jika karakter "%1" format muncul dalam string lebih dari sekali, beberapa substitusi akan dibuat.
Contoh
void DisplayFileNotFoundMessage(LPCTSTR pszFileName)
{
CString strMessage;
// The IDS_FILENOTFOUND string resource contains "Error: File %1 not found"
AfxFormatString1(strMessage, IDS_FILENOTFOUND, pszFileName);
// In the previous call, substitute the actual file name for the
// %1 placeholder
AfxMessageBox(strMessage); // Display the error message
}
Persyaratan
Header afxwin.h
AfxFormatString2
Ganti string yang diarahkan oleh lpsz1 untuk instans karakter "%1"apa pun , dan string yang diarahkan oleh lpsz2 untuk setiap instans karakter "%2", dalam sumber daya string templat yang diidentifikasi oleh nIDS.
void AfxFormatString2(
CString& rString,
UINT nIDS,
LPCTSTR lpsz1,
LPCTSTR lpsz2);
Parameter
rString
Referensi ke CString yang akan berisi string yang dihasilkan setelah substitusi dilakukan.
nIDS
ID tabel string dari string templat tempat substitusi akan dilakukan.
lpsz1
String yang akan menggantikan karakter "%1" format dalam string templat.
lpsz2
String yang akan menggantikan karakter "%2" format dalam string templat.
Keterangan
String yang baru terbentuk disimpan di rString. Misalnya, jika string dalam tabel string adalah "File %1 not found in directory %2", menunjuk ke "MYFILE.TXT", dan lpsz2 menunjuk ke "C:\MYDIR", maka rString akan berisi string "File MYFILE.TXT not found in directory C:\MYDIR"lpsz1 .
Jika format karakter "%1" atau "%2" muncul dalam string lebih dari sekali, beberapa substitusi akan dibuat. Mereka tidak harus dalam urutan numerik.
Contoh
void DisplayFileNotFoundMessage(LPCTSTR pszFileName, LPCTSTR pszDirectory)
{
CString strMessage;
// The IDS_FILENOTFOUND string resource contains "Error: File %1 not
// found in directory %2"
AfxFormatString2(strMessage, IDS_FILENOTFOUND2, pszFileName, pszDirectory);
// In the previous call, substitute the actual file and directory
// names into the message string
AfxMessageBox(strMessage); // Display the error message
}
Persyaratan
Header afxwin.h
AfxMessageBox
Menampilkan kotak pesan pada layar.
int AfxMessageBox(
LPCTSTR lpszText,
UINT nType = MB_OK,
UINT nIDHelp = 0);
int AFXAPI AfxMessageBox(
UINT nIDPrompt,
UINT nType = MB_OK,
UINT nIDHelp = (UINT) -1);
Parameter
lpszText
Menunjuk ke CString objek atau string yang dihentikan null yang berisi pesan yang akan ditampilkan dalam kotak pesan.
nType
Gaya kotak pesan. Terapkan salah satu gaya kotak pesan ke kotak.
nIDHelp
ID konteks Bantuan untuk pesan; 0 menunjukkan konteks Bantuan default aplikasi akan digunakan.
nIDPrompt
ID unik yang digunakan untuk mereferensikan string dalam tabel string.
Tampilkan Nilai
Nol jika tidak ada cukup memori untuk menampilkan kotak pesan; jika tidak, salah satu nilai berikut dikembalikan:
IDABORTTombol Batalkan dipilih.IDCANCELTombol Batal dipilih.IDIGNORETombol Abaikan dipilih.IDNOTombol Tidak ada yang dipilih.IDOKTombol OK dipilih.IDRETRYTombol Coba Lagi dipilih.IDYESTombol Ya dipilih.
Jika kotak pesan memiliki tombol Batal, IDCANCEL nilai akan dikembalikan jika tombol ESC ditekan atau tombol Batal dipilih. Jika kotak pesan tidak memiliki tombol Batal, menekan tombol ESC tidak berpengaruh.
Fungsi AfxFormatString1 dan AfxFormatString2 dapat berguna dalam memformat teks yang muncul dalam kotak pesan.
Keterangan
Bentuk pertama dari fungsi yang kelebihan beban ini menampilkan string teks yang ditujukan oleh lpszText dalam kotak pesan dan menggunakan nIDHelp untuk menjelaskan konteks Bantuan. Konteks Bantuan digunakan untuk melompat ke topik Bantuan terkait saat pengguna menekan tombol Bantuan (biasanya F1).
Bentuk kedua fungsi menggunakan sumber daya string dengan ID nIDPrompt untuk menampilkan pesan dalam kotak pesan. Halaman Bantuan terkait ditemukan melalui nilai nIDHelp. Jika nilai nIDHelp default digunakan (-1), ID sumber daya string, nIDPrompt, digunakan untuk konteks Bantuan. Untuk informasi selengkapnya tentang menentukan konteks Bantuan, lihat Catatan Teknis 28.
Contoh
// A simple message box, with only the OK button.
AfxMessageBox(_T("Simple message box."));
// A message box that uses a string from a string table
// with yes and no buttons and the stop icon.
// NOTE: nStringID is an integer that contains a valid id of
// a string in the current resource.
AfxMessageBox(nStringID, MB_YESNO | MB_ICONSTOP);