home *** CD-ROM | disk | FTP | other *** search
/ PC World 2001 May / PCWorld_2001-05_cd.bin / Software / Vyzkuste / devc / _SETUP.6 / Group13 / new.cpp next >
C/C++ Source or Header  |  1999-09-30  |  3KB  |  76 lines

  1. /* Creation of a simple Windows API program */
  2.  
  3. #include <windows.h>
  4.  
  5. /* Declare Windowsprocedure */
  6. LRESULT CALLBACK WindowProcedure(HWND, UINT, WPARAM, LPARAM);
  7.  
  8. /* Make the classname into a global variabel */
  9. char szClassName[ ] = "MyLittleWindow";
  10. int WINAPI WinMain(HINSTANCE hThisInstance, HINSTANCE hPrevInstance, LPSTR lpszArgument,
  11. int nFunsterStil)
  12. {
  13.     HWND hwnd; /* This is the handle for our window */
  14.     MSG messages; /* Here messages to the application is saved */
  15.     WNDCLASSEX wincl; /* Datastructure for the windowclass */
  16.     /* The Window structure */
  17.     wincl.hInstance = hThisInstance;
  18.     wincl.lpszClassName = szClassName;
  19.     wincl.lpfnWndProc = WindowProcedure; /* This function is called by windows */
  20.     wincl.style = CS_DBLCLKS; /* Ctach double-clicks */
  21.     wincl.cbSize = sizeof(WNDCLASSEX);
  22.     /* Use default icon and mousepointer */
  23.     wincl.hIcon = LoadIcon(NULL, IDI_APPLICATION);
  24.     wincl.hIconSm = LoadIcon(NULL, IDI_APPLICATION);
  25.     wincl.hCursor = LoadCursor(NULL, IDC_ARROW);
  26.     wincl.lpszMenuName = NULL; /* No menu */
  27.     wincl.cbClsExtra = 0; /* No extra bytes after the window class */
  28.     wincl.cbWndExtra = 0; /* structure or the window instance */
  29.     /* Use lightgray as the background of the window */
  30.     wincl.hbrBackground = (HBRUSH) GetStockObject(LTGRAY_BRUSH);
  31.     /* Register the window class, if fail quit the program */
  32.     if(!RegisterClassEx(&wincl)) return 0;
  33.  
  34.     /* The class is registered, lets create a program*/
  35.  
  36.     hwnd = CreateWindowEx(
  37.            0, /* Extended possibilites for variation */
  38.            szClassName, /* Classname ("MyLittleWindow") */
  39.            "A Simple Windows API program", /* Title Text */
  40.            WS_OVERLAPPEDWINDOW, /* defaultwindow */
  41.            CW_USEDEFAULT, /* Windows decides the position */
  42.            CW_USEDEFAULT, /* where the window end up on the screen */
  43.            280, /* The programs width */
  44.            180, /* and height in pixels */
  45.            HWND_DESKTOP, /* The window is a childwindow to desktop */
  46.            NULL, /* No menu */
  47.            hThisInstance, /* Program Instance handler */
  48.            NULL /* No Window Creation data */
  49.                           );
  50.  
  51.            /* Make the window visible on the screen */
  52.            ShowWindow(hwnd, nFunsterStil);
  53.            /* Run the nessageloop. It will run until GetMessage( ) returns 0 */
  54.            while(GetMessage(&messages, NULL, 0, 0))
  55.            {
  56.                  /* Send message to WindowProcedure */
  57.                  DispatchMessage(&messages);
  58.            }
  59.  
  60.            /* The program returvalue is 0 - The value that PostQuitMessage( ) gave */
  61.            return messages.wParam;
  62.            }
  63.            /* This function is called by the Windowsfunction DispatchMessage( ) */
  64.            LRESULT CALLBACK WindowProcedure(HWND hwnd, UINT message, WPARAM wParam,
  65.            LPARAM lParam)
  66.            {
  67.              switch (message) { /* handle the messages */
  68.              case WM_DESTROY:
  69.              PostQuitMessage(0); /* send a WM_QUIT to the messagequeue */
  70.              break;
  71.              default: /* for messages that we don't deal with */
  72.              return DefWindowProc(hwnd, message, wParam, lParam);
  73.              }
  74.              return 0;
  75.              }
  76.