Bagikan melalui


CString Pemformatan dan Tampilan Kotak Pesan

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:

  • IDABORT Tombol Batalkan dipilih.

  • IDCANCEL Tombol Batal dipilih.

  • IDIGNORE Tombol Abaikan dipilih.

  • IDNO Tombol Tidak ada yang dipilih.

  • IDOK Tombol OK dipilih.

  • IDRETRY Tombol Coba Lagi dipilih.

  • IDYES Tombol 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);

Lihat juga

Makro dan Global
CStringT Kelas