home *** CD-ROM | disk | FTP | other *** search
/ Power-Programmierung / CD1.mdf / pascal / das_buch / windows / owl / tmsg.pas < prev   
Encoding:
Pascal/Delphi Source File  |  1993-06-04  |  2.5 KB  |  101 lines

  1. PROGRAM WhatsInaMsg;
  2.  
  3. USES WinTypes, WinProcs, Strings;
  4.  
  5. CONST
  6.   AppName = 'TMsg_Dump';
  7.  
  8. FUNCTION WindowProc(Window: hWND; Message, wParam: WORD;
  9.   lParam: LONGINT): LONGINT; EXPORT;
  10. VAR
  11.   MyHDC: hDC;
  12.   PasString: STRING[20];
  13.   aPChar: ARRAY [0..19] OF CHAR;
  14. BEGIN
  15.   WindowProc := 0;
  16.   CASE Message OF
  17.     wm_LButtonDown, wm_RButtonDown, wm_MButtonDown:
  18.       BEGIN
  19.         MyHDC := GetDC (Window);
  20.         TextOut (MyHDC, 10, 10, 'Message   :          ', 20);
  21.         Str (Message, PasString);
  22.         StrPCopy (aPChar, PasString);
  23.         TextOut (MyHDC, 100, 10, aPChar, StrLen(aPChar));
  24.  
  25.         TextOut (MyHDC, 10, 30, 'wParam    :          ', 20);
  26.         Str (wParam, PasString);
  27.         StrPCopy (aPChar, PasString);
  28.         TextOut (MyHDC, 100, 30, aPChar, StrLen(aPChar));
  29.  
  30.         TextOut (MyHDC, 10, 50, 'lParam.Lo :            ', 22);
  31.         Str ((lParam DIV 65536), PasString);
  32.         StrPCopy (aPChar, PasString);
  33.         TextOut (MyHDC, 100, 50, aPChar, StrLen(aPChar));
  34.  
  35.         TextOut (MyHDC, 10, 70, 'lParam.Hi :            ', 22);
  36.         Str ((lParam MOD 65536), PasString);
  37.         StrPCopy (aPChar, PasString);
  38.         TextOut (MyHDC, 100, 70, aPChar, StrLen(aPChar));
  39.  
  40.         ReleaseDC (Window, MyHDC);
  41.       END;
  42.     wm_Destroy:
  43.       BEGIN
  44.         PostQuitMessage(0);
  45.         Exit;
  46.       END;
  47.   END;
  48.   WindowProc := DefWindowProc(Window, Message, wParam, lParam);
  49. END;
  50.  
  51. PROCEDURE WinMain;
  52. VAR
  53.   Window: hWND;
  54.   Message: tMsg;
  55. CONST
  56.   WindowClass: tWndClass = (
  57.     Style: 0;
  58.     lpfnWndProc: @WindowProc;
  59.     cbClsExtra: 0;
  60.     cbWndExtra: 0;
  61.     hInstance: 0;
  62.     hIcon: 0;
  63.     hCursor: 0;
  64.     hbrBackground: 0;
  65.     lpszMenuName: AppName;
  66.     lpszClassName: AppName);
  67. BEGIN
  68.   IF hPrevInst = 0 THEN
  69.   BEGIN
  70.     WindowClass.hInstance := hInstance;
  71.     WindowClass.hIcon := LoadIcon(0, idi_Application);
  72.     WindowClass.hCursor := LoadCursor(0, idc_Arrow);
  73.     WindowClass.hbrBackground := GetStockObject(White_Brush);
  74.     IF NOT RegisterClass(WindowClass) THEN Halt(255);
  75.   END;
  76.   Window := CreateWindow(
  77.     AppName,
  78.     'What''s in a Message',
  79.     ws_OverlappedWindow,
  80.     cw_UseDefault,
  81.     cw_UseDefault,
  82.     cw_UseDefault,
  83.     cw_UseDefault,
  84.     0,
  85.     0,
  86.     hInstance,
  87.     NIL);
  88.   ShowWindow(Window, CmdShow);
  89.   UpdateWindow(Window);
  90.   WHILE GetMessage(Message, 0, 0, 0) DO
  91.   BEGIN
  92.     TranslateMessage(Message);
  93.     DispatchMessage(Message);
  94.   END;
  95.   Halt(Message.wParam);
  96. END;
  97.  
  98. BEGIN
  99.   WinMain;
  100. END.
  101.