home *** CD-ROM | disk | FTP | other *** search
/ Win 3.11 Apps / win311aps.iso / VBTOO / READ.ME < prev    next >
Text File  |  1995-05-15  |  16KB  |  350 lines

  1.                         MicroHelp VBTools 3
  2.  
  3. Commercial release date: 08-09-93
  4.  
  5. This file contains important post release information and changes to the
  6. documentation since the manual was printed.
  7.  
  8. ==========================================================================
  9. BBS Access
  10. ----------
  11.  
  12. Any registered user of VBTools 3 can download the latest version of the
  13. files from our BBS.  The first time you call the BBS, please leave a (C)omment
  14. to the SYSOP by using the "C" command, and leave the name under which the
  15. product is registered as well as your serial number.  We check the BBS at
  16. least twice each business day (morning and afternoon) and will clear you
  17. into the conference as soon as possible.  We cannot give you access to the
  18. BBS until you register the product.
  19.  
  20. Once you are cleared into the conference, enter "J;VBTOOLS" to join the
  21. conference.  To view the latest files, enter "F;8" once you are in the
  22. conference.  More information about our BBS including the telephone
  23. number is listed in your documentation and in the Windows help file
  24. under "Technical Support".
  25.  
  26. ==========================================================================
  27. Setup and Windows 3.0
  28. ---------------------
  29. If you are running Windows 3.0 and you receive a message "Unable to
  30. load LZEXPAND.DLL", all you need to do is copy the LZEXPAND.DLX file from 
  31. distribution disk 1 to your WINDOWS\SYSTEM directory as LZEXPAND.DLL and then 
  32. restart the Setup program.
  33.  
  34. ==========================================================================
  35. Version 1.x Controls Included for Upward Compatibility
  36. ------------------------------------------------------
  37. The following controls are included in version 3 of VBTools for upward 
  38. compatibility only. These controls were designed to enhance Visual Basic
  39. version 1.0, but their functionality has been duplicated by features
  40. built into the VB language by Microsoft. If you are still using Visual
  41. Basic version 1.0, or if you are using Visual C++, these controls may be
  42. of use to you:
  43.  
  44.     MhLine    MhFlip    MhMDI    MhVScroll    MhHScroll    MhTag
  45.  
  46. ==========================================================================
  47. Manual Errata:
  48. --------------
  49. MhDragDrop
  50.  
  51. Docs should show both params in the event FilesDropped as
  52. INTEGER not as SINGLE. (X as INTEGER, Y as INTEGER)
  53.  
  54. MhFileList
  55.  
  56. If you want to set the title for this control in code, you must separate
  57. the columns with a Chr$(9) and follow the last column with a Chr$(9) as
  58. well.
  59.  
  60.  
  61. MhOutBox
  62.  
  63. If you load bitmaps that contain palettes into MhOutBox the GDI will not 
  64. release the palettes correctly, taking down GDI resource by 2/10ths of 1% 
  65. per run/end cycle.  Microsoft has confirmed this as a known Windows bug 
  66. concerning metafiles (which is the storage format used by MhOutBox) and that 
  67. it will be fixed in a future version of Windows. (Note: See MSDN CDROM 
  68. Article #: Q98268 for further information).  Note: Only bitmaps containing 
  69. palettes cause this problem.  Non-palettized bitmaps don't exhibit this.
  70.  
  71. ============================================================================
  72.  
  73.          Additional MhOutbox Notes / Documentation / Hints
  74.  
  75. The AutoSize property determines whether an Outbox is fitted to the size of a 
  76. picture you load.  If AutoSize and EraseForRead are both TRUE, any previous 
  77. contents are discarded and the Outbox is resized to fit the loaded picture.  
  78. If AutoSize is TRUE and EraseForRead is FALSE, the loaded picture is 
  79. stretched to fill the Outbox.  If AutoSize is FALSE, neither the picture nor 
  80. the Outbox is resized.  Resizing an Outbox with AutoSize FALSE will update 
  81. the Window extents (WindowExtX & WindowExtY).  Resizing with AutoSize TRUE 
  82. will not update the Window extents.
  83.  
  84. If you increase Window extent properties (by setting WindowExtX & WindowExtY 
  85. or by resizing with AutoSize FALSE) and then later decrease the property 
  86. values, the control will remember the largest size reached and scale 
  87. accordingly.  Size information is reinitialized by a ClearBox (or Clear) or
  88. by loading a picture with AutoSize and EraseForRead both set to TRUE or by a 
  89. resize event.  If you write to the Clipboard or a disk Metafile, most 
  90. programs will clip and size to the limits of the Window extent properties, 
  91. which can miss showing portions of the image you see in the Outbox. Reading 
  92. a metafile with EraseForRead FALSE will update the Outbox window values if 
  93. the origin or extent read is larger than previously seen.  Remember:  
  94. WindowOrg & WindowExt are logical coordinates and ViewportOrg & ViewportExt 
  95. are physical coordinates, and the ExtXY values are width and height--not 
  96. right and bottom.
  97.  
  98. The preferred MapMode is Anisotropic and the preferred units are HI_METRIC.  
  99. This combination fits best with Clipboard and Metafile conventions.  Most 
  100. other MapModes are not valid for the Clipboard.  Treatment of clearing and 
  101. backcolor are different for Anisotropic than for other MapModes.  Anisotropic 
  102. Clear writes a record to the working metafile that will be adjusted later for 
  103. any change in size so the backcolor from the time of the clear will always 
  104. fill the Outbox.  Clearing in all other MapModes clears the on-screen Outbox 
  105. to the backcolor but doesn't write to the working metafile, so a resize will 
  106. lose the backcolor.
  107.  
  108. Just changing backcolor does not retroactively fill in the background of the 
  109. Outbox.  The Outbox will be filled with the backcolor only on a clear or a 
  110. read or load of a picture with EraseForRead TRUE.
  111.  
  112. Only one palette in the working metafile is supported.  The first bitmap with 
  113. a palette that is read supplies that palette.  Bitmaps read later will have 
  114. their palettes ignored.
  115.  
  116. Recommended sequence to create an Outbox (metafile) containing several 
  117. bitmaps of the same size:  Set AutoSize and EraseForRead both TRUE.  
  118. LoadPicture for the first bitmap (if you are using palettes, the palette you 
  119. want used for all should be in the first bitmap you load).  If you want to 
  120. see the results as you go, resize the Outbox to an area large enough to see 
  121. all your bitmaps when each is the same size as the first while AutoSize is 
  122. still TRUE.  Set AutoSize and EraseForRead both FALSE.
  123.  
  124. Repeat:
  125.   Set WindowOrgX and WindowOrgY to values for where to put the upper left 
  126.   corner of the next bitmap you plan to use.
  127.   LoadPicture for your next bitmap.
  128. EndRepeat
  129.  
  130. Resize the Outbox to your final size.  This resizing with AutoSize FALSE will 
  131. adjust origins and extents in a way that will allow other applications to see 
  132. the whole set of bitmaps if copied through the clipboard or a disk metafile.  
  133. Until this resizing, the Window extents have values from the first bitmap that 
  134. cause many applications to only show the first bitmap after a paste or read.
  135.  
  136. To work with bitmaps of different sizes, set AutoSize FALSE after the first 
  137. bitmap is read and set WindowExtX & WindowExtY to the size you want each 
  138. later bitmap to use just before reading the bitmap.  This allows you to put a 
  139. smaller bitmap on top of (in front of) a larger one.  If you don't set the 
  140. extents, each bitmap read will stretch to fill the window, completely hiding 
  141. any previous images.
  142.  
  143. Because Outbox is built on Windows Metafiles, it suffers from their 
  144. limitations.  Text handling, especially scaling, in metafiles is very weak.  
  145. It is almost unusable in most MapModes and only tolerable in Anisotropic and 
  146. Text modes.  If you will be doing much work with text, experiment extensively 
  147. to determine what sizes on screen and printer you need and what you will get 
  148. with various combinations of screen and printer Viewports and Windows.  If 
  149. you use ExtTextOut mode 8, what gets written to the working metafile is a set 
  150. of one-line ExtTextOut calls with line breaks and text metrics appropriate to 
  151. the current display at the time of the ExtTextOut call, so use this carefully.
  152.  
  153. All the shape properties (Arc, BCircle, BLine, Chord, etc.) take string 
  154. arguments of sets of integers separated by at least one space (or comma).
  155.  
  156. The ColorPrint property determines whether any fill or background colors are 
  157. sent to the printer.  When it is FALSE, no color settings go to the printer, 
  158. which eliminates all but the outlines of shapes but prevents loss of 
  159. readability due to dithering on many monochrome printers.
  160.  
  161. The EndPage property must be set to trigger the Outbox to write to most 
  162. OutContexts except the screen.
  163.  
  164. Several new properties were added in October 1993:
  165. BrushStyle -- style for color fills; default SOLID.
  166. HatchStyle -- style when BrushStyle is HATCH.
  167. PenStyle -- style for lines; default SOLID.
  168. PenWidth -- default 0; values > 1 cause PenStyle to be treated as SOLID.
  169. BezierSteps -- number of line segments to use in drawing Bezier curves; 
  170.                default 32.
  171. PolyBezier -- approximation of NT function; draws a Bezier curve as a series 
  172.               of straight lines; requires at least 8 coordinates (starting 
  173.               pair + curve count * 3 pair); unlike NT call, use of lines does 
  174.               affect current pointer.
  175. The default value of ColorPrint was changed from FALSE to TRUE.
  176.  
  177. .BrushStyle Property
  178. This property set/returns the style of brush to use when filling a geometric
  179. shape with color.  This property is an enumerated property with the following
  180. values:
  181.  
  182. 0 - Solid
  183. 1 - Hollow
  184. 2 - Hatched  (.HatchStyle determines hatch pattern)
  185.  
  186.  
  187. .HatchStyle Property
  188.  
  189. The property determines the pattern that is used to fill in geometric shapes
  190. that are drawn into the outbox.  This property is only used if .BrushStyle = 2
  191. (Hatched).  This property is an enumerated property with the following 
  192. values.
  193.  
  194. 0 - Horizontal Hatching
  195. 1 - Vertical
  196. 2 - FDiagonal
  197. 3 - BDiagonal
  198. 4 - Cross
  199. 5 - Diagonal Cross
  200.  
  201. .PenStyle property
  202.  
  203. This property set/returns the style of pen used when drawing lines.  This 
  204. property is an enumerated property with the following values:  NOTE:  Pen
  205. Width can't be > 1 for this property to take affect.
  206.  
  207. 0 - Solid
  208. 1 - Dashed
  209. 2 - Dotted
  210. 3 - Dash - Dot
  211. 4 - Dash - Dot - Dot
  212. 5 - Null Pen
  213. 6 - InsideFrame (See WIN SDK CreatePen call for further info)
  214.  
  215. .PenWidth property
  216.  
  217. This property set/returns the width of pen (in units) used when drawing 
  218. lines.  When set to 0 or 1 the .PenStyle property determines the type of
  219. line that is drawn (solid, dashed, etc.)
  220.  
  221. .BezierSteps property
  222.  
  223. This property set/returns the number of line segments that are used to
  224. draw a bezier curve using the .PolyBezier property.  The higher the number
  225. of segments the smoother the resolution of the curve.  Note:  This is a 
  226. simulation of Bezier Curvers using line segment so each .PolyBezier setting
  227. will actually produce (.BezierSteps) line segments in the metafile.  The 
  228. default value of this property is 32 segments.  If you use a low number of
  229. segments then your curve will have a "polygon" look.  Note:  This is the 
  230. number of segment per curve.
  231.  
  232. .PolyBezier
  233.  
  234. This property is used to define the points to draw a Bezier curve to the
  235. Outbox.  The points consist of StartX, StartY, Control1X, Control1Y, 
  236. Control2X, Control2Y, EndX, EndY.  This is for a single curve.  For multiple
  237. curves continue to specify Control1X, Control1Y, Control2X, Control2Y, EndX,
  238. and EndY after the single curve settings.  Each successive curve uses the 
  239. previous end points as its start point.  The property appoximates the 
  240. Microsoft Windows NT PolyBezier function call with a series of lines.  Note:  
  241. Setting this property *does* affect your current pointer (unlike NT).  
  242.  
  243. Example:
  244.  
  245. Single Curve:
  246. MhOutbox1.PolyBezier = "200 200 2000 2000 4000 0 6000 200"
  247.  
  248. Multiple Curves:
  249. MhOutbox1.PolyBezier = "200 200 2000 2000 4000 0 6000 200 
  250.                          4000 2000 8000 4000 6000 6000"
  251.  
  252.  
  253.  
  254. MhCommonDialog and MDI apps
  255. ----------------------------
  256. If you put a MHCOMD.VBX control on a MDI child form, the 
  257. CommonDialogOpened custom event for this control will NOT
  258. be fired.  A workaround is to put the control on a non-MDI child 
  259. form that is never shown (Visible property set to False).  However, 
  260. there are two problems associated with this workaround:
  261.  
  262. 1) The common dialogs will no longer be modal.  For modality you
  263. must disable your MDI form before setting the .Action property,
  264. and renable it immediately thereafter.  You should also set
  265. focus back to the MDI parent since you will probably experience
  266. a focus shift when disabling the form.
  267.  
  268. 2) You will have to unload the non-MDI child form containing the
  269. MHCOMD.VBX "manually" by using the FormName.Unload.  Non-MDI
  270. child forms are not automatically unloaded when you unload the
  271. MDI parent. Failure to unload this form will cause your program
  272. not to terminate and may crash Windows.
  273.  
  274. If you are NOT using the custom events, then this problem will
  275. NOT effect you.  Simply place the MhCommonDialog control on a
  276. MDI Child form, and use it as documented.
  277.  
  278. We have reported the problem of the VB events not being fired to
  279. Microsoft, but have yet to receive any information on how to
  280. resolve this conflict.
  281.  
  282.  
  283. 3-d effects for MhCommonDialog
  284. ------------------------------
  285.  
  286. During testing we found that it was much better for the VB programmer to
  287. provide 3-d effects for all dialogs on a per/programm basis, rather than
  288. trying to do it for each dialog. With that in mind the following information
  289. is provided so that you might give your dialogs (including common dialogs) a
  290. 3-d look.
  291.  
  292.  'CTL3D.DLL routines
  293.   '~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  294.    Declare Function Ctl3dAutoSubclass Lib "ctl3d.dll" (ByVal HANDLE%) As Integer
  295.    Declare Function Ctl3dRegister Lib "ctl3d.dll" (ByVal HANDLE%) As Integer
  296.    Declare Function Ctl3dUnRegister Lib "ctl3d.dll" (ByVal HANDLE%) As Integer
  297.    Declare Function MhGetHInstance Lib "mhrun300.dll" () As Integer
  298.    Dim gHANDLE%
  299.    
  300. To convert the common dialog sample to 3-d effects add the above 
  301. declarations to the form's general declarations section and the 
  302. following code segments to the program:
  303.  
  304. Sub Form_Load ()
  305.  gHANDLE% = MhGetHInstance()
  306.  result% = Ctl3dRegister(gHANDLE%)
  307.  result% = Ctl3dAutoSubclass(gHANDLE%)
  308. End Sub
  309.    
  310. Sub Form_Unload (Cancel As Integer)
  311.  result% = Ctl3dUnRegister(gHANDLE%)
  312. End Sub
  313.  
  314. =======================================================================
  315. New Properties
  316. --------------
  317.  
  318. Connect (Boolean)
  319.  
  320. Description:  Sets or returns whether lines will be drawn in the tree
  321. that depict the tree structure.
  322.  
  323. Applies to: MhTree
  324.  
  325. Usage: [form.]ctlname.Connect = False
  326.  
  327. Remarks:  The default value is True (-1).
  328.  
  329. Setting    Description
  330. -------------------
  331. True (-1)    The lines will be drawn to show the tree structure.
  332. False(0)    No lines will be drawn.
  333.  
  334. --------------------------------------------------------------------------
  335.  
  336.  
  337. VC++ users
  338. ------------
  339.  
  340. Class Wizard does not show messages
  341. -----------------------------------
  342. In Visual C++, messages sometimes do not appear in Class Wizard for 
  343. VBX controls.  This often happens when loading in our sample programs.  
  344. This is a problem with Visual C++, not with our controls (Microsoft 
  345. has acknowledged the problem).  If the VBX custom controls were not 
  346. explicitly loaded in App Studio using Install Controls the messages will 
  347. not show up.  To correct this problem, remove the affected controls from 
  348. App Studio and immediately re-install them.  The messages will then 
  349. be available in Class Wizard.
  350.