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

  1. /*
  2.  *   IsZoomed
  3.  *
  4.  *   This program demonstrates the use of the IsZoomed function. The IsZoomed
  5.  *   function returns a boolean telling whether or not the given window is
  6.  *   zoomed (maximized). Choosing the "Zoomed?" option in the system menu
  7.  *   enacts the call to IsZoomed in this sample application.
  8.  */
  9.  
  10. #include "windows.h"
  11. #define IDSABOUT 200
  12.  
  13. char    szAbout[10];
  14.  
  15. long    FAR PASCAL HelloWndProc (HWND, unsigned, WORD, LONG);
  16.  
  17. int     PASCAL WinMain (hInstance, hPrevInstance, lpszCmdLine, cmdShow)
  18. HANDLE    hInstance, hPrevInstance;
  19. LPSTR     lpszCmdLine;
  20. int       cmdShow;
  21.   {
  22.   MSG   msg;
  23.   HWND  hWnd;
  24.   HMENU hMenu;
  25.   PWNDCLASS   pHelloClass;
  26.  
  27.   pHelloClass = (PWNDCLASS)LocalAlloc (LPTR, sizeof (WNDCLASS));
  28.  
  29.   pHelloClass->hCursor        = LoadCursor (NULL, IDC_ARROW);
  30.   pHelloClass->hIcon             = LoadIcon (hInstance, NULL);
  31.   pHelloClass->lpszMenuName   = (LPSTR)NULL;
  32.   pHelloClass->lpszClassName     = (LPSTR)"Sample Application";
  33.   pHelloClass->hbrBackground  = (HBRUSH)GetStockObject (WHITE_BRUSH);
  34.   pHelloClass->hInstance      = hInstance;
  35.   pHelloClass->style          = CS_HREDRAW | CS_VREDRAW;
  36.   pHelloClass->lpfnWndProc    = HelloWndProc;
  37.  
  38.   if (!RegisterClass ( (LPWNDCLASS)pHelloClass))
  39.     return FALSE;
  40.  
  41.   LocalFree ( (HANDLE)pHelloClass);
  42.  
  43.   hWnd = CreateWindow ( (LPSTR)"Sample Application", (LPSTR)"Sample Application",
  44.                       WS_OVERLAPPEDWINDOW,
  45.                       CW_USEDEFAULT, 0,
  46.                       CW_USEDEFAULT, 0,
  47.                       NULL, NULL, hInstance, NULL);
  48.  
  49. /* Insert "Zoomed?" into system menu */
  50.   hMenu = GetSystemMenu (hWnd, FALSE);
  51.   ChangeMenu (hMenu, 0, NULL, 999, MF_APPEND | MF_SEPARATOR);
  52.   ChangeMenu (hMenu, 0, (LPSTR)"Zoomed?", IDSABOUT, MF_APPEND | MF_STRING);
  53.  
  54.   ShowWindow (hWnd, cmdShow);
  55.   UpdateWindow (hWnd);
  56.  
  57.   while (GetMessage ( (LPMSG) & msg, NULL, 0, 0))
  58.     {
  59.     TranslateMessage ( (LPMSG) & msg);
  60.     DispatchMessage ( (LPMSG) & msg);
  61.     }
  62.   return (int)msg.wParam;
  63.   }
  64.  
  65. /* Procedures which make up the window class. */
  66. long    FAR PASCAL HelloWndProc (hWnd, message, wParam, lParam)
  67. HWND hWnd;
  68. unsigned    message;
  69. WORD wParam;
  70. LONG lParam;
  71.   {
  72.   PAINTSTRUCT ps;
  73.   BOOL Zoomed;
  74.  
  75.   switch (message)
  76.     {
  77.     case WM_SYSCOMMAND:
  78.       switch (wParam)
  79.         {
  80.         case IDSABOUT:
  81. /***********************************************************************/
  82.           Zoomed = IsZoomed (hWnd);
  83.           if (Zoomed)
  84.             MessageBox (hWnd, (LPSTR)"This window is zoomed",
  85.                        (LPSTR)"ZOOM INFO", MB_OK);
  86.           else
  87.             MessageBox (hWnd, (LPSTR)"This window is NOT zoomed",
  88.                        (LPSTR)"ZOOM INFO", MB_OK);
  89. /************************************************************************/
  90.         break;
  91.  
  92.         default:
  93.           return DefWindowProc (hWnd, message, wParam, lParam);
  94.         }
  95.       break;
  96.  
  97.     case WM_DESTROY:
  98.       PostQuitMessage (0);
  99.       break;
  100.  
  101.     default:
  102.       return DefWindowProc (hWnd, message, wParam, lParam);
  103.       break;
  104.     }
  105.   return (0L);
  106.   }
  107.