WXFORM.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. /*  wxform.h -- header file for World transform sample.  */
  11. LRESULT CALLBACK MainWndProc     (HWND, UINT, WPARAM, LPARAM);
  12. LRESULT CALLBACK TransformDlgProc(HWND, UINT, WPARAM, LPARAM);
  13. LRESULT CALLBACK MouseDlgProc    (HWND, UINT, WPARAM, LPARAM);
  14. /* dialog id's for the Transform dialog */
  15. #define IDD_EM11        101
  16. #define IDD_EM12        102
  17. #define IDD_EDX         103
  18. #define IDD_EM21        104
  19. #define IDD_EM22        105
  20. #define IDD_EDY         106
  21. #define IDD_13          107
  22. #define IDD_23          108
  23. #define IDD_33          109
  24. #define IDD_SETXFORM    110
  25. #define IDD_IDENTITY    111
  26. /* dialog id's for the Mouse dialog */
  27. #define IDD_SCREENX     201
  28. #define IDD_SCREENY     202
  29. #define IDD_DEVICEX     203
  30. #define IDD_DEVICEY     204
  31. #define IDD_WORLDX      205
  32. #define IDD_WORLDY      206
  33. /* string table ids's */
  34. #define IDS_NTONLY        16
  35. #define IDS_WINDOWTITLE   17
  36. /* special messages for doTrackobject(). */
  37. #define TROB_NEW         WM_USER+1
  38. #define TROB_DELETE      WM_USER+2
  39. #define TROB_PAINT       WM_USER+3
  40. #define TROB_HITTEST     WM_USER+5
  41. #define TROB_CENTER      WM_USER+6
  42. #define TROB_SETXFORM    WM_USER+7
  43. /* special user message for two of the dialogs */
  44. #define WM_PUTUPFLOATS  WM_USER+1
  45. /* Different "Track modes." */
  46. #define TMNONE    0x0000
  47. #define TMMOVE    0x0001
  48. #define TMSIZEX   0x0002
  49. #define TMSIZEY   0x0004
  50. #define TMSIZEXY  0x0006
  51. #define TMSHEARX  0x0010
  52. #define TMSHEARY  0x0020
  53. #define TMROTATE  0x0008
  54. /* misc. defines for drawing and formating */
  55. #define TICKSPACE 20
  56. #define MAXCHARS  32
  57. #define INC   5
  58. #define FORMATFLOAT    "%1.2f"
  59. #define GRIDCOLOR (COLORREF) 0x01000006
  60. /* structure for the track object.  c.f. ptoRect */
  61. typedef struct tagTrackObject{
  62.     RECT   rect;
  63.     XFORM  xfmChange;   /* World coordinate transform      */
  64.     XFORM  xfmDown;     /* transform when the mouse down happens. */
  65.     HDC    hdc;
  66.     int    Mode;        /* TMROTATE, TMSIZEXY, TMMOVE, ... */
  67.     struct tagTrackObject* Next;
  68. } TrackObject, *PTrackObject;
  69. /* function prototypes. */
  70. PTrackObject doTrackObject(PTrackObject, int, HWND, LONG);
  71. VOID MouseMove(PTrackObject, int, HWND, LONG);
  72. VOID CenterOrigin (HWND, HDC);
  73. /* Global variables. */
  74. BOOL showTransform, showMouse, showHelp;
  75. HWND hwndTransform, hwndMouse, hwndHelp;
  76. PTrackObject ptoRect = NULL;
  77. HANDLE hInst;
  78. HWND   hwndMain;