home *** CD-ROM | disk | FTP | other *** search
/ Collection of Education / collectionofeducationcarat1997.iso / COMPUSCI / CENVIW.ZIP / WINDOW.LIB < prev    next >
Text File  |  1993-11-12  |  8KB  |  225 lines

  1. // Window.h
  2.  
  3. #define _WINDOW_LIB  1
  4.  
  5. #define WM_USER            0x0400
  6.  
  7. #define WS_OVERLAPPED      0x00000000
  8. #define WS_POPUP           0x80000000
  9. #define WS_CHILD           0x40000000
  10. #define WS_MINIMIZE        0x20000000
  11. #define WS_VISIBLE         0x10000000
  12. #define WS_DISABLED        0x08000000
  13. #define WS_CLIPSIBLINGS    0x04000000
  14. #define WS_CLIPCHILDREN    0x02000000
  15. #define WS_MAXIMIZE        0x01000000
  16. #define WS_CAPTION         0x00C00000     /* WS_BORDER | WS_DLGFRAME  */
  17. #define WS_BORDER          0x00800000
  18. #define WS_DLGFRAME        0x00400000
  19. #define WS_VSCROLL         0x00200000
  20. #define WS_HSCROLL         0x00100000
  21. #define WS_SYSMENU         0x00080000
  22. #define WS_THICKFRAME      0x00040000
  23. #define WS_GROUP           0x00020000
  24. #define WS_TABSTOP         0x00010000
  25.  
  26. #define WS_MINIMIZEBOX     0x00020000
  27. #define WS_MAXIMIZEBOX     0x00010000
  28.  
  29. #define WS_TILED           WS_OVERLAPPED
  30. #define WS_ICONIC          WS_MINIMIZE
  31. #define WS_SIZEBOX         WS_THICKFRAME
  32.  
  33. /* Common Window Styles */
  34. #define WS_OVERLAPPEDWINDOW (WS_OVERLAPPED | WS_CAPTION | WS_SYSMENU | WS_THICKFRAME | WS_MINIMIZEBOX | WS_MAXIMIZEBOX)
  35. #define WS_POPUPWINDOW     (WS_POPUP | WS_BORDER | WS_SYSMENU)
  36. #define WS_CHILDWINDOW     (WS_CHILD)
  37.  
  38. #define WS_TILEDWINDOW     (WS_OVERLAPPEDWINDOW)
  39.  
  40. /* Extended Window Styles */
  41. #define WS_EX_DLGMODALFRAME   0x1
  42. #define WS_EX_NOPARENTNOTIFY  0x4
  43.  
  44.  
  45. #define CW_USEDEFAULT   0x8000
  46.  
  47.  
  48. /* Button Control Styles */
  49. #define BS_PUSHBUTTON      0x00
  50. #define BS_DEFPUSHBUTTON   0x01
  51. #define BS_CHECKBOX        0x02
  52. #define BS_AUTOCHECKBOX    0x03
  53. #define BS_RADIOBUTTON     0x04
  54. #define BS_3STATE          0x05
  55. #define BS_AUTO3STATE      0x06
  56. #define BS_GROUPBOX        0x07
  57. #define BS_USERBUTTON      0x08
  58. #define BS_AUTORADIOBUTTON 0x09
  59. #define BS_PUSHBOX         0x0A
  60. #define BS_OWNERDRAW       0x0B
  61. #define BS_LEFTTEXT        0x20
  62.  
  63. /* Dialog Styles */
  64. #define DS_ABSALIGN     0x01
  65. #define DS_SYSMODAL     0x02
  66. #define DS_LOCALEDIT    0x20  // Edit items get Local storage.
  67. #define DS_SETFONT      0x40  // User specified font for Dlg controls
  68. #define DS_MODALFRAME   0x80  // Can be combined with WS_CAPTION
  69. #define DS_NOIDLEMSG    0x100 // WM_ENTERIDLE message will not be sent
  70.  
  71. /* Static Control Constants */
  72. #define SS_LEFT            0x00
  73. #define SS_CENTER          0x01
  74. #define SS_RIGHT           0x02
  75. #define SS_ICON            0x03
  76. #define SS_BLACKRECT       0x04
  77. #define SS_GRAYRECT        0x05
  78. #define SS_WHITERECT       0x06
  79. #define SS_BLACKFRAME      0x07
  80. #define SS_GRAYFRAME       0x08
  81. #define SS_WHITEFRAME      0x09
  82. #define SS_USERITEM        0x0A
  83. #define SS_SIMPLE          0x0B
  84. #define SS_LEFTNOWORDWRAP  0x0C
  85. #define SS_NOPREFIX        0x80    /* Don't do "&" character translation */
  86.  
  87. /* Edit Control Styles */
  88. #define ES_LEFT             0x0000
  89. #define ES_CENTER           0x0001
  90. #define ES_RIGHT            0x0002
  91. #define ES_MULTILINE        0x0004
  92. #define ES_UPPERCASE        0x0008
  93. #define ES_LOWERCASE        0x0010
  94. #define ES_PASSWORD         0x0020
  95. #define ES_AUTOVSCROLL      0x0040
  96. #define ES_AUTOHSCROLL      0x0080
  97. #define ES_NOHIDESEL        0x0100
  98. #define ES_OEMCONVERT       0x0400
  99.  
  100. /* Edit Control Notification Codes */
  101. #define EN_SETFOCUS         0x0100
  102. #define EN_KILLFOCUS        0x0200
  103. #define EN_CHANGE           0x0300
  104. #define EN_UPDATE           0x0400
  105. #define EN_ERRSPACE         0x0500
  106. #define EN_MAXTEXT          0x0501
  107. #define EN_HSCROLL          0x0601
  108. #define EN_VSCROLL          0x0602
  109.  
  110. /* GetWindow() Constants */
  111. #define GW_HWNDFIRST 0
  112. #define GW_HWNDLAST  1
  113. #define GW_HWNDNEXT  2
  114. #define GW_HWNDPREV  3
  115. #define GW_OWNER     4
  116. #define GW_CHILD     5
  117.  
  118. /* User Button Notification Codes */
  119. #define BN_CLICKED         0
  120. #define BN_PAINT           1
  121. #define BN_HILITE          2
  122. #define BN_UNHILITE        3
  123. #define BN_DISABLE         4
  124. #define BN_DOUBLECLICKED   5
  125.  
  126. /* Button Control Messages */
  127. #define BM_GETCHECK        (WM_USER+0)
  128. #define BM_SETCHECK        (WM_USER+1)
  129. #define BM_GETSTATE        (WM_USER+2)
  130. #define BM_SETSTATE        (WM_USER+3)
  131. #define BM_SETSTYLE        (WM_USER+4)
  132.  
  133.  
  134. GetDC(hwnd)
  135. {
  136.    return DynamicLink("USER","GETDC",SWORD16,PASCAL,hwnd);
  137. }
  138.  
  139. ReleaseDC(hwnd,hdc)
  140. {
  141.    return DynamicLink("USER","RELEASEDC",SWORD16,PASCAL,hwnd,hdc);
  142. }
  143.  
  144. GetStockObject(Index)
  145. {
  146.    #define WHITE_BRUSH           0
  147.    #define LTGRAY_BRUSH          1
  148.    #define GRAY_BRUSH            2
  149.    #define DKGRAY_BRUSH          3
  150.    #define BLACK_BRUSH           4
  151.    #define NULL_BRUSH            5
  152.    #define HOLLOW_BRUSH          NULL_BRUSH
  153.    #define WHITE_PEN             6
  154.    #define BLACK_PEN             7
  155.    #define NULL_PEN              8
  156.    #define OEM_FIXED_FONT        10
  157.    #define ANSI_FIXED_FONT       11
  158.    #define ANSI_VAR_FONT         12
  159.    #define SYSTEM_FONT           13
  160.    #define DEVICE_DEFAULT_FONT   14
  161.    #define DEFAULT_PALETTE       15
  162.    #define SYSTEM_FIXED_FONT     16
  163.    return DynamicLink("GDI","GETSTOCKOBJECT",SWORD16,PASCAL,Index);
  164. }
  165.  
  166. SelectObject(hDc,hObject)
  167. {
  168.    return DynamicLink("GDI","SELECTOBJECT",SWORD16,PASCAL,hDc,hObject);
  169. }
  170.  
  171. GetTextMetrics(hdc,Metrics)
  172. {
  173.    // Return structure with the following member fields
  174.    //    Height            Total character height (ascent _ descent)
  175.    //    Ascent            units above baseline
  176.    //    Descent           units below baseline
  177.    //    InternalLeading   space in character for accents
  178.    //    ExternalLeading   space between rows
  179.    //    AveCharWidth      average character width
  180.    //    MaxCharWidth      width of widest character
  181.    //    Weight
  182.    //    Italic            italic font if non-zero
  183.    //    Underlined        underlined font if non-zero
  184.    //    StruckOut         struckout font if non-zero
  185.    //    FirstChar         value of first character in this font
  186.    //    LastChar          value of last characte in this font
  187.    //    DefaultChar       character to substitute for chars not in font
  188.    //    BreakChar         character for word breaks and text justification
  189.    //    PitchAndFamily    lowest bit set for variable pitch; 0xF0 bits are family
  190.    //    CharSet           character set of the font
  191.    //    Overhang          per-string extra width
  192.    //    DigitizedAspectX  horizontal aspect
  193.    //    DigitizedAspectY  vertical aspect; aspect ratio is X/Y
  194.    BLObSize(_gtm,31);
  195.    if ( _ret = DynamicLink("GDI","GETTEXTMETRICS",SWORD16,PASCAL,hdc,_gtm) ) {
  196.       Metrics.Height          = BLObGet(_gtm,0,SWORD16);
  197.       Metrics.Ascent          = BLObGet(_gtm,2,SWORD16);
  198.       Metrics.Descent         = BLObGet(_gtm,4,SWORD16);
  199.       Metrics.InternalLeading = BLObGet(_gtm,6,SWORD16);
  200.       Metrics.ExternalLeading = BLObGet(_gtm,8,SWORD16);
  201.       Metrics.AveCharWidth    = BLObGet(_gtm,10,SWORD16);
  202.       Metrics.MaxCharWidth    = BLObGet(_gtm,12,SWORD16);
  203.       Metrics.Weight          = BLObGet(_gtm,14,SWORD16);
  204.       Metrics.Italic          = BLObGet(_gtm,16,UWORD8);
  205.       Metrics.Underlined      = BLObGet(_gtm,17,UWORD8);
  206.       Metrics.StruckOut       = BLObGet(_gtm,18,UWORD8);
  207.       Metrics.FirstChar       = BLObGet(_gtm,19,UWORD8);
  208.       Metrics.LastChar        = BLObGet(_gtm,20,UWORD8);
  209.       Metrics.DefaultChar     = BLObGet(_gtm,21,UWORD8);
  210.       Metrics.BreakChar       = BLObGet(_gtm,22,UWORD8);
  211.       Metrics.PitchAndFamily  = BLObGet(_gtm,23,UWORD8);
  212.       Metrics.CharSet         = BLObGet(_gtm,24,UWORD8);
  213.       Metrics.Overhang        = BLObGet(_gtm,25,SWORD16);
  214.       Metrics.DigitizedAspectX= BLObGet(_gtm,27,SWORD16);
  215.       Metrics.DigitizedAspectY= BLObGet(_gtm,29,SWORD16);
  216.    }
  217.    return(_ret);
  218. }
  219.  
  220. GetWindow(hwnd,Cmd)
  221. {
  222.    return DynamicLink("USER","GETWINDOW",SWORD16,PASCAL,hwnd,Cmd);
  223. }
  224.  
  225.