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

  1. /*
  2.  * GetWindowDC
  3.  *
  4.  * This program registers a window and creates it on the screen.  The
  5.  *  program then creates the window, shows the window, and then updates
  6.  *  the window.  The WinMain proceeds to execute the GetWinDC function.
  7.  *  If the function call is successful, a message box is created which
  8.  *  reflects success.  Otherwise, failure is reported via message box.
  9.  */
  10.  
  11. #include "windows.h"
  12.  
  13. /* Global Variables */
  14. static HANDLE hInst;
  15. static HWND hWnd;
  16.  
  17. /* FORWARD REFERENCES */
  18. long FAR PASCAL WindowProc (HWND, unsigned, WORD, LONG);
  19.  
  20. /* WINMAIN */
  21. int PASCAL WinMain (hInstance, hPrevInstance, lpszCmdLine, cmdShow)
  22. HANDLE hInstance, hPrevInstance;
  23. LPSTR lpszCmdLine;
  24. int cmdShow;
  25. {
  26.   MSG  msg;
  27.   HDC  hDC;     /* Handle to the Display Context. */
  28.   BOOL bResult; /* Result from using the DC.      */
  29.  
  30.   if (!hPrevInstance)  {
  31.  
  32.      WNDCLASS rClass;
  33.  
  34.      rClass.lpszClassName = (LPSTR)"getwindc";  /* Unique class name. */
  35.      rClass.hInstance      = hInstance;
  36.      rClass.lpfnWndProc   = DefWindowProc;
  37.      rClass.hCursor         = LoadCursor(NULL, IDC_ARROW);
  38.      rClass.hIcon            = LoadIcon(hInstance, IDI_APPLICATION);
  39.      rClass.lpszMenuName  = (LPSTR)NULL;
  40.      rClass.hbrBackground = GetStockObject(WHITE_BRUSH);
  41.      rClass.style            = CS_HREDRAW | CS_VREDRAW;
  42.      rClass.cbClsExtra      = 0;
  43.      rClass.cbWndExtra      = 0;
  44.  
  45.      RegisterClass((LPWNDCLASS)&rClass);
  46.      }
  47.  
  48.    hInst = hInstance;
  49.  
  50.    hWnd = CreateWindow((LPSTR) "getwindc", /* Create the window.        */
  51.                (LPSTR) "GetWindowDC",        /* Title: GetWindowDC.       */
  52.                WS_OVERLAPPEDWINDOW,          /* Set to overlapped window. */
  53.                CW_USEDEFAULT,                /* Use default coordinates.  */
  54.                CW_USEDEFAULT,                /* Use default coordinates.  */
  55.                CW_USEDEFAULT,                /* Use default coordinates.  */
  56.                CW_USEDEFAULT,                /* Use default coordinates.  */
  57.                (HWND)NULL,
  58.                (HMENU)NULL,
  59.                (HANDLE)hInstance,
  60.                (LPSTR)NULL
  61.              );
  62.  
  63.    ShowWindow(hWnd, cmdShow);
  64.  
  65.    UpdateWindow(hWnd);
  66.  
  67.    if ((hDC = GetWindowDC(hWnd)) != NULL)     /* If successful at getting */
  68.       MessageBox(GetFocus(),                    /*  the DC, send success      */
  69.          (LPSTR)"Got The Window DC",            /*  message via message      */
  70.          (LPSTR)"GetWindowDC",                    /*  box.                       */
  71.          MB_OK);
  72.    else                                             /* Otherwise,                   */
  73.       MessageBox(GetFocus(),                    /*  send the failure          */
  74.          (LPSTR)"Do Not Have the DC",           /*  message via message      */
  75.          (LPSTR)"GetWindowDC",                    /*  box.                       */
  76.          MB_OK);
  77.  
  78.    bResult = Rectangle(hDC, 100, 100, 200, 200);
  79.  
  80.    if (bResult != NULL)
  81.       MessageBox(GetFocus(), (LPSTR)"Used DC Successfully",
  82.                  (LPSTR)"Rectangle()", MB_OK);
  83.    else
  84.       MessageBox(GetFocus(), (LPSTR)"Error Using DC",
  85.                  (LPSTR)"Rectangle()", MB_OK);
  86.  
  87.    ReleaseDC(hWnd, hDC);
  88.  
  89. } /* WinMain */
  90.