Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of mappen te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen om mappen te wijzigen.
Opmerking
De Microsoft Foundation Classes-bibliotheek (MFC) wordt nog steeds ondersteund. We voegen echter geen functies meer toe of werken de documentatie bij.
Er worden een aantal functies aangeboden voor het opmaken en parseren CString van objecten. U kunt deze functies gebruiken wanneer u objecten moet bewerken CString , maar ze zijn met name handig voor het opmaken van tekenreeksen die worden weergegeven in de tekst van het berichtvak.
Deze groep functies bevat ook een algemene routine voor het weergeven van een berichtvak.
CString Functies
| Naam | Description |
|---|---|
AfxExtractSubString |
Extraheert subtekenreeksen gescheiden door één teken uit een bepaalde brontekenreeks. |
AfxFormatString1 |
Vervangt een bepaalde tekenreeks voor de notatietekens%1in een tekenreeks in de tekenreekstabel. |
AfxFormatString2 |
Vervangt twee tekenreeksen voor de notatietekens "%1" en "%2" in een tekenreeks in de tekenreekstabel. |
AfxMessageBox |
Geeft een berichtvak weer. |
Requirements
Headerafxwin.h
AfxExtractSubString
Deze globale functie kan worden gebruikt om een subtekenreeks uit een bepaalde brontekenreeks te extraheren.
BOOL AFXAPI AfxExtractSubString (
CString& rString,
LPCTSTR lpszFullString,
int iSubString,
TCHAR chSep = '\n');
Parameterwaarden
rString
Verwijzing naar een CString object dat een afzonderlijke subtekenreeks ontvangt.
lpszFullString
Tekenreeks met de volledige tekst van de tekenreeks waaruit moet worden geëxtraheerd.
iSubString
Op nul gebaseerde index van de subtekenreeks waaruit lpszFullStringmoet worden geëxtraheerd.
chSep
Scheidingsteken dat wordt gebruikt om subtekenreeksen te scheiden.
Retourwaarde
TRUE als de functie de subtekenreeks op de opgegeven index heeft geëxtraheerd; anders, FALSE.
Opmerkingen
Deze functie is handig voor het extraheren van meerdere subtekenreeksen uit een brontekenreeks wanneer één bekend teken elke subtekenreeks scheidt. Deze functie zoekt vanaf het begin van de lpszFullString parameter telkens wanneer deze wordt aangeroepen.
Deze functie wordt geretourneerd FALSE als lpszFullString deze is ingesteld op NULL of als de functie het einde lpszFullString bereikt zonder +1 exemplaren van het opgegeven scheidingsteken te vinden iSubString. De rString parameter wordt niet gewijzigd van de oorspronkelijke waarde als lpszFullString deze is ingesteld op NULL; anders wordt de rString parameter ingesteld op de lege tekenreeks als de subtekenreeks niet kan worden geëxtraheerd voor de opgegeven index.
Example
// 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);
}
Requirements
Headerafxwin.h
AfxFormatString1
Vervangt de tekenreeks die wordt verwezen door lpsz1 voor alle exemplaren van de tekens "%1" in de sjabloontekenreeksresource die wordt geïdentificeerd door nIDS.
void AfxFormatString1(
CString& rString,
UINT nIDS,
LPCTSTR lpsz1);
Parameterwaarden
rString
Een verwijzing naar een CString object dat de resulterende tekenreeks bevat nadat de vervanging is uitgevoerd.
nIDS
De resource-id van de sjabloontekenreeks waarop de vervanging wordt uitgevoerd.
lpsz1
Een tekenreeks die de notatietekens "%1" in de sjabloontekenreeks vervangt.
Opmerkingen
De zojuist gevormde tekenreeks wordt opgeslagen in rString. Als de tekenreeks in de tekenreekstabel bijvoorbeeld gelijk lpsz1 is "File %1 not found"aan"C:\MYFILE.TXT", bevat deze rString de tekenreeks"File C:\MYFILE.TXT not found". Deze functie is handig voor het opmaken van tekenreeksen die naar berichtvakken en andere vensters worden verzonden.
Als de notatietekens "%1" meer dan één keer in de tekenreeks worden weergegeven, worden er meerdere vervangingen uitgevoerd.
Example
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
}
Requirements
Headerafxwin.h
AfxFormatString2
Vervangt de tekenreeks die wordt verwezen door lpsz1 voor alle exemplaren van de tekens "%1"en de tekenreeks die wordt verwezen lpsz2 door voor alle exemplaren van de tekens "%2", in de sjabloonreeksresource die wordt geïdentificeerd door nIDS.
void AfxFormatString2(
CString& rString,
UINT nIDS,
LPCTSTR lpsz1,
LPCTSTR lpsz2);
Parameterwaarden
rString
Een verwijzing naar de CString tekenreeks die de resulterende tekenreeks bevat nadat de vervanging is uitgevoerd.
nIDS
De tekenreekstabel-id van de sjabloontekenreeks waarop de vervanging wordt uitgevoerd.
lpsz1
Een tekenreeks die de notatietekens "%1" in de sjabloontekenreeks vervangt.
lpsz2
Een tekenreeks die de notatietekens "%2" in de sjabloontekenreeks vervangt.
Opmerkingen
De zojuist gevormde tekenreeks wordt opgeslagen in rString. Als de tekenreeks in de tekenreekstabel bijvoorbeeld is "File %1 not found in directory %2", lpsz1 verwijst naar "MYFILE.TXT"en lpsz2 verwijst naar "C:\MYDIR", bevat deze rString de tekenreeks "File MYFILE.TXT not found in directory C:\MYDIR".
Als de notatietekens "%1" meer "%2" dan één keer in de tekenreeks worden weergegeven, worden er meerdere vervangingen aangebracht. Ze hoeven niet in numerieke volgorde te zijn.
Example
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
}
Requirements
Headerafxwin.h
AfxMessageBox
Hiermee wordt een berichtvak op het scherm weergegeven.
int AfxMessageBox(
LPCTSTR lpszText,
UINT nType = MB_OK,
UINT nIDHelp = 0);
int AFXAPI AfxMessageBox(
UINT nIDPrompt,
UINT nType = MB_OK,
UINT nIDHelp = (UINT) -1);
Parameterwaarden
lpszText
Verwijst naar een CString object of null-beëindigde tekenreeks die het bericht bevat dat in het berichtvak moet worden weergegeven.
nType
De stijl van het berichtvak. Pas een van de berichtvakstijlen toe op het vak.
nIDHelp
De Help-context-id voor het bericht; 0 geeft aan dat de standaard-Help-context van de toepassing wordt gebruikt.
nIDPrompt
Een unieke id die wordt gebruikt om te verwijzen naar een tekenreeks in de tekenreekstabel.
Retourwaarde
Nul als er onvoldoende geheugen is om het berichtvak weer te geven; anders wordt een van de volgende waarden geretourneerd:
IDABORTDe knop Afbreken is geselecteerd.IDCANCELDe knop Annuleren is geselecteerd.IDIGNOREDe knop Negeren is geselecteerd.IDNODe knop Nee is geselecteerd.IDOKDe knop OK is geselecteerd.IDRETRYDe knop Opnieuw proberen is geselecteerd.IDYESDe knop Ja is geselecteerd.
Als een berichtvak een knop Annuleren heeft, wordt de IDCANCEL waarde geretourneerd als de ESC-toets wordt ingedrukt of als de knop Annuleren is geselecteerd. Als het berichtvak geen knop Annuleren heeft, heeft het drukken op de ESC-toets geen effect.
De functies AfxFormatString1 en AfxFormatString2 kunnen handig zijn bij het opmaken van tekst die wordt weergegeven in een berichtvak.
Opmerkingen
In de eerste vorm van deze overbelaste functie wordt een tekenreeks weergegeven die in het berichtvak wordt verwezen lpszText en wordt gebruikt nIDHelp om een Help-context te beschrijven. De Help-context wordt gebruikt om naar een gekoppeld Help-onderwerp te gaan wanneer de gebruiker op de Help-toets drukt (meestal F1).
De tweede vorm van de functie maakt gebruik van de tekenreeksresource met de id nIDPrompt om een bericht weer te geven in het berichtvak. De bijbehorende Help-pagina vindt u via de waarde van nIDHelp. Als de standaardwaarde nIDHelp wordt gebruikt (-1), wordt de tekenreeksresource-id, nIDPromptgebruikt voor de Help-context. Zie Technische opmerking 28 voor meer informatie over het definiëren van Help-contexten.
Example
// 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);