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

  1. /*
  2.  *  Function Name:   DrawText
  3.  *
  4.  *  Description:
  5.  *   This program will put text into the user rectangle with some control
  6.  *   over the method of formatting the text.
  7.  */
  8.  
  9. #include "windows.h"
  10. #include "stdio.h"
  11.  
  12. long    FAR PASCAL WndProc (HWND, unsigned, WORD, LONG);
  13.  
  14. int     PASCAL WinMain (hInstance, hPrevInstance, lpszCmdLine, cmdShow)
  15. HANDLE    hInstance, hPrevInstance;
  16. LPSTR     lpszCmdLine;
  17. int       cmdShow;
  18.   {
  19.   MSG         msg;
  20.   HWND         hWnd;
  21.   WNDCLASS   wcClass;
  22.  
  23.   if (!hPrevInstance)
  24.     {
  25.     wcClass.style       = CS_HREDRAW | CS_VREDRAW;
  26.     wcClass.lpfnWndProc    = WndProc;
  27.     wcClass.cbClsExtra       = 0;
  28.     wcClass.cbWndExtra       = 0;
  29.     wcClass.hInstance       = hInstance;
  30.     wcClass.hIcon          = LoadIcon (hInstance, NULL);
  31.     wcClass.hCursor        = LoadCursor (NULL, IDC_ARROW);
  32.     wcClass.hbrBackground  = (HBRUSH)GetStockObject (WHITE_BRUSH);
  33.     wcClass.lpszMenuName   = NULL;
  34.     wcClass.lpszClassName  = "DrawText";
  35.  
  36.     if (!RegisterClass (&wcClass))
  37.       return FALSE;
  38.     }
  39.  
  40.   hWnd = CreateWindow ("DrawText",
  41.       "DrawText ()",
  42.       WS_OVERLAPPEDWINDOW,
  43.       CW_USEDEFAULT,
  44.       CW_USEDEFAULT,
  45.       CW_USEDEFAULT,
  46.       CW_USEDEFAULT,
  47.       NULL,
  48.       NULL,
  49.       hInstance,
  50.       NULL);
  51.   ShowWindow (hWnd, cmdShow);
  52.   UpdateWindow (hWnd);
  53.   while (GetMessage (&msg, NULL, 0, 0))
  54.     {
  55.     TranslateMessage (&msg);
  56.     DispatchMessage (&msg);
  57.     }
  58.   return msg.wParam;
  59.   }
  60.  
  61. long    FAR PASCAL WndProc (hWnd, message, wParam, lParam)
  62. HWND       hWnd;
  63. unsigned   message;
  64. WORD       wParam;
  65. LONG       lParam;
  66.   {
  67.   PAINTSTRUCT ps;
  68.   HDC          hDC;
  69.   RECT          RectDraw;
  70.   char    szString[80];
  71.   int    nLength;
  72.  
  73.   switch (message)
  74.     {
  75.     case WM_PAINT:
  76.       BeginPaint (hWnd, (LPPAINTSTRUCT) & ps);
  77.       hDC = ps.hdc;
  78.       RectDraw.left     = 10;
  79.       RectDraw.top     = 10;
  80.       RectDraw.right     = 150;
  81.       RectDraw.bottom     = 70;
  82.       nLength = sprintf (szString, "Wow!  Some Text!");
  83.       DrawText (hDC, szString, nLength, &RectDraw, DT_LEFT | DT_WORDBREAK);
  84.       ValidateRect (hWnd, NULL);
  85.       EndPaint (hWnd, &ps);
  86.       break;
  87.  
  88.     case WM_DESTROY:
  89.       PostQuitMessage (0);
  90.       break;
  91.  
  92.     default:
  93.       return DefWindowProc (hWnd, message, wParam, lParam);
  94.     }
  95.   return (0L);
  96.   }
  97.