home *** CD-ROM | disk | FTP | other *** search
/ Programming Tool Box / SIMS_2.iso / bp_3_94 / vbwin / line3d / line3d.h < prev    next >
C/C++ Source or Header  |  1994-04-24  |  6KB  |  198 lines

  1. //Line3D.h - Headerdatei zu LINE3D.C
  2. //
  3. //Das Steuerelement ist eine erweiterte Fassung des in der "Basic professional
  4. //6/93" vorgestellten 3D-Liniensteuerelementes. Die wesentlichen Neuerungen
  5. //sind nachfolgend zusammengefa▀t:
  6. //
  7. // - neue Linienstile zum Zeichnen eines erhobenen oder
  8. //   versenkten 3D-Rahmens
  9. // - Eigenschaft CAPTION zur Ausgabe von Text
  10. // - Unterstⁿtzung unterschiedlicher Schriftfarben durch Einfⁿhrung
  11. //   der Standardeigenschaft FORECOLOR
  12. // - optionale Textausgabe im 3D-Stil
  13. // - mit Hilfe der Standardeigenschaft ALIGN kann das Steuerelement
  14. //   automatisch als Status- oder Symbolleiste ausgerichtet werden
  15. // - ⁿber das Ereignis MouseMove kann ermittelt werden, wann sich
  16. //   der Mauscursor innerhalb des Steuerelementbereichs befindet
  17. //
  18. //Autor: Dipl.-Ing. Andreas Maslo
  19. //(c)1993/94 by IngES/Dipl.-Ing. Andreas Maslo
  20.  
  21. #define OFFSETIN(struc,field)      ((USHORT)&(((struc *)0)->field))
  22.  
  23. //Ressourcenkennungen fⁿr VB-Toolbox-Elemente
  24. #define IDBMP_LINE3D        8000
  25. #define IDBMP_LINE3DDOWN    8001
  26. #define IDBMP_LINE3DMONO    8003
  27. #define IDBMP_LINE3DEGA     8006
  28.  
  29. //Kontrollprozedur zum Steuerelement LINE3D
  30. LONG FAR PASCAL _export Line3dCtlProc(HCTL, HWND, USHORT, USHORT, LONG);
  31.  
  32. // globale Variablen und Konstanten
  33. extern    HANDLE hmodDLL;     // aus ccinit.c
  34.  
  35. //LINE3D Kontrollstruktur
  36. typedef struct tagLINE3D
  37. {
  38.     RECT    rectDrawInto;
  39.     //Linien-/Rahmenstil
  40.     ENUM    LineStyle;
  41.     //3D-Schriftstil
  42.     ENUM    Font3D;
  43.     //Schriftart
  44.     HFONT   hfont;
  45.     //Text
  46.     HSZ     hszCaption;
  47. } LINE3D;
  48.  
  49. typedef LINE3D FAR * PLINE3D;
  50.  
  51. #ifndef RC_INVOKED
  52.  
  53. //Kennungen der Steuerelementeigenschaften
  54. #define IPROP_LINE3D_CTLNAME              0
  55. #define IPROP_LINE3D_INDEX                1
  56. #define IPROP_LINE3D_BACKCOLOR            2
  57. #define IPROP_LINE3D_LEFT                 3
  58. #define IPROP_LINE3D_TOP                  4
  59. #define IPROP_LINE3D_WIDTH                5
  60. #define IPROP_LINE3D_HEIGHT               6
  61. #define IPROP_LINE3D_VISIBLE              7
  62. #define IPROP_LINE3D_PARENT               8
  63. #define IPROP_LINE3D_TAG                  9
  64. #define IPROP_LINE3D_LINESTYLE           10
  65. #define IPROP_LINE3D_FONT3D              11
  66. #define IPROP_LINE3D_CAPTION             12
  67. #define IPROP_LINE3D_FONTNAME            13
  68. #define IPROP_LINE3D_FONTBOLD            14
  69. #define IPROP_LINE3D_FONTITALIC          15
  70. #define IPROP_LINE3D_FONTSTRIKE          16
  71. #define IPROP_LINE3D_FONTUNDER           17
  72. #define IPROP_LINE3D_FONTSIZE            18
  73. //Schriftfarbe variabel
  74. #define IPROP_LINE3D_FORECOLOR           19
  75. #define IPROP_LINE3D_ALIGN               20
  76.  
  77.  
  78. #ifdef CTL_DATA
  79.  
  80.  
  81. //benutzerdefinierte Eigenschaft:
  82. //3D-Linienstil
  83. PROPINFO Property_LineStyle =
  84. {
  85.     "LineStyle",
  86.     DT_ENUM | PF_fGetData|PF_fSetData | PF_fSetMsg | PF_fSaveData,
  87.     OFFSETIN(LINE3D, LineStyle), 0,
  88.     0,
  89.     //werden keine Linien ausgegeben, kann das Steuerelement
  90.     //als reines Anzeigesteuerelement fⁿr 3D-Text verwendet werden
  91.     "0 - kein\0" "1 - horizontal\0" "2 - vertikal\0"
  92.     //3D-Rahmenstile
  93.     "3 - Rahmen versenkt\0" "4 - Rahmen erhoben\0"
  94.     "5 - abgerundeter Rahmen versenkt\0" "6 - abgerundeter Rahmen erhoben\0", 7
  95. };
  96.  
  97.  
  98. //benutzerdefinierte Eigenschaft: Font3D
  99. //3D-Schrift (Eigenschaftsbezeichnung wurde
  100. //entsprechend dem Steuerelement THREED.VBX der
  101. //professionellen VB-Version gewΣhlt)
  102. PROPINFO Property_Font3D =
  103. {
  104.     "Font3D",
  105.     DT_ENUM | PF_fGetData|PF_fSetData | PF_fSetMsg | PF_fSaveData,
  106.     OFFSETIN(LINE3D, Font3D), 0,
  107.     0,
  108.     "0 - keine 3D-Schrift\0" "1 - 3D-Schrift erhoben\0" "2 - 3D-Schrift versenkt\0", 3
  109. };
  110.  
  111.  
  112. //Tabelle der Steuerelementeigenschaften
  113. PPROPINFO Line3d_Properties[] =
  114. {
  115.     PPROPINFO_STD_CTLNAME,
  116.     PPROPINFO_STD_INDEX,
  117.     PPROPINFO_STD_BACKCOLOR,
  118.     PPROPINFO_STD_LEFT,
  119.     PPROPINFO_STD_TOP,
  120.     PPROPINFO_STD_WIDTH,
  121.     PPROPINFO_STD_HEIGHT,
  122.     PPROPINFO_STD_VISIBLE,
  123.     PPROPINFO_STD_PARENT,
  124.     PPROPINFO_STD_TAG,
  125.     //benutzerdefinierter Linienstil (LineStyle)
  126.     //(3D-Linien)
  127.     &Property_LineStyle,
  128.     //benutzerdefinierte 3D-Schrift (Font3D)
  129.     //(erweiterter Textstil)
  130.     &Property_Font3D,
  131.     PPROPINFO_STD_CAPTION,
  132.     PPROPINFO_STD_FONTNAME,
  133.     PPROPINFO_STD_FONTBOLD,
  134.     PPROPINFO_STD_FONTITALIC,
  135.     PPROPINFO_STD_FONTSTRIKE,
  136.     PPROPINFO_STD_FONTUNDER,
  137.     PPROPINFO_STD_FONTSIZE,
  138.     PPROPINFO_STD_FORECOLOR,
  139.     //Ausrichtung als Status-/Symbolleiste
  140.     //wird ⁿber Eigenschaft ALIGN unterstⁿtzt
  141.     PPROPINFO_STD_ALIGN,
  142.     PPROPINFO_STD_BORDERSTYLEOFF,
  143.     PPROPINFO_STD_TABINDEX,
  144.     PPROPINFO_STD_TABSTOP,
  145.     PPROPINFO_STD_ENABLED,
  146.     PPROPINFO_STD_MOUSEPOINTER,
  147.     NULL
  148. };
  149. #endif    // CTL_DATA
  150.  
  151. //Kennungen der Ereignisse
  152. #define IEVENT_LINE3D_CLICK            0
  153. #define IEVENT_LINE3D_MOUSEMOVE       1
  154.  
  155. #ifdef CTL_DATA
  156.  
  157. //Tabelle der Steuerelementereignisse
  158. PEVENTINFO Line3d_Events[] =
  159. {
  160.     //Steuerelement reagiert auf die Ereignisse
  161.     //Click und MouseMove
  162.     PEVENTINFO_STD_CLICK,
  163.     PEVENTINFO_STD_MOUSEMOVE,
  164.     NULL
  165. };
  166. #endif    // CTL_DATA
  167.  
  168. // Steuerelementmodellstruktur
  169. #ifdef CTL_DATA
  170. MODEL modelLine3d =
  171. {
  172.     VB_VERSION,
  173.     0,
  174.     //Zeiger auf Kontrollprozedur
  175.     (PCTLPROC)Line3dCtlProc,
  176.     //Klassenstile
  177.     CS_VREDRAW | CS_HREDRAW,
  178.     //Fensterstil
  179.     WS_CLIPCHILDREN,
  180.     //Gr÷▀e der Steuerelementstruktur
  181.     sizeof(LINE3D),
  182.     //Bitmap-Kennung (Toolbox)
  183.     IDBMP_LINE3D,
  184.     //Standardkontrollname
  185.     "Line3D",
  186.     //Visual Basic-Klassenname
  187.     "Line3D1",
  188.     NULL,
  189.     //Tabelle Eigenschaften
  190.     Line3d_Properties,
  191.     //Tabelle Ereignisse
  192.     Line3d_Events
  193. };
  194. #endif    // CTL_DATA
  195.  
  196. #endif    // RC_INVOKED
  197.  
  198.