ID Number: Q74800
3.00
WINDOWS
Summary:
Windows STRINGTABLE resources are limited to 255 characters per
string. However, it is possible to work with longer strings using the
technique described in this article.
More Information:
The following function, MyLoadString, will allow strings longer than
255 characters to be loaded. Using the exclamation mark (!) to
indicate that a particular string is part of a longer whole is not
required; any character that does not otherwise start a string may be
used for this purpose. The string IDs used for pieces of the same
string must be consecutive.
MyLoadString(HANDLE hInst, WORD wID, LPSTR szBuf)
{
int i, j;
char szLoadedString[256]; // temporary buffer
*szBuf = 0;
do
{
LoadString(hInst, wID, szLoadedString, 255);
if ('!' == *szLoadedString)
{
lstrcat(szBuf, (szLoadedString + 1));
wID++;
}
else
lstrcat(szBuf, szLoadedString);
}
while ('!' == *szLoadedString);
return lstrlen(szBuf);
}
The RC file will take on a form resembling the following:
STRINGTABLE
BEGIN
100, "!This is the first part of the string to be loaded,"
101, "!this is the second part, "
102, "and this is the third"
END