home *** CD-ROM | disk | FTP | other *** search
/ Microsoft Programmer's Library 1.3 / Microsoft-Programers-Library-v1.3.iso / sampcode / win_lrn / string / loadstr.c < prev    next >
C/C++ Source or Header  |  1988-08-10  |  4KB  |  123 lines

  1. /*
  2.  *   LoadString
  3.  *
  4.  *   This program demonstrates the use of the LoadString function. The
  5.  *   LoadString Function loads string resources identified by the second
  6.  *   parameter. In this sample application, the string resource identifiers
  7.  *   are STRING1 and STRING2.
  8.  *
  9.  */
  10.  
  11. #include <windows.h>
  12. #include "loadstr.h"
  13.  
  14. char    szBuffer[26];   /* buffer to hold strings loaded via LoadString    */
  15.  
  16. long    FAR PASCAL HelloWndProc (HWND, unsigned, WORD, LONG);
  17.  
  18. /***************************************************************************/
  19. /* Procedure called when the application is loaded for the first time */
  20.  
  21. BOOL HelloInit (hInstance)
  22. HANDLE hInstance;
  23.   {
  24.   PWNDCLASS   pHelloClass;
  25.  
  26.   pHelloClass = (PWNDCLASS)LocalAlloc (LMEM_FIXED, sizeof (WNDCLASS));
  27.  
  28.   pHelloClass->hCursor        = LoadCursor (NULL, IDC_ARROW);
  29.   pHelloClass->hIcon                 = LoadIcon (hInstance, NULL);
  30.   pHelloClass->lpszMenuName   = (LPSTR)NULL;
  31.   pHelloClass->lpszClassName  = (LPSTR)"Sample Application";
  32.   pHelloClass->hbrBackground  = (HBRUSH)GetStockObject (WHITE_BRUSH);
  33.   pHelloClass->hInstance      = hInstance;
  34.   pHelloClass->style          = CS_HREDRAW | CS_VREDRAW;
  35.   pHelloClass->lpfnWndProc    = HelloWndProc;
  36.  
  37.   if (!RegisterClass ( (LPWNDCLASS)pHelloClass))
  38.     return FALSE;
  39.  
  40.   LocalFree ( (HANDLE)pHelloClass);
  41.   return TRUE;        /* Initialization succeeded */
  42.   }
  43.  
  44.  
  45. /***************************************************************************/
  46.  
  47. int     PASCAL WinMain (hInstance, hPrevInstance, lpszCmdLine, cmdShow)
  48. HANDLE hInstance, hPrevInstance;
  49. LPSTR lpszCmdLine;
  50. int    cmdShow;
  51.   {
  52.   MSG   msg;
  53.   HWND  hWnd;
  54.   HMENU hMenu;
  55.   int    sizeString;  /* holds return value from LoadString */
  56.  
  57.   if (!hPrevInstance)
  58.     HelloInit (hInstance);
  59.  
  60.   hWnd = CreateWindow ( (LPSTR)"Sample Application",
  61.       (LPSTR)"Sample Application",
  62.       WS_OVERLAPPEDWINDOW,
  63.       CW_USEDEFAULT,
  64.       CW_USEDEFAULT,
  65.       CW_USEDEFAULT,
  66.       CW_USEDEFAULT,
  67.       (HWND)NULL,        /* no parent */
  68.   (HMENU)NULL,      /* use class menu */
  69.   (HANDLE)hInstance, /* handle to window instance */
  70.   (LPSTR)NULL        /* no params to pass on */
  71.  );
  72.  
  73.   ShowWindow (hWnd, cmdShow);
  74.   UpdateWindow (hWnd);
  75.  
  76. /* attempt to load string with identifier STRING1 */
  77.   sizeString = LoadString (hInstance, STRING1, (LPSTR)szBuffer, 25);
  78.  
  79.   if (sizeString > 0)  /* if string with STRING1 identifier exists */
  80.     MessageBox (hWnd, (LPSTR)szBuffer,
  81.         (LPSTR)"The following string came via LoadString", MB_OK);
  82.   else
  83.     MessageBox (hWnd, (LPSTR)"No such string resource exists",
  84.         (LPSTR)"ERROR", MB_OK);
  85.  
  86. /* attempt to load string with identifier STRING2 */
  87.   sizeString = LoadString (hInstance, STRING2, (LPSTR)szBuffer, 25);
  88.  
  89.   if (sizeString > 0) /* if string with STRING2 identifier exists */
  90.     MessageBox (hWnd, (LPSTR)szBuffer,
  91.         (LPSTR)"The following string came via LoadString", MB_OK);
  92.   else
  93.     MessageBox (hWnd, (LPSTR)"No such string resource exists",
  94.         (LPSTR)"ERROR", MB_OK);
  95.  
  96.   while (GetMessage ( (LPMSG) & msg, NULL, 0, 0))
  97.     {
  98.     TranslateMessage ( (LPMSG) & msg);
  99.     DispatchMessage ( (LPMSG) & msg);
  100.     }
  101.   return (int)msg.wParam;
  102.   }
  103.  
  104. /***************************************************************************/
  105. long    FAR PASCAL HelloWndProc (hWnd, message, wParam, lParam)
  106. HWND hWnd;
  107. unsigned    message;
  108. WORD wParam;
  109. LONG lParam;
  110.   {
  111.   switch (message)
  112.     {
  113.     case WM_DESTROY:
  114.       PostQuitMessage (0);
  115.       break;
  116.  
  117.     default:
  118.       return DefWindowProc (hWnd, message, wParam, lParam);
  119.       break;
  120.     }
  121.   return (0L);
  122.   }
  123.