Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Uyarı
Microsoft Foundation Sınıfları (MFC) kitaplığına destek verilmeye devam ediliyor. Ancak artık özellik eklemeyeceğiz veya belgeleri güncelleştirmeyeceğiz.
Nesneleri biçimlendirmek ve ayrıştırmak CString için bir dizi işlev sağlanır. Nesneleri işlemeniz CString gerektiğinde bu işlevleri kullanabilirsiniz, ancak bunlar özellikle ileti kutusu metninde görünecek dizeleri biçimlendirmek için kullanışlıdır.
Bu işlev grubu, ileti kutusunu görüntülemek için genel bir yordam da içerir.
CString Işlev
| Veri Akışı Adı | Açıklama |
|---|---|
AfxExtractSubString |
Belirli bir kaynak dizeden tek bir karakterle ayrılmış alt dizeleri ayıklar. |
AfxFormatString1 |
Dize tablosundaki bir dizedeki "%1" biçim karakterlerinin yerine belirli bir dizeyi koyar. |
AfxFormatString2 |
Dize tablosundaki bir dizedeki "%1" ve "%2" biçim karakterleri için iki dizenin yerini alır. |
AfxMessageBox |
İleti kutusunu görüntüler. |
Gereksinimler
Üstbilgiafxwin.h
AfxExtractSubString
Bu genel işlev, belirli bir kaynak dizeden alt dize ayıklamak için kullanılabilir.
BOOL AFXAPI AfxExtractSubString (
CString& rString,
LPCTSTR lpszFullString,
int iSubString,
TCHAR chSep = '\n');
Parametreler
rString
Tek bir CString alt dize alacak bir nesneye başvuru.
lpszFullString
Ayıklanması gereken dizenin tam metnini içeren dize.
iSubString
içinden lpszFullStringayıklanması gereken alt dizenin sıfır tabanlı dizini.
chSep
Alt dizeleri sınırlandırmak için kullanılan ayırıcı karakter.
Dönüş Değeri
TRUE işlevi sağlanan dizinde alt dizeyi başarıyla ayıkladıysa; aksi takdirde , FALSE.
Açıklamalar
Bu işlev, bilinen tek bir karakter her alt dizeyi ayırdığında kaynak dizeden birden çok alt dize ayıklamak için kullanışlıdır. Bu işlev, her çağrıldığında parametrenin lpszFullString başından arar.
Bu işlev, olarak ayarlanırsa FALSE veya işlev belirtilen ayırıcı karakterin +1 yinelemesini bulmadan lpszFullStringsonuna NULL ulaşırsa lpszFullString döndürüriSubString.
rString parametresi, olarak ayarlandıysa lpszFullStringNULLözgün değerinden değiştirilmez; aksi takdirde, rString belirtilen dizin için alt dize ayıklanamadıysa parametresi boş dizeye ayarlanır.
Örnek
// 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);
}
Gereksinimler
Üstbilgiafxwin.h
AfxFormatString1
tarafından tanımlanan lpsz1şablon dizesi kaynağındaki karakterlerin "%1" tüm örnekleri için işaret ettiği nIDS dizenin yerini alır.
void AfxFormatString1(
CString& rString,
UINT nIDS,
LPCTSTR lpsz1);
Parametreler
rString
Değiştirme gerçekleştirildikten sonra sonuç dizesini içerecek bir CString nesneye başvuru.
nIDS
Değiştirmenin gerçekleştirileceği şablon dizesinin kaynak kimliği.
lpsz1
Şablon dizesindeki biçim karakterlerini "%1" değiştirecek bir dize.
Açıklamalar
Yeni oluşturulan dize içinde rStringdepolanır. Örneğin, dize tablosundaki "File %1 not found"dize ise ve lpsz1 değerine eşitse"C:\MYFILE.TXT"rString, dizesini "File C:\MYFILE.TXT not found"içerir. Bu işlev, ileti kutularına ve diğer pencerelere gönderilen dizeleri biçimlendirmek için kullanışlıdır.
Biçim karakterleri "%1" dizede birden çok kez görünüyorsa, birden çok değiştirme yapılır.
Örnek
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
}
Gereksinimler
Üstbilgiafxwin.h
AfxFormatString2
tarafından belirtilen şablon dizesi kaynağında lpsz1karakterlerin "%1"herhangi bir örneği için işaret edilen lpsz2 dizeyi ve karakterlerin "%2"tüm örnekleri için tarafından işaret edilen nIDS dizeyi kullanır.
void AfxFormatString2(
CString& rString,
UINT nIDS,
LPCTSTR lpsz1,
LPCTSTR lpsz2);
Parametreler
rString
Değiştirme gerçekleştirildikten sonra sonuç dizesini içerecek öğesine başvuru CString .
nIDS
Değiştirmenin gerçekleştirileceği şablon dizesinin dize tablosu kimliği.
lpsz1
Şablon dizesindeki biçim karakterlerini "%1" değiştirecek bir dize.
lpsz2
Şablon dizesindeki biçim karakterlerini "%2" değiştirecek bir dize.
Açıklamalar
Yeni oluşturulan dize içinde rStringdepolanır. Örneğin, dize tablosundaki dize ise "File %1 not found in directory %2", lpsz1"MYFILE.TXT"öğesine ve lpsz2 işaret ise "C:\MYDIR"rStringdizesini "File MYFILE.TXT not found in directory C:\MYDIR"içerir.
Karakter "%1" biçimlendirilirse veya "%2" dizede birden çok kez görünürse, birden çok değiştirme yapılır. Sayısal sırada olmaları gerekmez.
Örnek
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
}
Gereksinimler
Üstbilgiafxwin.h
AfxMessageBox
Ekranda bir ileti kutusu görüntüler.
int AfxMessageBox(
LPCTSTR lpszText,
UINT nType = MB_OK,
UINT nIDHelp = 0);
int AFXAPI AfxMessageBox(
UINT nIDPrompt,
UINT nType = MB_OK,
UINT nIDHelp = (UINT) -1);
Parametreler
lpszText
İleti kutusunda görüntülenecek iletiyi içeren bir CString nesneye veya null ile sonlandırılan dizeye işaret ediyor.
nType
İleti kutusunun stili. İleti kutusu stillerinden herhangi birini kutuya uygulayın.
nIDHelp
İletinin Yardım bağlam kimliği; 0, uygulamanın varsayılan Yardım bağlamlarının kullanılacağını gösterir.
nIDPrompt
Dize tablosundaki bir dizeye başvurmak için kullanılan benzersiz kimlik.
Dönüş Değeri
İleti kutusunu görüntülemek için yeterli bellek yoksa sıfır; aksi takdirde, aşağıdaki değerlerden biri döndürülür:
IDABORTDurdur düğmesi seçildi.IDCANCELİptal düğmesi seçildi.IDIGNOREYoksay düğmesi seçildi.IDNOHayır düğmesi seçildi.IDOKTamam düğmesi seçildi.IDRETRYYeniden Dene düğmesi seçildi.IDYESEvet düğmesi seçildi.
İleti kutusunda İptal düğmesi varsa, IDCANCEL ESC tuşuna basıldığında veya İptal düğmesi seçiliyse değer döndürülür. İleti kutusunda İptal düğmesi yoksa ESC tuşuna basıldığında hiçbir etkisi olmaz.
ve işlevleri AfxFormatString1AfxFormatString2 , bir ileti kutusunda görüntülenen metni biçimlendirmede yararlı olabilir.
Açıklamalar
Bu aşırı yüklenmiş işlevin ilk biçimi, ileti kutusunda tarafından lpszText işaret edilen bir metin dizesi görüntüler ve bir Yardım bağlamını açıklamak için kullanır nIDHelp . Yardım bağlamı, kullanıcı Yardım tuşuna (genellikle F1) bastığında ilişkili bir Yardım konusuna atlamak için kullanılır.
İşlevin ikinci biçimi, ileti kutusunda bir ileti görüntülemek için kimliğiyle nIDPrompt dize kaynağını kullanır. İlişkili Yardım sayfası değeri nIDHelparacılığıyla bulunur. varsayılan değeri nIDHelp (-1) kullanılırsa, Yardım bağlamı için dize kaynağı kimliği nIDPromptkullanılır. Yardım bağlamlarını tanımlama hakkında daha fazla bilgi için bkz . Teknik Not 28.
Örnek
// 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);