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

  1. /*
  2.  *  SetBKColor
  3.  *  setbkcol.c,
  4.  *
  5.  *  This program demonstrates the use of the function SetBkColor.  The
  6.  *  change in the backround color is demonstrated using the TextOut function.
  7.  *  The color of the text is also changed so that it can be seen against
  8.  *  against the new backround color.
  9.  *
  10.  */
  11.  
  12. #include "windows.h"
  13. #define ERR 0x80000000 /* Error value returned by SetBkColor
  14.             * if an error occurs */
  15.  
  16. /* Procedure called when the application is loaded for the first time */
  17. BOOL WinInit( hInstance )
  18. HANDLE hInstance;
  19. {
  20.     PWNDCLASS   pClass;
  21.  
  22.     pClass = (PWNDCLASS)LocalAlloc( LPTR, sizeof(WNDCLASS) );
  23.  
  24.     /* registering the parent window class */
  25.     pClass->hCursor        = LoadCursor( NULL, IDC_ARROW );
  26.     pClass->lpszMenuName   = (LPSTR)NULL;
  27.     pClass->lpszClassName  = (LPSTR)"Window";
  28.     pClass->hbrBackground  = (HBRUSH)GetStockObject( WHITE_BRUSH );
  29.     pClass->hInstance      = hInstance;
  30.     pClass->style          = CS_HREDRAW | CS_VREDRAW;
  31.     pClass->lpfnWndProc    = DefWindowProc;
  32.  
  33.     if (!RegisterClass( (LPWNDCLASS)pClass ) )
  34.         /* Initialization failed.
  35.          * Windows will automatically deallocate all allocated memory.
  36.          */
  37.         return FALSE;
  38.  
  39.     LocalFree( (HANDLE) pClass );
  40.     return TRUE;        /* Initialization succeeded */
  41. }
  42.  
  43.  
  44. int PASCAL WinMain( hInstance, hPrevInstance, lpszCmdLine, cmdShow )
  45. HANDLE hInstance, hPrevInstance;
  46. LPSTR lpszCmdLine;
  47. int cmdShow;
  48. {
  49.     HWND  hWnd;                /* Handle to the parent window  */
  50.     HDC   hDC;              /* Handle to the display context of client area */
  51.     DWORD rgbcolor;          /* Return value from SetTextColor routine */
  52.     DWORD black = RGB(0x00,0x00,0x00); /* Color of text backround      */
  53.     DWORD white = RGB(0xff,0xff,0xff); /* Color of the output text     */
  54.     long  lpReturn;               /* Return value for SetBkColor  */
  55.  
  56.  
  57.     WinInit (hInstance);
  58.  
  59.     hWnd = CreateWindow((LPSTR)"Window",
  60.             (LPSTR)"SetBkColor",
  61.                         WS_TILEDWINDOW,
  62.                         20,20,400,200,
  63.                         (HWND)NULL,        /* no parent */
  64.                         (HMENU)NULL,       /* use class menu */
  65.                         (HANDLE)hInstance, /* handle to window instance */
  66.                         (LPSTR)NULL        /* no params to pass on */
  67.                        );
  68.  
  69.     /* Make window visible according to the way the app is activated */
  70.     ShowWindow( hWnd, cmdShow );
  71.     UpdateWindow( hWnd );
  72.  
  73.     hDC = GetDC (hWnd);
  74.  
  75.            /* The following text will be black so it can be seen
  76.             * on the white backround                 */
  77.     TextOut(hDC,
  78.         0,
  79.         0,
  80.         (LPSTR) "The backround color is white before invoking SetBkColor.",
  81.         strlen ("The backround color is white before invoking SetBkColor.")
  82.         );
  83.  
  84. /**************************************************************************/
  85. /* SetBkColor sets the backround color of future text output to black.
  86.  * The parameters needed are a handle to a display context (hDC) and
  87.  * and an RGB color value - black in this case                */
  88.  
  89.     lpReturn  = SetBkColor(hDC,black); /* lpReturn contains 80000000H if
  90.                     * an error occurs */
  91.  
  92. /**************************************************************************/
  93.  
  94.     SetTextColor(hDC,white); /* Set the text color to white to
  95.                   * so the text can be seen on the
  96.                   * black backround */
  97.  
  98.     TextOut(hDC,
  99.         0,
  100.         15,
  101.         (LPSTR) "The backround color is black after invoking SetBkcolor.",
  102.         strlen ("The backround color is black after invoking SetBkcolor.")
  103.        );
  104.     ReleaseDC (hWnd, hDC);
  105.  
  106.     if (lpReturn = ERR)
  107.       MessageBox (hWnd, (LPSTR)"The backround color is changed. No errors",
  108.           (LPSTR)"Done", MB_OK);
  109.  
  110.     return 0;
  111. }
  112.