home *** CD-ROM | disk | FTP | other *** search
/ On Hand / On_Hand_From_Softbank_1994_Release_2_Disc_2_1994.iso / 00202 / s / disk4 / circ3.h_ / circ3.bin
Text File  |  1993-04-28  |  10KB  |  278 lines

  1. //---------------------------------------------------------------------------
  2. //        Copyright (C) 1991-93, Microsoft Corporation
  3. //
  4. // You have a royalty-free right to use, modify, reproduce and distribute
  5. // the Sample Custom Control Files (and/or any modified version) in any way
  6. // you find useful, provided that you agree that Microsoft has no warranty,
  7. // obligation or liability for any Custom Control File.
  8. //---------------------------------------------------------------------------
  9. // Circ3.h
  10. //---------------------------------------------------------------------------
  11.  
  12. //---------------------------------------------------------------------------
  13. // Resource Information
  14. //---------------------------------------------------------------------------
  15. // Toolbox bitmap resource IDs numbers.
  16. //---------------------------------------------------------------------------
  17. #define IDBMP_CIRCLE        8000
  18. #define IDBMP_CIRCLEDOWN    8001
  19. #define IDBMP_CIRCLEMONO    8003
  20. #define IDBMP_CIRCLEEGA     8006
  21.  
  22. //---------------------------------------------------------------------------
  23. // Change these for each new VBX file
  24. //---------------------------------------------------------------------------
  25. #define VBX_COMPANYNAME        "Microsoft Corporation\0"
  26. #define VBX_FILEDESCRIPTION       "Visual Basic Circle Custom Control Example\0"
  27. #define VBX_INTERNALNAME       "CIRC3\0"
  28. #define VBX_LEGALCOPYRIGHT       "Copyright \251 Microsoft Corp. 1991-93\0"
  29. #define VBX_LEGALTRADEMARKS       "Microsoft\256 is a registered trademark of Microsoft Corporation. Visual Basic\231 is a trademark of Microsoft Corporation. Windows\231 is a trademark of Microsoft Corporation.\0"
  30. #define VBX_ORIGINALFILENAME       "CIRC3.VBX\0"
  31. #define VBX_PRODUCTNAME        "Microsoft\256 Visual Basic\231 for Windows\231\0"
  32.  
  33. //---------------------------------------------------------------------------
  34. // Update these fields for each build.
  35. //---------------------------------------------------------------------------
  36. #define VBX_VERSION            3,00,0,00
  37. #define VBX_VERSION_STR        "3.00.000\0"
  38.  
  39. //---------------------------------------------------------------------------
  40. // Constants used by dialog boxes
  41. //---------------------------------------------------------------------------
  42. #define DI_OK          1
  43. #define DI_CANCEL     2
  44. #define DI_REDOPT     105
  45. #define DI_GREENOPT   106
  46. #define DI_BLUEOPT    107
  47.  
  48. #ifndef RC_INVOKED
  49. //---------------------------------------------------------------------------
  50. // Macro for referencing member of structure
  51. //---------------------------------------------------------------------------
  52. #define OFFSETIN(struc, field)        ((USHORT)&(((struc *)0)->field))
  53.  
  54.  
  55. //---------------------------------------------------------------------------
  56. // Control and Window Procedures
  57. //---------------------------------------------------------------------------
  58. LONG FAR PASCAL _export CircleCtlProc(HCTL, HWND, USHORT, USHORT, LONG);
  59. LONG FAR PASCAL _export FlashPopupWndProc(HWND hwnd, USHORT msg, USHORT wp, LONG lp);
  60.  
  61.  
  62. //---------------------------------------------------------------------------
  63. // Global Variables and Constants
  64. //---------------------------------------------------------------------------
  65. extern    HANDLE hmodDLL;     // From ccinit.c
  66. #define CLASS_FLASHPOPUP    "FCPopup"
  67.  
  68.  
  69. //---------------------------------------------------------------------------
  70. // CIRCLE control data and structs
  71. //---------------------------------------------------------------------------
  72. typedef struct tagCIRC
  73.     {
  74.     RECT    rectDrawInto;
  75.     ENUM    CircleShape;    // Changed from SHORT to demonstrate ENUM prop
  76.     LONG    FlashColor;
  77.     HFONT   hfont;
  78.     HSZ     hszCaption;
  79.     } CIRC;
  80.  
  81. typedef CIRC FAR * LPCIRC;
  82.  
  83. #define LpcircDEREF(hctl)     ((LPCIRC)VBDerefControl(hctl))
  84.  
  85.  
  86. //---------------------------------------------------------------------------
  87. // Private messages
  88. //---------------------------------------------------------------------------
  89. #define CM_OPENFLASHDLG     WM_USER
  90.  
  91.  
  92. //---------------------------------------------------------------------------
  93. // Property info
  94. //---------------------------------------------------------------------------
  95. // List of enumeration for CircleShape ENUM property
  96. #define SHAPE_CIRCLE    0
  97. #define SHAPE_OVAL    1
  98. #define SHAPE_MAX    1
  99.  
  100. PROPINFO Property_CircleShape =
  101.     {
  102.     "CircleShape",
  103.     // Changed from SHORT to demonstrate an ENUM property
  104.     DT_ENUM | PF_fGetData | PF_fSetMsg | PF_fSaveData,
  105.     OFFSETIN(CIRC, CircleShape),
  106.     0,
  107.     SHAPE_CIRCLE,
  108.     "0 - Circle\0" "1 - Oval\0",
  109.     SHAPE_MAX
  110.     };
  111.  
  112. PROPINFO Property_FlashColor =
  113.     {
  114.     "FlashColor",
  115.     DT_COLOR | PF_fGetData | PF_fSetData | PF_fSaveData | PF_fEditable,
  116.     OFFSETIN(CIRC, FlashColor),
  117.     0, 0, NULL, 0
  118.     };
  119.  
  120.  
  121. //---------------------------------------------------------------------------
  122. // Property list
  123. //---------------------------------------------------------------------------
  124. // Define the consecutive indicies for the properties
  125. //---------------------------------------------------------------------------
  126. #define IPROP_CIRCLE_CTLNAME          0
  127. #define IPROP_CIRCLE_INDEX                1
  128. #define IPROP_CIRCLE_BACKCOLOR            2
  129. #define IPROP_CIRCLE_LEFT                 3
  130. #define IPROP_CIRCLE_TOP                  4
  131. #define IPROP_CIRCLE_WIDTH                5
  132. #define IPROP_CIRCLE_HEIGHT               6
  133. #define IPROP_CIRCLE_VISIBLE              7
  134. #define IPROP_CIRCLE_PARENT               8
  135. #define IPROP_CIRCLE_DRAGMODE             9
  136. #define IPROP_CIRCLE_DRAGICON            10
  137. #define IPROP_CIRCLE_TAG                 11
  138. #define IPROP_CIRCLE_CIRCLESHAPE         12
  139. #define IPROP_CIRCLE_FLASHCOLOR          13
  140. #define IPROP_CIRCLE_CAPTION             14
  141. #define IPROP_CIRCLE_FONTNAME            15
  142. #define IPROP_CIRCLE_FONTBOLD            16
  143. #define IPROP_CIRCLE_FONTITALIC          17
  144. #define IPROP_CIRCLE_FONTSTRIKE          18
  145. #define IPROP_CIRCLE_FONTUNDER           19
  146. #define IPROP_CIRCLE_FONTSIZE            20
  147. #define IPROP_CIRCLE_BORDERSTYLE     21
  148. #define IPROP_CIRCLE_TABINDEX         22
  149. #define IPROP_CIRCLE_TABSTOP         23
  150. #define IPROP_CIRCLE_ENABLED         24
  151. #define IPROP_CIRCLE_MOUSEPOINTER     25
  152. #define IPROP_CIRCLE_HWND            26
  153. #define IPROP_CIRCLE_HELPCONTEXTID   27
  154. #define IPROP_CIRCLE_DATASOURCE      28
  155. #define IPROP_CIRCLE_DATAFIELD       29
  156. #define IPROP_CIRCLE_DATACHANGED     30
  157.  
  158. PPROPINFO Circle_Properties[] =
  159.     {
  160.     PPROPINFO_STD_CTLNAME,
  161.     PPROPINFO_STD_INDEX,
  162.     PPROPINFO_STD_BACKCOLOR,
  163.     PPROPINFO_STD_LEFT,
  164.     PPROPINFO_STD_TOP,
  165.     PPROPINFO_STD_WIDTH,
  166.     PPROPINFO_STD_HEIGHT,
  167.     PPROPINFO_STD_VISIBLE,
  168.     PPROPINFO_STD_PARENT,
  169.     PPROPINFO_STD_DRAGMODE,
  170.     PPROPINFO_STD_DRAGICON,
  171.     PPROPINFO_STD_TAG,
  172.     &Property_CircleShape,
  173.     &Property_FlashColor,
  174.     PPROPINFO_STD_CAPTION,
  175.     PPROPINFO_STD_FONTNAME,
  176.     PPROPINFO_STD_FONTBOLD,
  177.     PPROPINFO_STD_FONTITALIC,
  178.     PPROPINFO_STD_FONTSTRIKE,
  179.     PPROPINFO_STD_FONTUNDER,
  180.     PPROPINFO_STD_FONTSIZE,
  181.     PPROPINFO_STD_BORDERSTYLEOFF,
  182.     PPROPINFO_STD_TABINDEX,
  183.     PPROPINFO_STD_TABSTOP,
  184.     PPROPINFO_STD_ENABLED,
  185.     PPROPINFO_STD_MOUSEPOINTER,
  186.     PPROPINFO_STD_HWND,
  187.     PPROPINFO_STD_HELPCONTEXTID,
  188.     PPROPINFO_STD_DATASOURCE,
  189.     PPROPINFO_STD_DATAFIELD,
  190.     PPROPINFO_STD_DATACHANGED,
  191.     NULL
  192.     };
  193.  
  194.  
  195. //---------------------------------------------------------------------------
  196. // Event info
  197. //---------------------------------------------------------------------------
  198. WORD Paramtypes_ClickIn[] = {ET_R4, ET_R4, ET_SD};
  199.  
  200. EVENTINFO Event_ClickIn =
  201.     {
  202.     "ClickIn",
  203.     3,
  204.     6,
  205.     Paramtypes_ClickIn,
  206.     "X As Single,Y As Single,Caption As String"
  207.     };
  208.  
  209. EVENTINFO Event_ClickOut =
  210.     {
  211.     "ClickOut",
  212.     0,
  213.     0,
  214.     NULL,
  215.     NULL
  216.     };
  217.  
  218.  
  219. //---------------------------------------------------------------------------
  220. // Event list
  221. //---------------------------------------------------------------------------
  222. // Define the consecutive indicies for the events
  223. //---------------------------------------------------------------------------
  224. #define IEVENT_CIRCLE_CLICKIN          0
  225. #define IEVENT_CIRCLE_CLICKOUT          1
  226. #define IEVENT_CIRCLE_DRAGDROP          2
  227. #define IEVENT_CIRCLE_DRAGOVER          3
  228.  
  229. PEVENTINFO Circle_Events[] =
  230.     {
  231.     &Event_ClickIn,
  232.     &Event_ClickOut,
  233.     PEVENTINFO_STD_DRAGDROP,
  234.     PEVENTINFO_STD_DRAGOVER,
  235.     NULL
  236.     };
  237.  
  238.  
  239. //---------------------------------------------------------------------------
  240. // Model struct
  241. //---------------------------------------------------------------------------
  242. // Define the control model (using the event and property structures).
  243. //---------------------------------------------------------------------------
  244. MODEL modelCircle =
  245.     {
  246.     VB_VERSION,             // VB version being used
  247.     MODEL_fFocusOk | MODEL_fLoadMsg,            // MODEL flags
  248.     (PCTLPROC)CircleCtlProc,        // Control procedure
  249.     CS_VREDRAW | CS_HREDRAW,        // Class style
  250.     0L,                 // Default Windows style
  251.     sizeof(CIRC),            // Size of CIRC structure
  252.     IDBMP_CIRCLE,            // Palette bitmap ID
  253.     "Circle",                // Default control name
  254.     "CIRC3",                // Visual Basic class name
  255.     NULL,                // Parent class name
  256.     Circle_Properties,            // Property information table
  257.     Circle_Events,            // Event information table
  258.     IPROP_CIRCLE_CIRCLESHAPE,        // Default property
  259.     IEVENT_CIRCLE_CLICKIN,        // Default event
  260.     IPROP_CIRCLE_CIRCLESHAPE        // Property representing value of ctl
  261.     };
  262.  
  263. LPMODEL modellistCircle[] =
  264.     {
  265.     &modelCircle,
  266.     NULL
  267.     };
  268.  
  269. MODELINFO modelinfoCircle =
  270.     {
  271.     VB_VERSION,             // VB version being used
  272.     modellistCircle            // MODEL list
  273.     };
  274.  
  275. #endif    // RC_INVOKED
  276.  
  277. //---------------------------------------------------------------------------
  278.