GDIDEMO.H
上传用户:bangxh
上传日期:2007-01-31
资源大小:42235k
文件大小:3k
源码类别:

Windows编程

开发平台:

Visual C++

  1. /******************************************************************************
  2. *       This is a part of the Microsoft Source Code Samples. 
  3. *       Copyright (C) 1993-1997 Microsoft Corporation.
  4. *       All rights reserved. 
  5. *       This source code is only intended as a supplement to 
  6. *       Microsoft Development Tools and/or WinHelp documentation.
  7. *       See these sources for detailed information regarding the 
  8. *       Microsoft samples programs.
  9. ******************************************************************************/
  10. #ifdef WIN16
  11. #define APIENTRY FAR PASCAL
  12. typedef int (APIENTRY *WNDPROC)();
  13. typedef WORD WPARAM;
  14. typedef VOID *PVOID;
  15. typedef WORD UINT;
  16. #endif
  17. #define APPCLASS   "GDIDEMO"
  18. #define APPTITLE   "Windows GDI Demonstration"
  19. #define APPMENU   1000
  20. #define APPICON   1001
  21. #define ABOUTBOX  1002
  22. #define IDM_DEMO_POLYBEZIER 100
  23. #define IDM_DEMO_XFORM      101
  24. #define IDM_DEMO_MAZE       102
  25. #define IDM_DEMO_DRAW       103
  26. #define IDM_DEMO_BOUNCE     104
  27. #define IDM_WINDOW_CASCADE  200
  28. #define IDM_WINDOW_TILE     201
  29. #define IDM_WINDOW_ICON     202
  30. #define IDM_HELP_ABOUT      900
  31. #define COLOR_SCALE_RED     1
  32. #define COLOR_SCALE_GREEN   2
  33. #define COLOR_SCALE_BLUE    3
  34. #define COLOR_SCALE_GRAY    4
  35. #define CLIENTWND           0
  36. #define BOUNCETITLE  1
  37. #define DRAWTITLE    2
  38. #define MAZETITLE    3
  39. #define POLYTITLE    4
  40. #define XFORMTITLE   5
  41. /*
  42. ** MAIN WINDOW ROUTINES (gdidemo.c)
  43. */
  44. LONG  APIENTRY WndProc(HWND,UINT,WPARAM,LONG);
  45. BOOL           CreateProc(HWND);
  46. VOID           DestroyProc(HWND);
  47. BOOL           CommandProc(HWND,WPARAM,LONG);
  48. VOID           PaintProc(HWND);
  49. DWORD FAR      lRandom(VOID);
  50. /*
  51. ** INITIALIZATION ROUTINES (init.c)
  52. */
  53. BOOL FAR RegisterAppClass(HANDLE);
  54. VOID FAR UnregisterAppClass(HANDLE);
  55. HWND FAR CreateAppWindow(HANDLE);
  56. HWND FAR CreateMDIClientWindow(HWND);
  57. /*
  58. ** DIALOG ROUTINES (dialog.c)
  59. */
  60. BOOL APIENTRY AboutDlgProc(HWND,UINT,WPARAM,LONG);
  61. int  FAR      DisplayDialogBox(HWND,LPSTR,WNDPROC,LONG);
  62. VOID          PaintWindow(HWND,int);
  63. HPALETTE      CreateColorScalePalette(HDC,int);
  64. /*
  65. ** WINDOW ROUTINES (wininfo.c)
  66. */
  67. BOOL  FAR AllocWindowInfo(HWND,WORD);
  68. PVOID FAR LockWindowInfo(HWND);
  69. BOOL  FAR UnlockWindowInfo(HWND);
  70. BOOL  FAR FreeWindowInfo(HWND);
  71. #ifdef TESTDEBUG
  72. #define DEBUGOUT(lpszString) OutputDebugString(lpszString)
  73. #else
  74. #define DEBUGOUT(lpszString) {}
  75. #endif
  76. /*
  77. ** Porting macros...
  78. */
  79. #if defined(_WIN32) || defined(WIN32)
  80. #define GETINSTANCE(hWnd)   (HANDLE)GetWindowLong(hWnd,GWL_HINSTANCE)
  81. #define GETCLASSBRUSH(hWnd) (HBRUSH)GetClassLong(hWnd,GCL_HBRBACKGROUND)
  82. #else
  83. #define GETINSTANCE(hWnd)   (HANDLE)GetWindowWord(hWnd,GWW_HINSTANCE)
  84. #define GETCLASSBRUSH(hWnd) (HBRUSH)GetClassWord(hWnd,GCW_HBRBACKGROUND)
  85. #endif