<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://weblogs.foxite.com/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>VFP IMAGING</title><link>http://weblogs.foxite.com/vfpimaging/default.aspx</link><description>In this space, I'll try to share some of my favourite tips and techniques manipulating images in Visual FoxPro, specially with Gdi+</description><dc:language>en-US</dc:language><generator>CommunityServer 2.0 (Build: 60217.2664)</generator><item><title>FoxyPreviewer 1.23a</title><link>http://weblogs.foxite.com/vfpimaging/archive/2010/02/28/10127.aspx</link><pubDate>Sun, 28 Feb 2010 03:10:00 GMT</pubDate><guid isPermaLink="false">8827bd1c-7596-4a8f-b0de-f59ce9ede522:10127</guid><dc:creator>cesarchalom</dc:creator><slash:comments>102</slash:comments><comments>http://weblogs.foxite.com/vfpimaging/comments/10127.aspx</comments><wfw:commentRss>http://weblogs.foxite.com/vfpimaging/commentrss.aspx?PostID=10127</wfw:commentRss><wfw:comment>http://weblogs.foxite.com/rsscomments/10127.aspx</wfw:comment><description>&lt;A href="/files/vfpimaging/foxypreview/FoxyPreviewer.zip"&gt;Direct download the latest version of FoxyPreviewer - SOURCE CODES&lt;/A&gt; 
&lt;P&gt;&lt;/P&gt;&lt;A href="/files/vfpimaging/foxypreview/FoxyPrevAPP_EN.zip"&gt;Direct download the latest version of FoxyPreviewer - COMPILED APP&lt;/A&gt; 
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;&lt;FONT color=#800000 face=Verdana&gt;Export your reports to Images, RTF, PDF, HTML or XLS&amp;nbsp;super easy! Enhance the look of your previews!&lt;/FONT&gt;&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;&lt;FONT color=#ff0000&gt;*** v1.23 - UPDATED 2010-02-28***&lt;/FONT&gt;&lt;/STRONG&gt;&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;New tweaks for Top-Level forms - now the parent form will have its "Closable" property set as false during report preview, and reset on preview release (Thanks to Stefan Wuebbe)
&lt;LI&gt;Fixes in RTF and PDF Listeners, now images with Isometric settings correctly rendered. (Thanks to Andrew Nickless)
&lt;LI&gt;Fix in PDF rendering for GIF conversion (Thanks to Kevin)&lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;&lt;FONT color=#ff0000&gt;*** v1.22 - UPDATED 2010-02-23***&lt;/FONT&gt;&lt;/STRONG&gt;&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;Improvement: New property: nDockType (see description below) 
&lt;LI&gt;Improvement: New PRG, FoxyPreviewerCaller.Prg, to be included in the EXE. It allows using embedded reports in the EXE, using the APP file. TO be better documented soon. See sample in downloads file. &lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;&lt;FONT color=#ff0000&gt;*** v1.21 - UPDATED 2010-02-22 *** &lt;/FONT&gt;&lt;/STRONG&gt;&lt;/P&gt;&lt;/FONT&gt;&lt;/STRONG&gt;
&lt;UL&gt;
&lt;LI&gt;Fix: Enlarged label size for RTF output 
&lt;LI&gt;Fix: Included file "FrxPreview.H" in distribution (needed by ExcelListener) 
&lt;LI&gt;Tweak: Removed progress dialogs in spanish. All listeners have all progress dialogs disabled 
&lt;LI&gt;New properties: 
&lt;UL&gt;
&lt;LI&gt;Output types allowed in the "Save as.." button from the toolbar&lt;/LI&gt;&lt;/UL&gt;
&lt;BLOCKQUOTE dir=ltr&gt;lSaveAsImage&lt;BR&gt;lSaveAsHTML&lt;BR&gt;lSaveAsRTF&lt;BR&gt;lSaveAsXLS&lt;BR&gt;lSaveAsPDF&lt;/BLOCKQUOTE&gt;
&lt;UL&gt;
&lt;LI&gt;Defining the previewform.WindowState &lt;/LI&gt;&lt;/UL&gt;&lt;/LI&gt;&lt;/UL&gt;
&lt;BLOCKQUOTE dir=ltr&gt;
&lt;BLOCKQUOTE dir=ltr&gt;nWindowState &lt;FONT color=#006400&gt;&amp;amp;&amp;amp; 0 = Normal, 2 = Maximized&lt;/FONT&gt;&lt;/BLOCKQUOTE&gt;&lt;/BLOCKQUOTE&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;&lt;FONT color=#ff0000&gt;*** v1.20 - UPDATED 2010-02-21 *** &lt;/FONT&gt;&lt;/STRONG&gt;&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;Improvement: PDFListener now draws backgrounds for fields and labels 
&lt;LI&gt;Improvement: RTFListener now draws backgrounds for fields and labels 
&lt;LI&gt;New feature: &lt;STRONG&gt;&lt;FONT color=#ff1493&gt;Basic Excel output available&lt;/FONT&gt;&lt;/STRONG&gt; (Using ExcelListener by Alejandro Sosa, first implemented by Edwin Duran) 
&lt;UL&gt;
&lt;LI&gt;&lt;STRONG&gt;Important&lt;/STRONG&gt; - Excel listener, differently from PDF and RTF listeners is being provided as is. I will not support new features or improvements to this listener. My goal is to offer another output possibility, but I really can't add fetures, or important fixes.&amp;nbsp;As it is open source, feel free to add your improvements and fixes. I'll be happy to update the version distributed with FoxyPreviewer if you send it to me. Using version 1.02 from UT, having disabled the automatic file opening after generation, and also removed the CTL32 Progressbar &lt;/LI&gt;&lt;/UL&gt;&lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;&lt;FONT color=#ff0000&gt;*** v1.18 - UPDATED 2010-02-18***&lt;/FONT&gt;&lt;/STRONG&gt;&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;Fix: RTFListener now works correctly when _PageTotal is used 
&lt;LI&gt;Fix: RTFListener now works with CMYK JPGs, TIFFs and PNGs 
&lt;LI&gt;Fix: PDFxListener now works with all kinds of images 
&lt;LI&gt;Fix: PDFxListener now draws transparent shapes&amp;nbsp;&lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;&lt;FONT color=#ff0000&gt;*** v1.16 - UPDATED 2010-02-13***&lt;/FONT&gt;&lt;/STRONG&gt;&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;Fix: TopForm property error in initialization 
&lt;LI&gt;Fix: Now the _ReportPreview cache will be always cleared to avoid errors during toolbar rebuilding 
&lt;LI&gt;Many tweaks in the _ReportPreview factory &lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;&lt;FONT color=#ff0000&gt;*** v1.15 - UPDATED 2010-02-10***&lt;/FONT&gt;&lt;/STRONG&gt;&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;Fix: Context menu now works normally in Top-Level forms. 
&lt;LI&gt;&lt;FONT color=#00007f&gt;&lt;B&gt;MAJOR CHANGE&lt;/B&gt;&lt;/FONT&gt;: Now distributing a separate APP file that is a library that contains ALL the required files for FoxyPreviewer to run properly, including: LibHaru.dll, _GdiPlus.vcx, _ReportListener.vcx, FoxyPreviewer classes, PDFx, RTFListener, and all support images. This post will be updated soon, with more detailed information about these changes. &lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;&lt;FONT color=#ff0000&gt;*** v1.11 - UPDATED 2010-02-09***&lt;/FONT&gt;&lt;/STRONG&gt;&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;Fix: Context menu now works normally when the toolbar is invisible. &lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;&lt;FONT color=#ff0000&gt;*** v1.10 - UPDATED 2010-02-07***&lt;/FONT&gt;&lt;/STRONG&gt;&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;Fixed forced preview close (Vivek Deodhar) 
&lt;LI&gt;Included new "Printer preferences" button in toolbar and context menu (using codes from Barbara Peisch) 
&lt;LI&gt;Fixed "lPrintVisible" property error (Zen Tes) &lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;&lt;FONT color=#ff0000&gt;*** UPDATED 2010-02-04***&lt;/FONT&gt;&lt;/STRONG&gt;&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;Included translation to Italian (thanks to Fabio Lenzarini) 
&lt;LI&gt;Fix: Printing in a network printer was not working correctly 
&lt;LI&gt;Fix: method RunReport, missing "This" in some lines of code (Benny Thomas) 
&lt;LI&gt;Fixed RTFListener colors initialization, thanks to Hector Urrutia 
&lt;LI&gt;Removed the "NORESET" clause on merged reports. Users should add it by themselves in case they need 
&lt;LI&gt;Renamed the ReportListener helper classes &lt;BR&gt;(PDFx became PR_PDFX and FRX_RTF became PR_RTFListener), &lt;BR&gt;in order to avoid people messing with the original versions from the authors. &lt;BR&gt;The versions distributed with FoxyPreviewer are tweaked ones &lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;&lt;FONT color=#ff0000&gt;*** UPDATED 2010-02-03***&lt;/FONT&gt;&lt;/STRONG&gt;&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;Included translation to Turkish (thanks to Soykan Ozcelik) 
&lt;LI&gt;Fix: RTF Listener was omitting 1st page when Range clause was used 
&lt;LI&gt;Fix: Property "lSaved" was not becoming 'True' when an image file was saved &lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;&lt;FONT color=#ff0000&gt;*** UPDATED 2010-02-02***&lt;/FONT&gt;&lt;/STRONG&gt;&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;Tweaked German translation 
&lt;LI&gt;Fixed GotoPage dialog not working when toolbar was not visible 
&lt;LI&gt;Fixed Default printer in Combobox &lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;&lt;STRONG&gt;&lt;FONT color=#ff0000&gt;*** UPDATED 2010-02-01***&lt;/FONT&gt;&lt;/STRONG&gt;&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;Included translation to German (Thanks to Tom Knauf) 
&lt;LI&gt;Fixed toolbar regeneration when user closed the toolbar using the "X" button 
&lt;LI&gt;Now compatible with VFP9 1st release and SP1 (SP2 strongly recommended) &lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;FoxyPreviewer is my report generating class, that brings some cool and useful functions, as you can see in the pictures below.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;&lt;FONT color=#800080&gt;FEATURES&lt;/FONT&gt;&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;1 - &lt;STRONG&gt;&lt;FONT color=#0080c0&gt;Preview Toolbar&lt;/FONT&gt;&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;The original toolbar was modified, with some new button images, and new buttons too !&lt;/P&gt;
&lt;P&gt;&lt;IMG src="/files/vfpimaging/foxypreview/ClosedToolbar.png"&gt; &lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;2 - &lt;STRONG&gt;&lt;FONT color=#0080c0&gt;Printers ComboBox&lt;/FONT&gt;&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;The printers combobox will show you all the available printers (local and in the network), and allows you to change the deviate the output to any printer that you want.&lt;/P&gt;
&lt;P&gt;&lt;IMG src="/files/vfpimaging/foxypreview/Printers.png"&gt; &lt;/P&gt;
&lt;P&gt;3 - &lt;STRONG&gt;&lt;FONT color=#0080c0&gt;Copies spinner&lt;/FONT&gt;&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;Determine on the fly the quantity of copies that you want to print!&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;4 - &lt;STRONG&gt;&lt;FONT color=#0080c0&gt;Miniatures button&lt;/FONT&gt;&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;View miniatures of all pages of the current report. Clicking on any miniature will jump the output page to the selected one.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;IMG src="/files/vfpimaging/foxypreview/Miniatures2.png"&gt; &lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;5 - &lt;STRONG&gt;&lt;FONT color=#0080c0&gt;Save As.&lt;/FONT&gt;&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;A new button that calls a context menu that allows you to save the current report as: &lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;Image Files - EMF, PNG, JPG, BMP, GIF, TIFF 
&lt;LI&gt;HTML 
&lt;LI&gt;PDF 
&lt;LI&gt;RTF, a MS-Word compatible format 
&lt;LI&gt;XLS, a MS-Excel simplified worksheet&amp;nbsp;&lt;STRONG&gt;&lt;FONT color=#ff0000&gt;&lt;EM&gt;new!&lt;/EM&gt;&lt;/FONT&gt;&lt;/STRONG&gt;&lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;&lt;IMG src="/files/vfpimaging/foxypreview/saveas.png"&gt; &lt;/P&gt;
&lt;P&gt;6 - &lt;FONT color=#000080&gt;&lt;STRONG&gt;Context menu&lt;/STRONG&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;The report context menu was updated as well, receiving all the new buttons and pictures. For the case of the "Save as." button, a submenu brings all the output possibilities.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;IMG border=0 src="/files/vfpimaging/foxypreview/Sp_SaveToolbar.png"&gt;&amp;nbsp; &lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;7 - &lt;STRONG&gt;&lt;FONT color=#000080&gt;Changing the Printer Preferences&lt;/FONT&gt;. &lt;FONT color=#ff0000&gt;&lt;EM&gt;New !&lt;/EM&gt;&lt;/FONT&gt;&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;Now you can access the Printer Preferences dialog to change the default printer settings of the selected printer. Works on all Windows versions!&lt;/P&gt;
&lt;P&gt;When you click on this button: &lt;IMG src="http://www.foxite.com/uploads/e0153718-e256-4ae8-a8ed-50c830b69e86.bmp"&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;You'll get a printer dialog from your current printer. For my case I got:&lt;/P&gt;
&lt;P&gt;&lt;IMG src="http://www.foxite.com/uploads/603ef4a1-dee5-4b92-aa6f-7b87b2ca7c05.png"&gt;&amp;nbsp; &lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;8 - &lt;STRONG&gt;&lt;FONT color=#000080&gt;Translating ALL report windows, dialogs, tooltips and captions&lt;/FONT&gt;.&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;Have you noticed that the context menu above is in spanish ? You can determine in what language your report will be working with. Currently FoxyPreviewer is available in English, Portuguese and Spanish. It's up to you to decide in what language the dialogs will be shown.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Go to page dialog in spanish&lt;/P&gt;
&lt;P&gt;&lt;IMG src="/files/vfpimaging/foxypreview/Sp_GotoPage.png"&gt; &lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;IMG src="/files/vfpimaging/foxypreview/Sp_TranslateToolbar.png"&gt; &lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;&lt;FONT color=#800080&gt;USAGE&lt;/FONT&gt;&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;To test &lt;STRONG&gt;FoxyPreviewer&lt;/STRONG&gt;, &lt;A href="/files/vfpimaging/foxypreview/FoxyPreviewer.zip"&gt;download this file&lt;/A&gt;, unzip it, and run the file &lt;STRONG&gt;TESTPREVIEWER.PRG&lt;/STRONG&gt;. Please make sure to start VFP from this file, by doubleclicking on this file from Explorer, to make sure that the default path is automatically set, and all the needed files will be found.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;To use it with your own reports is super simple, with just three lines of code:&lt;/P&gt;
&lt;BLOCKQUOTE&gt;
&lt;P&gt;&lt;STRONG&gt;&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;LOCAL loReport AS "PreviewHelper" OF "FoxyPreviewer.prg" &lt;BR&gt;loReport = CREATEOBJECT("PreviewHelper") &lt;BR&gt;loReport.AddReport(_Samples + "\Solution\Reports\colors.frx", "RANGE 1,1 NODIALOG") &lt;FONT color=#00b058&gt;&amp;amp;&amp;amp; FRX File, Clauses&lt;/FONT&gt; &lt;BR&gt;loReport.RunReport() &lt;/STRONG&gt;&lt;/P&gt;&lt;/BLOCKQUOTE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;The main file is &lt;STRONG&gt;FOXYPREVIEWER.PRG &lt;/STRONG&gt;that contains the PreviewHelper class that is the class that you need to instantiate to have the new toolbar options. It uses the ReportListener's ExtensionHandler class to make all the changes in the original toolbar. This file also brings the classes from Colin Nicholls, that generate the miniatures sheet.&lt;/P&gt;
&lt;P&gt;For the RTF output, kudos go to Vladimir Zhuravlev's RTFListener class. Impressive how he managed to make it! No need of any external library, RTF Listener converts your report into an RTF file, that can be perfectly opened and viewed in MS-Word ! I applied some fixes in the original version, now allowing all the text output to be shown correctly, enabled colors for texts, backgrounds and shapes, and also images stored in general fields. Another small tweak was added to allow merging reports.&lt;/P&gt;
&lt;P&gt;The PDF files are generated using &lt;A href="/luisnavas"&gt;Luis Navas&lt;/A&gt;' amazing PDFx class. It uses an external library, &lt;A href="http://libharu.sourceforge.net/"&gt;Haru Free PDF Library 2.0.8&lt;/A&gt;, from Takeshi Kanno. Super light weight, no need to install a ghostscript printer, no dependancies to generate your PDFs! More info at Luis Navas' blog: &lt;A title=http://weblogs.foxite.com/luisnavas/archive/2008/10/06/7025.aspx href="/luisnavas/archive/2008/10/06/7025.aspx"&gt;http://weblogs.foxite.com/luisnavas/archive/2008/10/06/7025.aspx&lt;/A&gt;. The original version from Luis also received some few tweaks, to allow merging reports, and also eliminating the need to use the GdiPlusX library from VFPX. Now it used the _GdiPlus.vcx FFC class, that is already stored in the Report*.App files, that are already available in all VFP9 sources. I decided doing that because the GDI+ usage was really very very simple, and the FFC classes were enough for that purpose. Hey ! I keep recommending to everybody to use GdiPlusX !!!&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;&lt;FONT color=#800080&gt;CUSTOMIZING&lt;/FONT&gt;&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;Of course, you may choose what features will be available in the report preview toolbar. There are some few and obvious properties that you may set in order to fit your needs. Below are the methods and properties available:&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;&lt;FONT color=#0080c0&gt;Methods&lt;/FONT&gt;&lt;/STRONG&gt; - all obligatory&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;AddReport(tcFRXFile, tcClauses)&amp;nbsp; &lt;BR&gt;That's the place where you determine what report and which clauses will be used&amp;nbsp; &lt;BR&gt;tcFRXFile - character, the FRX to be run&amp;nbsp; &lt;BR&gt;tcClauses - character, the report clauses&amp;nbsp; &lt;BR&gt;eg.: .AddReport(_Samples + "\Solution\Reports\wrapping.frx", "NODIALOG FOR title = 'S' RANGE 3,3") &lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;RunReport()&amp;nbsp; &lt;BR&gt;Runs the chosen report, and shows the preview window and FoxyPreviewer toolbar &lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;&lt;FONT color=#0080c0&gt;Properties&lt;/FONT&gt;&lt;/STRONG&gt; - all optional&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;cTitle - character, the preview window title 
&lt;LI&gt;lSendToEmail - logical, determines if the "send to email" button will be shown (not available yet) 
&lt;LI&gt;lSaveToFile - logical, determines if the "saveto file" button will be shown 
&lt;LI&gt;lShowCopies - logical, shows the copies spinner 
&lt;LI&gt;lShowMiniatures - logical, shows the miniatures page 
&lt;LI&gt;nCopies - numeric, the default quantity of copies to be printed 
&lt;LI&gt;lPrintVisible - logical, shows the print button in the toolbar 
&lt;LI&gt;cDefaultListener - character or object, the name or object from the default listener to be used; the default one is "FXLISTENER" 
&lt;LI&gt;nCanvasCount - numeric, the initial nr of pages rendered on the preview form. Valid values are 1 (default), 2, or 4. 
&lt;LI&gt;nZoomLevel - numeric, the initial zoom level of the preview window. Possible values are: &lt;BR&gt;1-10%, 2-25%, 3-50%, 4-75%, 5-100% default, 6-150% ; &lt;BR&gt;7-200%, 8-300%, 9-500%, 10-whole page 
&lt;LI&gt;lPrinterPref - logical, shows the "Change printer preferences" button in the toolbar &lt;FONT color=#ff0000&gt;&lt;EM&gt;new!&lt;/EM&gt;&lt;/FONT&gt; 
&lt;LI&gt;lSaveAsImage&amp;nbsp;- logical, includes the "save as Image" option in menu &lt;EM&gt;&lt;FONT color=#ff0000&gt;new!&lt;/FONT&gt;&lt;/EM&gt; 
&lt;LI&gt;lSaveAsHTML&amp;nbsp;- logical, includes the "save as HTML" option in menu &lt;EM&gt;&lt;FONT color=#ff0000&gt;new!&lt;/FONT&gt;&lt;/EM&gt; 
&lt;LI&gt;lSaveAsRTF&amp;nbsp;- logical, includes the "save as RTF" option in menu &lt;EM&gt;&lt;FONT color=#ff0000&gt;new!&lt;/FONT&gt;&lt;/EM&gt; 
&lt;LI&gt;lSaveAsXLS&amp;nbsp;- logical, includes the "save as XLS" option in menu &lt;EM&gt;&lt;FONT color=#ff0000&gt;new!&lt;/FONT&gt;&lt;/EM&gt; 
&lt;LI&gt;lSaveAsPDF&amp;nbsp;- logical, includes the "save as PDF" option in menu &lt;EM&gt;&lt;FONT color=#ff0000&gt;new!&lt;/FONT&gt;&lt;/EM&gt; 
&lt;LI&gt;nWindowState - numeric,&amp;nbsp;defines the previewform.WindowState&amp;nbsp;0 = Normal, 2 = Maximized &lt;EM&gt;&lt;FONT color=#ff0000&gt;new!&lt;/FONT&gt;&lt;/EM&gt; 
&lt;LI&gt;nDockType - logical or numeric (0-4). If False, the dock will follow the resource file used. Or numeric, to force the toolbar docking. &lt;EM&gt;&lt;FONT color=#ff0000&gt;new!&lt;/FONT&gt;&lt;/EM&gt;&lt;BR&gt;&lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;&lt;FONT color=#800080&gt;AUTOMATING WITH INTELLISENSE&lt;/FONT&gt;&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;I've also created a small PRG that updates the FOXCODE table in order to add an Intellisense script to use it. Please run the file &lt;STRONG&gt;INSTALLFOXCODE.PRG&lt;/STRONG&gt; to update the Intellisense.&lt;/P&gt;
&lt;P&gt;To test it, open any empty PRG or Method, and just type:&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;FOXYPREVIEW &lt;/STRONG&gt;and a complete script with all available options will be shown. Obviously, you may delete or comment all the properties that you don't want to use. &lt;STRONG&gt;&lt;BR&gt;&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;&lt;FONT color=#800080&gt;CHANGING ALL PREVIEWS&lt;/FONT&gt;&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;Another cool feature is that you can also set the Global _REPORTPREVIEW variable to "FoxyPreviewer.prg", and all your reports, even those that will not create the Helper Object will have that look. Unfortunately, I could not add all the options from the toolbar to them, because it is impossible to retrieve the "FOR" clauses after a report is run.&lt;/P&gt;
&lt;P&gt;Just type the following in your command window:&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Courier New"&gt;&lt;FONT color=#0000ff&gt;&amp;nbsp; _ReportPreview&lt;/FONT&gt; = "FoxyPreviewer.prg"&amp;nbsp; &lt;BR&gt;&lt;FONT color=#0000ff&gt;&amp;nbsp; REPORT FORM _Samples&lt;/FONT&gt; + "Solution\Reports\Colors.frx" &lt;FONT color=#0000ff&gt;PREVIEW&lt;/FONT&gt;&lt;/FONT&gt; &lt;/P&gt;
&lt;P&gt;&lt;IMG src="/files/vfpimaging/foxypreview/_ReportPreviewToolbar.png"&gt; &lt;/P&gt;
&lt;P&gt;Notice that some functions are not available in this option, but some cool ones remain, like the changes picture buttons, translations, the Miniatures is still avalable, and the save to file can only save the report in image file.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;&lt;FONT color=#800080&gt;TRANSLATING TO NON ENGLISH LANGUAGES&lt;/FONT&gt;&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;To enable it, just open the &lt;STRONG&gt;FoxyPreviewer.Prg&lt;/STRONG&gt;, and you'll find in theÂ first lines the language definitions. Comment the line that defines the default language to English, and uncomment the one that sets it to the desired language. It's very simple to add another language, just open FoxyPreviewer.prg and translate the #DEFINE's constants to your native language. I'll be very happy to add other localized languages to the main download ! Please, if you do translate it to another language, send to me your translation ! &lt;/P&gt;
&lt;P&gt;To enable the spanish language, for instance just leave the desired language uncommented&lt;/P&gt;
&lt;BLOCKQUOTE dir=ltr&gt;
&lt;P&gt;&lt;FONT face="Courier New"&gt;&lt;FONT color=#00b300&gt;* #DEFINE PR_ENGLISH &lt;BR&gt;* #DEFINE PR_PORTUGUES &lt;BR&gt;* #DEFINE PR_GERMAN &lt;BR&gt;* #DEFINE PR_ITALIANO &lt;BR&gt;* #DEFINE PR_TURKISH&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;/BLOCKQUOTE&gt;
&lt;BLOCKQUOTE&gt;
&lt;P&gt;&lt;FONT face="Courier New"&gt;#&lt;FONT color=#0000ff&gt;DEFINE&lt;/FONT&gt; PR_ESPANIOL&lt;/FONT&gt; &lt;/P&gt;&lt;/BLOCKQUOTE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;&lt;FONT color=#800080&gt;FUTURE IMPROVEMENTS&lt;/FONT&gt;&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;Excel Output is already being tested, and very soon will be made available. Thanks to Edwin for the samples provided. Yhis will be based on Alex Sosa's ExcelListener available on UT. &lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;More options for printing: Print current page, and allow choosing the range of pages to be sent to the printer. &lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;Another missing point is the "SendToEmail" option. This involves an HTML editor form, and a CDOSYS email class, lots of images, etc. I hope to add it to FoxyPreviewer soon. I already have this working in my own framework, but I still have to disconnect some objects in order to add them to this project, and to allow some other customizations, like allowing you to choose another email component to send your emails. The HTML editor was adapted from the original from Frederick Steczicky and Tracy Pearson, published in &lt;A href="http://www.atoutfox.com/"&gt;www.atoutfox.com&lt;/A&gt; . &lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;&lt;IMG src="/files/vfpimaging/foxypreview/SendEmail.png"&gt; &lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;&lt;FONT color=#800080&gt;SPECIAL THANKS / AUTHORS&lt;/FONT&gt;&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;As you could see, FoxyPreviewer is the result of some researches, and the use of some amazing tools provided as open source and free from other foxers. The VFP community is amazing !!!&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;A href="http://spacefold.com/lisa"&gt;Lisa Slater Nicholls&lt;/A&gt; - for the great job that she made with the reporting system of VFP9 SP2. And more than that, for her great blog, the excellent and well documented articles.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;A href="http://spacefold.com/colin/blog/"&gt;Colin Nicholls&lt;/A&gt; - He's the author of the Miniatures form; for his many great articles too regarding the new reporting system, specially for the article &lt;A href="http://spacefold.com/colin/archive/articles/reportpreview/rp_extend.html"&gt;Exploring and Extending Report Previewing in VFP9&lt;/A&gt;. I took the miniatures preview form classes from there.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;A href="/luisnavas"&gt;Luis Navas&lt;/A&gt; - He's the author of the PDF Listener. A terrific job, great code. More info about PDFx can be obtained in his blog: &lt;A href="/luisnavas/archive/2008/10/06/7025.aspx"&gt;PDFx Update Support for some SP2 Features&lt;/A&gt;. This brings a new, lightweight and very reliable option for us to export our reports to PDFs. Thanks a lot for your support and help with this project ! &lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;A href="/controlpanel/blogs/www.foxclub.ru"&gt;Vladimir Zhuravlev&lt;/A&gt; - He's the author of the RTF Listener together with Dmitriy Petrov and Valeriy Liftshits with help of Vadim Pirozhkov. It was published in the Foxite downloads section - &lt;A title=http://www.foxite.com/downloads/default.aspx?id=166 href="http://www.foxite.com/downloads/default.aspx?id=166"&gt;http://www.foxite.com/downloads/default.aspx?id=166&lt;/A&gt;. Another impressive and courageous work. Thanks very much !&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Leandro Walfrans for testing and Luis Maria Guayan, for his continuous support and for the spanish translations. Tom Knauf, for the german translation.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Takeshi Kanno, the author of the &lt;A href="http://libharu.sourceforge.net/"&gt;HARU PDF library&lt;/A&gt;, and all his collaborators, for making PDFx come true with HARU library. More information about this great project: &lt;A title=http://libharu.org/wiki/Main_Page href="http://libharu.org/wiki/Main_Page"&gt;http://libharu.org/wiki/Main_Page&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Barbara Peisch, for the codes to open the "Printer Preferences" dialog window, posted in the &lt;A href="http://www.foxite.com/forum"&gt;Foxite&lt;/A&gt; forums: &lt;A title=http://www.foxite.com/archives/0000158197.htm href="http://www.foxite.com/archives/0000158197.htm"&gt;http://www.foxite.com/archives/0000158197.htm&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Edwin Duran, for the samples using ExcelListener&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;&lt;FONT color=#800080&gt;DISCLAIMER&lt;/FONT&gt;&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;This software ("FoxyPreviewer") and the distributed classes are provided "as is'.&lt;/P&gt;
&lt;P&gt;You may use the Software for any commercial or noncommercial purpose, including distributing derivative works.&lt;/P&gt;
&lt;P&gt;In return, we simply require that you agree:&lt;/P&gt;
&lt;P&gt;1. Not to remove any copyright or other notices from the Software, or from the distributed classes, created by other authors.&lt;/P&gt;
&lt;P&gt;2. That the Software comes "as is", with no warranties. None whatsoever. This means no express, implied or statutory warranty, including without limitation, warranties of merchantability or fitness for a particular purpose or any warranty of title or non-infringement.&lt;/P&gt;
&lt;P&gt;3. That no contributor to the Software will be liable for any of those types of damages known as indirect, special, consequential, or incidental related to the Software or this license, to the maximum extent the law permits, no matter what legal theory it's based on. Also, you must pass this limitation of liability on whenever you distribute the Software or derivative works.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;&lt;FONT color=#800080&gt;DOWNLOAD&lt;/FONT&gt;&lt;/STRONG&gt; &lt;/P&gt;
&lt;P&gt;&lt;A href="/files/vfpimaging/foxypreview/FoxyPreviewer.zip"&gt;FoxyPreviewer Sources and Samples&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;Hope you enjoy !&lt;/LI&gt;&lt;/UL&gt;&lt;img src="http://weblogs.foxite.com/aggbug.aspx?PostID=10127" width="1" height="1"&gt;</description><category domain="http://weblogs.foxite.com/vfpimaging/archive/category/187.aspx">GDI+ AND IMAGES</category><category domain="http://weblogs.foxite.com/vfpimaging/archive/category/1029.aspx">VFP in General</category><category domain="http://weblogs.foxite.com/vfpimaging/archive/category/1123.aspx">Reports</category></item><item><title>FoxCharts v1.20 Production version released !!!</title><link>http://weblogs.foxite.com/vfpimaging/archive/2009/12/20/9804.aspx</link><pubDate>Sat, 19 Dec 2009 23:53:00 GMT</pubDate><guid isPermaLink="false">8827bd1c-7596-4a8f-b0de-f59ce9ede522:9804</guid><dc:creator>cesarchalom</dc:creator><slash:comments>11</slash:comments><comments>http://weblogs.foxite.com/vfpimaging/comments/9804.aspx</comments><wfw:commentRss>http://weblogs.foxite.com/vfpimaging/commentrss.aspx?PostID=9804</wfw:commentRss><wfw:comment>http://weblogs.foxite.com/rsscomments/9804.aspx</wfw:comment><description>   At last !!!     FoxCharts has just been pushed to Production release - Version 1.20.       The challenge has been really very big, due to all the possible variations that charts may have and all the correlations that each chart type has with another. In the last months the library has grown, and received lots of improvements.     Collaborators  This has been a fantastic experience to me. During these times I received lots of support from many foxers, that provided solutions, reported bugs, helped...(&lt;a href="http://weblogs.foxite.com/vfpimaging/archive/2009/12/20/9804.aspx"&gt;read more&lt;/a&gt;)&lt;img src="http://weblogs.foxite.com/aggbug.aspx?PostID=9804" width="1" height="1"&gt;</description><category domain="http://weblogs.foxite.com/vfpimaging/archive/category/187.aspx">GDI+ AND IMAGES</category><category domain="http://weblogs.foxite.com/vfpimaging/archive/category/1029.aspx">VFP in General</category></item><item><title>Extended MessageBox function - Updated ! - change button captions, main icon, disable buttons</title><link>http://weblogs.foxite.com/vfpimaging/archive/2009/10/26/9202.aspx</link><pubDate>Mon, 26 Oct 2009 10:35:00 GMT</pubDate><guid isPermaLink="false">8827bd1c-7596-4a8f-b0de-f59ce9ede522:9202</guid><dc:creator>cesarchalom</dc:creator><slash:comments>5</slash:comments><comments>http://weblogs.foxite.com/vfpimaging/comments/9202.aspx</comments><wfw:commentRss>http://weblogs.foxite.com/vfpimaging/commentrss.aspx?PostID=9202</wfw:commentRss><wfw:comment>http://weblogs.foxite.com/rsscomments/9202.aspx</wfw:comment><description>&lt;P&gt;&lt;FONT color=#ff0000&gt;&lt;STRONG&gt;Updated version - now allowing changing icons and disabling buttons&lt;/STRONG&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;FONT size=2 face="Courier New"&gt;lnOption =&amp;nbsp;MsgBoxEx( ;&lt;BR&gt;&amp;nbsp;&amp;nbsp; "You have entered a wrong password for 5 times.&lt;/FONT&gt;&lt;FONT size=2 face="Courier New"&gt;" + CHR(13) + ;&lt;BR&gt;&amp;nbsp;&amp;nbsp; "For security reasons this login was suspended.", ; &lt;FONT color=#006400&gt;&amp;amp;&amp;amp; Main message&lt;/FONT&gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp; 0, ; &lt;FONT color=#006400&gt;&amp;amp;&amp;amp;&amp;nbsp;Default icon info&lt;/FONT&gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp; "Password incorrect", ; &lt;FONT color=#006400&gt;&amp;amp;&amp;amp; Title bar caption&lt;/FONT&gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp; "\&amp;amp;Retry,&amp;amp;Exit,Get &amp;amp;new pwd", ; &lt;FONT color=#006400&gt;&amp;amp;&amp;amp;&amp;nbsp;New button captions&lt;/FONT&gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp; "41.ico") &lt;FONT color=#006400&gt;&amp;amp;&amp;amp; Icon file&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;IMG border=0 src="/photos/cesarchalom/images/9223/original.aspx"&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;IMG border=0 src="/photos/cesarchalom/images/9200/original.aspx"&gt;&lt;/P&gt;
&lt;P&gt;&lt;IMG border=0 src="/photos/cesarchalom/images/9206/original.aspx"&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;FONT size=2 face=Verdana&gt;This is a simple function&amp;nbsp;that allows us&amp;nbsp;to customize the captions of buttons of the MessageBox() dialog window, like in the image shown above. &lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT size=2 face=Verdana&gt;Thanks to Mike Gagnon and Anatolyi Mogylevetz, here's an updated version of the&amp;nbsp;version that&amp;nbsp;allows to change the icon and also to disable the buttons.&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT size=2 face=Verdana&gt;Basically I followed Anatolyi's instructions to allow disabling the buttons. Changing the dialog icon was also very simple, with a short research in his great site - &lt;/FONT&gt;&lt;A href="http://www.news2news.com/vfp/index.php"&gt;&lt;FONT size=2 face=Verdana&gt;Using Win32 functions in Visual FoxPro&lt;/FONT&gt;&lt;/A&gt;&lt;FONT size=2 face=Verdana&gt; .&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT size=2 face=Verdana&gt;I just adapted a sample provided by &lt;/FONT&gt;&lt;A href="http://www.sweetpotatosoftware.com/spsblog"&gt;&lt;FONT size=2 face=Verdana&gt;Craig Boyd &lt;/FONT&gt;&lt;/A&gt;&lt;FONT size=2 face=Verdana&gt;in his blog article - &lt;/FONT&gt;&lt;A class=TitleLinkStyle href="http://www.sweetpotatosoftware.com/spsblog/2005/08/07/BindEventOnSteroids.aspx" rel=bookmark&gt;&lt;FONT size=2 face=Verdana&gt;BindEvent on Steroids&lt;/FONT&gt;&lt;/A&gt;&lt;FONT size=2 face=Verdana&gt;&amp;nbsp;using the &lt;/FONT&gt;&lt;A href="http://www.sweetpotatosoftware.com/spsblog/ct.ashx?id=f7644db8-b155-4d43-8216-4cfde233edb7&amp;amp;url=http%3a%2f%2fwww.sweetpotatosoftware.com%2ffiles%2fvfpex.zip"&gt;&lt;FONT size=2 face=Verdana&gt;VFPEX.FLL&lt;/FONT&gt;&lt;/A&gt;&lt;FONT size=2 face=Verdana&gt; that he provided in that article. Please refer to the original article for more details.&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT size=2 face=Verdana&gt;I called it MsgBoxEx.Prg , and can be used very simply, to obtain the result below - notice the 4th parameter, that contains the captions of the buttons to be used, delimited by a comma:&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT size=2 face="Courier New"&gt;lnOption = MsgBoxEx(;&lt;BR&gt;&amp;nbsp;&amp;nbsp; "An unexpected error has occurred and the system needs to be restarted" + ;&lt;BR&gt;&amp;nbsp;&amp;nbsp; &lt;FONT color=#0000ff&gt;CHR&lt;/FONT&gt;(13) + &lt;FONT color=#0000ff&gt;CHR&lt;/FONT&gt;(13) + "What do you want to do ?", ;&lt;BR&gt;&amp;nbsp;&amp;nbsp; "X", ;&lt;BR&gt;&amp;nbsp;&amp;nbsp; "MsgBoxEx Sample", ;&lt;BR&gt;&amp;nbsp;&amp;nbsp; "Restart &amp;amp;Now,Restart &amp;amp;Later,&amp;amp;Never Restart")&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;&lt;IMG border=0 src="/photos/cesarchalom/images/9201/original.aspx"&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;FONT size=2 face="Courier New"&gt;lnOption = MsgBoxEx( ;&lt;BR&gt;&amp;nbsp;&amp;nbsp; "Could not find the file 'Import.csv' in the selected folder", ;&lt;BR&gt;&amp;nbsp;&amp;nbsp; 0, ;&lt;BR&gt;&amp;nbsp;&amp;nbsp; "File not found", ;&lt;BR&gt;&amp;nbsp;&amp;nbsp; "&amp;amp;Abort,\&amp;amp;Retry,Change folder", ;&lt;BR&gt;&amp;nbsp;&amp;nbsp; "17.ico")&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;IMG border=0 src="/photos/cesarchalom/images/9222/original.aspx"&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;FONT size=2 face=Verdana&gt;&lt;STRONG&gt;Function&lt;/STRONG&gt;: MSGBOXEX.PRG&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT size=2 face=Verdana&gt;&lt;STRONG&gt;Description&lt;/STRONG&gt;:&amp;nbsp;Modifies the captions of MessageBox buttons&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT size=2 face=Verdana&gt;&lt;STRONG&gt;Parameters&lt;/STRONG&gt;: &lt;/FONT&gt;&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;FONT size=2 face=Verdana&gt;&lt;EM&gt;tcCaption&lt;/EM&gt; - the text that appears in the dialog box. &lt;/FONT&gt;
&lt;LI&gt;&lt;FONT size=2 face=Verdana&gt;&lt;EM&gt;tnIcon&lt;/EM&gt; - the icon sign - can be numeric, using the default MESSAGEBOX() icon values or&amp;nbsp;character:&lt;BR&gt;&amp;nbsp;&amp;nbsp; - Stop sign: 16 or "X"&lt;BR&gt;&amp;nbsp;&amp;nbsp; - Question mark: 32 or "?"&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;- Exclamation point: 48 or "!"&lt;BR&gt;&amp;nbsp;&amp;nbsp; - Information: 64 or "I" &lt;/FONT&gt;
&lt;LI&gt;&lt;FONT size=2 face=Verdana&gt;&lt;EM&gt;tcTitle&lt;/EM&gt; - the text that appears in the title bar of the dialog box &lt;/FONT&gt;
&lt;LI&gt;&lt;FONT size=2 face=Verdana&gt;&lt;EM&gt;tcButtons&lt;/EM&gt; - The captions to be used in the buttons using the comma "," delimiter&lt;BR&gt;Use the "&amp;amp;" character to determine the hotkeys to be used - eg: "Option&amp;amp;1,Option&amp;amp;2,Option&amp;amp;3" - The "\" backslash can be used to show the current button disabled. &lt;/FONT&gt;
&lt;LI&gt;&lt;FONT size=2 face=Verdana&gt;&lt;EM&gt;tcIconFile&lt;/EM&gt; - (optional) The icon image file&lt;/FONT&gt;&lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;&lt;FONT size=2 face=Verdana&gt;&lt;STRONG&gt;Returns&lt;/STRONG&gt;: the index number according to the option selected - eg. returns the value 3 if the 3rd button was selected.&lt;BR&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT size=2 face=Verdana&gt;&lt;/FONT&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;FONT size=2 face=Verdana&gt;&lt;STRONG&gt;PROS&lt;/STRONG&gt;:&lt;/FONT&gt;&lt;/P&gt;
&lt;BLOCKQUOTE dir=ltr&gt;
&lt;P&gt;&lt;FONT size=2 face=Verdana&gt;Use the same dialog interface from the MESSAGEBOX() function, allowing us to easilly customize existing dialog boxes.&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT size=2 face=Verdana&gt;Almost the same structure of parameters of the original function&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT size=2 face=Verdana&gt;Behaves correctly in all&amp;nbsp;operating systems.&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT size=2 face=Verdana&gt;Allows hotkeys (Thanks to Thiago Takehana for reminding about this possibility)&lt;/FONT&gt;&lt;/P&gt;&lt;/BLOCKQUOTE&gt;
&lt;P&gt;&lt;FONT size=2 face=Verdana&gt;&lt;/FONT&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;FONT size=2 face=Verdana&gt;&lt;STRONG&gt;CONS&lt;/STRONG&gt;:&lt;/FONT&gt;&lt;/P&gt;
&lt;BLOCKQUOTE dir=ltr&gt;
&lt;P&gt;&lt;FONT size=2 face=Verdana&gt;Up to 3 buttons are allowed&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT size=2 face=Verdana&gt;Size of buttons is limited to the original MESSAGEBOX() buttons size, not allowing big sized buttons.&lt;/FONT&gt;&lt;/P&gt;&lt;/BLOCKQUOTE&gt;
&lt;P&gt;&lt;FONT size=2 face="Courier New"&gt;&lt;/FONT&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;FONT color=#0000ff&gt;&lt;FONT color=#0000ff&gt;&lt;FONT color=#0000ff&gt;&lt;FONT size=2 face="Courier New"&gt;LPARAMETERS &lt;/FONT&gt;&lt;FONT color=#000000 size=2 face="Courier New"&gt;tcCaption, tnIcon, tcTitle, tcButtons, tcIconFile&lt;BR&gt;&lt;/FONT&gt;&lt;FONT color=#008000&gt;&lt;FONT color=#008000&gt;&lt;FONT color=#008000 size=2 face="Courier New"&gt;* MSGBOXEX.PRG&lt;BR&gt;* Description: Modifies the captions of MessageBox buttons&lt;BR&gt;* Prerequisites: Needs VFPEX.FLL by CraigBoyd&lt;BR&gt;* &lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;U&gt;&lt;FONT color=#000000 size=2 face="Courier New"&gt;http://www.sweetpotatosoftware.com/spsblog/ct.ashx?id=f7644db8-b155-4d43-8216-4cfde233edb7&amp;amp;url=http%3a%2f%2fwww.sweetpotatosoftware.com%2ffiles%2fvfpex.zip&lt;BR&gt;&lt;/FONT&gt;&lt;/U&gt;&lt;FONT color=#008000&gt;&lt;FONT color=#008000&gt;&lt;FONT color=#008000 size=2 face="Courier New"&gt;* More Info about VFPEX.FLL&lt;BR&gt;* &lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;U&gt;&lt;FONT color=#000000 size=2 face="Courier New"&gt;http://www.sweetpotatosoftware.com/spsblog/2005/08/07/BindEventOnSteroids.aspx&lt;BR&gt;&lt;/FONT&gt;&lt;/U&gt;&lt;FONT size=2&gt;&lt;FONT face="Courier New"&gt;&lt;FONT color=#008000&gt;&lt;FONT color=#008000&gt;&lt;FONT color=#008000&gt;* Parameters:&lt;BR&gt;* tcCaption - the text that appears in the dialog box.&lt;BR&gt;* tnIcon - the icon sign&lt;BR&gt;* tcTitle - the text that appears in the title bar of the dialog box&lt;BR&gt;* tcButtons - The captions to be used in the buttons using the comma "," delimiter&lt;BR&gt;* Use the "&amp;amp;" character to determine the hotkeys to be used - eg: "Option&amp;amp;1,Option&amp;amp;2,Option&amp;amp;3"&lt;BR&gt;* Use a "\" to disable the button&lt;BR&gt;* tcIconFile - the icon file to replace the default from MessageBox()&lt;BR&gt;* Returns: the index number according to the option selected - eg. returns the value 3 if the 3rd button was selected.&lt;BR&gt;* Sample:&lt;BR&gt;* =MsgBoxEx("This is a common text", "!", "Window Title", "Option1,Option2,Option3")&lt;BR&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff&gt;&lt;FONT color=#0000ff&gt;&lt;FONT color=#0000ff&gt;IF VARTYPE&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#000000&gt;(tnTimeOut) = "C" AND (&lt;/FONT&gt;&lt;FONT color=#0000ff&gt;&lt;FONT color=#0000ff&gt;&lt;FONT color=#0000ff&gt;PCOUNT&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;&lt;FONT face="Courier New"&gt;&lt;FONT color=#000000&gt;() = 4)&lt;BR&gt;&amp;nbsp;&amp;nbsp; tcButtons = tnTimeOut&lt;BR&gt;&amp;nbsp;&amp;nbsp; tnTimeOut = 0&lt;BR&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff&gt;&lt;FONT color=#0000ff&gt;&lt;FONT color=#0000ff&gt;ENDIF&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT color=#0000ff&gt;&lt;FONT color=#0000ff&gt;&lt;FONT color=#0000ff&gt;&lt;FONT color=#0000ff&gt;&lt;FONT color=#0000ff&gt;&lt;FONT color=#0000ff size=2 face="Courier New"&gt;PRIVATE &lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;&lt;FONT face="Courier New"&gt;&lt;FONT color=#000000&gt;pnButtonCnt, pcButtons, pnButtType, pcIconFile, phIcon&lt;BR&gt;pcIconFile = &lt;/FONT&gt;&lt;FONT color=#0000ff&gt;&lt;FONT color=#0000ff&gt;&lt;FONT color=#0000ff&gt;IIF&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#000000&gt;(&lt;/FONT&gt;&lt;FONT color=#0000ff&gt;&lt;FONT color=#0000ff&gt;&lt;FONT color=#0000ff&gt;EMPTY&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;&lt;FONT face="Courier New"&gt;&lt;FONT color=#000000&gt;(tcIconFile),"", tcIconFile)&lt;BR&gt;pnButtonCnt = &lt;/FONT&gt;&lt;FONT color=#0000ff&gt;&lt;FONT color=#0000ff&gt;&lt;FONT color=#0000ff&gt;GETWORDCOUNT&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#000000 size=2 face="Courier New"&gt;(tcButtons, ",")&lt;BR&gt;pcButtons = tcButtons&lt;BR&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;&lt;FONT face="Courier New"&gt;&lt;FONT color=#008000&gt;&lt;FONT color=#008000&gt;&lt;FONT color=#008000&gt;*!* Stop 16&lt;BR&gt;*!* Question 32&lt;BR&gt;*!* Exclamation 48&lt;BR&gt;*!* Info 64&lt;BR&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff&gt;&lt;FONT color=#0000ff&gt;&lt;FONT color=#0000ff&gt;IF VARTYPE&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;&lt;FONT face="Courier New"&gt;&lt;FONT color=#000000&gt;(tnIcon) = "C"&lt;BR&gt;&amp;nbsp;&amp;nbsp; tnIcon = &lt;/FONT&gt;&lt;FONT color=#0000ff&gt;&lt;FONT color=#0000ff&gt;&lt;FONT color=#0000ff&gt;UPPER&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#000000 size=2 face="Courier New"&gt;(tnIcon)&lt;BR&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff&gt;&lt;FONT color=#0000ff&gt;&lt;FONT color=#0000ff&gt;&lt;FONT size=2&gt;&lt;FONT face="Courier New"&gt;&lt;FONT color=#000000&gt;&amp;nbsp;&amp;nbsp; &lt;/FONT&gt;DO CASE&lt;BR&gt;&lt;FONT color=#000000&gt;&amp;nbsp;&amp;nbsp; &lt;/FONT&gt;CASE &lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;&lt;FONT face="Courier New"&gt;&lt;FONT color=#000000&gt;tnIcon = "X"&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; tnIcon = 16&lt;BR&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff&gt;&lt;FONT color=#0000ff&gt;&lt;FONT color=#0000ff&gt;&lt;FONT color=#000000&gt;&amp;nbsp;&amp;nbsp; &lt;/FONT&gt;CASE &lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;&lt;FONT face="Courier New"&gt;&lt;FONT color=#000000&gt;tnIcon = "?"&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; tnIcon = 32&lt;BR&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff&gt;&lt;FONT color=#0000ff&gt;&lt;FONT color=#0000ff&gt;&lt;FONT color=#000000&gt;&amp;nbsp;&amp;nbsp; &lt;/FONT&gt;CASE &lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;&lt;FONT face="Courier New"&gt;&lt;FONT color=#000000&gt;tnIcon = "!"&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; tnIcon = 48&lt;BR&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff&gt;&lt;FONT color=#0000ff&gt;&lt;FONT color=#0000ff&gt;&lt;FONT color=#000000&gt;&amp;nbsp;&amp;nbsp; &lt;/FONT&gt;CASE &lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#000000 size=2 face="Courier New"&gt;tnIcon = "I"&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; tnIcon = 64&lt;BR&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff&gt;&lt;FONT color=#0000ff&gt;&lt;FONT color=#0000ff&gt;&lt;FONT size=2&gt;&lt;FONT face="Courier New"&gt;&lt;FONT color=#000000&gt;&amp;nbsp;&amp;nbsp; &lt;/FONT&gt;OTHERWISE&lt;BR&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#000000 size=2 face="Courier New"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; tnIcon = 0&lt;BR&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff&gt;&lt;FONT color=#0000ff&gt;&lt;FONT color=#0000ff&gt;&lt;FONT size=2&gt;&lt;FONT face="Courier New"&gt;&lt;FONT color=#000000&gt;&amp;nbsp;&amp;nbsp; &lt;/FONT&gt;ENDCASE&lt;BR&gt;ENDIF&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT color=#0000ff&gt;&lt;FONT color=#0000ff&gt;&lt;FONT color=#0000ff&gt;&lt;FONT size=2&gt;&lt;FONT face="Courier New"&gt;&lt;FONT color=#008000&gt;&lt;FONT color=#008000&gt;&lt;FONT color=#008000&gt;* Check if an icon will be shown&lt;BR&gt;* If an icon file was passed, we need to ensure that MessageBox() will&lt;BR&gt;* show an icon, that will be changed further.&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT color=#0000ff&gt;&lt;FONT color=#0000ff&gt;&lt;FONT color=#0000ff&gt;&lt;FONT size=2&gt;&lt;FONT face="Courier New"&gt;&lt;FONT color=#008000&gt;&lt;FONT color=#008000&gt;&lt;FONT color=#008000&gt;&lt;FONT color=#000000&gt;#&lt;FONT color=#0000ff&gt;&lt;FONT color=#0000ff&gt;&lt;FONT color=#0000ff&gt;DEFINE &lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;&lt;FONT face="Courier New"&gt;&lt;FONT color=#000000&gt;IMAGE_BITMAP 0&lt;BR&gt;#&lt;/FONT&gt;&lt;FONT color=#0000ff&gt;&lt;FONT color=#0000ff&gt;&lt;FONT color=#0000ff&gt;DEFINE &lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;&lt;FONT face="Courier New"&gt;&lt;FONT color=#000000&gt;IMAGE_ICON 1&lt;BR&gt;#&lt;/FONT&gt;&lt;FONT color=#0000ff&gt;&lt;FONT color=#0000ff&gt;&lt;FONT color=#0000ff&gt;DEFINE &lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;&lt;FONT face="Courier New"&gt;&lt;FONT color=#000000&gt;LR_LOADFROMFILE 0x0010&lt;BR&gt;#&lt;/FONT&gt;&lt;FONT color=#0000ff&gt;&lt;FONT color=#0000ff&gt;&lt;FONT color=#0000ff&gt;DEFINE &lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;&lt;FONT face="Courier New"&gt;&lt;FONT color=#000000&gt;LR_DEFAULTSIZE 0x0040&lt;BR&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;phIcon = 0&lt;BR&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff&gt;&lt;FONT color=#0000ff&gt;&lt;FONT color=#0000ff&gt;IF &lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#000000&gt;NOT &lt;/FONT&gt;&lt;FONT color=#0000ff&gt;&lt;FONT color=#0000ff&gt;&lt;FONT color=#0000ff&gt;EMPTY&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;&lt;FONT face="Courier New"&gt;&lt;FONT color=#000000&gt;(pcIconFile) AND ;&lt;/FONT&gt;&lt;BR&gt;&lt;FONT color=#000000&gt;&amp;nbsp;&amp;nbsp; (NOT (&lt;/FONT&gt;&lt;FONT color=#0000ff&gt;&lt;FONT color=#0000ff&gt;&lt;FONT color=#0000ff&gt;BITTEST&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#000000&gt;(tnIcon, 4) OR &lt;/FONT&gt;&lt;FONT color=#0000ff&gt;&lt;FONT color=#0000ff&gt;&lt;FONT color=#0000ff&gt;BITTEST&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#000000&gt;(tnIcon, 5) OR &lt;/FONT&gt;&lt;FONT color=#0000ff&gt;&lt;FONT color=#0000ff&gt;&lt;FONT color=#0000ff&gt;BITTEST&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#000000 size=2 face="Courier New"&gt;(tnIcon, 6)))&lt;BR&gt;&amp;nbsp;&amp;nbsp; tnIcon = tnIcon + 16&lt;BR&gt;&amp;nbsp;&amp;nbsp; phIcon = xmbLoadImage(0, &lt;FONT color=#0000ff&gt;FULLPATH&lt;/FONT&gt;(pcIconFile), IMAGE_ICON,;&lt;BR&gt;0,0, LR_LOADFROMFILE + LR_DEFAULTSIZE)&lt;BR&gt;&lt;/FONT&gt;&lt;FONT size=2 face="Courier New"&gt;&lt;FONT color=#0000ff&gt;&lt;FONT color=#0000ff&gt;&lt;FONT color=#0000ff&gt;ENDIF&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT color=#0000ff&gt;&lt;FONT color=#0000ff&gt;&lt;FONT color=#0000ff&gt;&lt;FONT color=#0000ff&gt;&lt;FONT color=#0000ff&gt;&lt;FONT color=#0000ff size=2 face="Courier New"&gt;　&lt;BR&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;&lt;FONT face="Courier New"&gt;&lt;FONT color=#008000&gt;&lt;FONT color=#008000&gt;&lt;FONT color=#008000&gt;* Windows Hook constants&lt;BR&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#000000&gt;#&lt;/FONT&gt;&lt;FONT color=#0000ff&gt;&lt;FONT color=#0000ff&gt;&lt;FONT color=#0000ff&gt;define &lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#000000&gt;WH_CBT 5&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT color=#0000ff&gt;&lt;FONT color=#0000ff&gt;&lt;FONT color=#0000ff&gt;&lt;FONT size=2&gt;&lt;FONT face="Courier New"&gt;&lt;FONT color=#008000&gt;&lt;FONT color=#008000&gt;&lt;FONT color=#008000&gt;* Set library so BindEventEx and UnBindEventEx can be used in VFP&lt;BR&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff&gt;&lt;FONT color=#0000ff&gt;&lt;FONT color=#0000ff&gt;LOCAL &lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;&lt;FONT face="Courier New"&gt;&lt;FONT color=#000000&gt;lcOldSetLib&lt;BR&gt;lcOldSetLib = &lt;/FONT&gt;&lt;FONT color=#0000ff&gt;&lt;FONT color=#0000ff&gt;&lt;FONT color=#0000ff&gt;SET&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;&lt;FONT face="Courier New"&gt;&lt;FONT color=#000000&gt;("Library")&lt;BR&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff&gt;&lt;FONT color=#0000ff&gt;&lt;FONT color=#0000ff&gt;SET LIBRARY TO &lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#000000&gt;(&lt;/FONT&gt;&lt;FONT color=#0000ff&gt;&lt;FONT color=#0000ff&gt;&lt;FONT color=#0000ff&gt;LOCFILE&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;&lt;FONT face="Courier New"&gt;&lt;FONT color=#000000&gt;("vfpex.fll"))&lt;BR&gt;BindEventEx('wineventhandler()', WH_CBT) &lt;/FONT&gt;&lt;FONT color=#008000&gt;&lt;FONT color=#008000&gt;&lt;FONT color=#008000&gt;&amp;amp;&amp;amp; SetWindowsHookEx&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT color=#0000ff&gt;&lt;FONT color=#0000ff&gt;&lt;FONT color=#0000ff&gt;&lt;FONT size=2&gt;&lt;FONT face="Courier New"&gt;&lt;FONT color=#008000&gt;&lt;FONT color=#008000&gt;&lt;FONT color=#008000&gt;* This messagebox will be modified before it is shown&lt;BR&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff&gt;&lt;FONT color=#0000ff&gt;&lt;FONT color=#0000ff&gt;LOCAL &lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#000000 size=2 face="Courier New"&gt;lnOption, lnIndex&lt;BR&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff&gt;&lt;FONT color=#0000ff&gt;&lt;FONT color=#0000ff size=2 face="Courier New"&gt;DO CASE&lt;BR&gt;CASE &lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#000000 size=2 face="Courier New"&gt;pnButtonCnt = 1&lt;BR&gt;&amp;nbsp;&amp;nbsp; pnButtType = 0 &lt;/FONT&gt;&lt;FONT size=2&gt;&lt;FONT face="Courier New"&gt;&lt;FONT color=#008000&gt;&lt;FONT color=#008000&gt;&lt;FONT color=#008000&gt;&amp;amp;&amp;amp; Ok&lt;BR&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff&gt;&lt;FONT color=#0000ff&gt;&lt;FONT color=#0000ff&gt;CASE &lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#000000 size=2 face="Courier New"&gt;pnButtonCnt = 2&lt;BR&gt;&amp;nbsp;&amp;nbsp; pnButtType = 4 &lt;/FONT&gt;&lt;FONT size=2&gt;&lt;FONT face="Courier New"&gt;&lt;FONT color=#008000&gt;&lt;FONT color=#008000&gt;&lt;FONT color=#008000&gt;&amp;amp;&amp;amp; Yes / No&lt;BR&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff&gt;&lt;FONT color=#0000ff&gt;&lt;FONT color=#0000ff&gt;CASE &lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#000000 size=2 face="Courier New"&gt;pnButtonCnt = 3&lt;BR&gt;&amp;nbsp;&amp;nbsp; pnButtType = 2 &lt;/FONT&gt;&lt;FONT color=#008000&gt;&lt;FONT color=#008000&gt;&lt;FONT color=#008000 size=2 face="Courier New"&gt;&amp;amp;&amp;amp; Abort / Retry / Ignore&lt;BR&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff&gt;&lt;FONT color=#0000ff&gt;&lt;FONT color=#0000ff size=2 face="Courier New"&gt;OTHERWISE&lt;BR&gt;ENDCASE&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT color=#0000ff&gt;&lt;FONT color=#0000ff&gt;&lt;FONT color=#0000ff&gt;&lt;FONT size=2&gt;&lt;FONT face="Courier New"&gt;&lt;FONT color=#000000&gt;lnOption = &lt;/FONT&gt;&lt;FONT color=#0000ff&gt;&lt;FONT color=#0000ff&gt;&lt;FONT color=#0000ff&gt;MESSAGEBOX&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#000000&gt;(tcCaption, tnIcon + pnButtType, tcTitle)&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT color=#0000ff&gt;&lt;FONT color=#0000ff&gt;&lt;FONT color=#0000ff&gt;&lt;FONT color=#0000ff&gt;&lt;FONT color=#0000ff&gt;&lt;FONT color=#0000ff size=2 face="Courier New"&gt;LOCAL &lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;&lt;FONT face="Courier New"&gt;&lt;FONT color=#000000&gt;lnOffSet&lt;BR&gt;lnOffSet = &lt;/FONT&gt;&lt;FONT color=#0000ff&gt;&lt;FONT color=#0000ff&gt;&lt;FONT color=#0000ff&gt;ICASE&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#000000 size=2 face="Courier New"&gt;(pnButtonCnt = 3, 2, pnButtonCnt = 2, 5 , 0)&lt;BR&gt;lnIndex = lnOption - lnOffSet&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT color=#0000ff size=2 face="Courier New"&gt;IF &lt;/FONT&gt;&lt;FONT size=2 face="Courier New"&gt;phIcon &amp;lt;&amp;gt; 0&lt;BR&gt;&amp;nbsp;&amp;nbsp; =xmbDeleteObject(phIcon) &amp;amp;&amp;amp; Clear icon handle&lt;BR&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff&gt;&lt;FONT color=#0000ff&gt;&lt;FONT color=#0000ff&gt;&lt;FONT size=2 face="Courier New"&gt;ENDIF &lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT color=#0000ff&gt;&lt;FONT color=#0000ff&gt;&lt;FONT color=#0000ff&gt;&lt;FONT size=2&gt;&lt;FONT face="Courier New"&gt;&lt;FONT color=#0000ff&gt;&lt;FONT color=#0000ff&gt;&lt;FONT color=#0000ff&gt;IF &lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#000000&gt;NOT &lt;/FONT&gt;&lt;FONT color=#0000ff&gt;&lt;FONT color=#0000ff&gt;&lt;FONT color=#0000ff&gt;EMPTY&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;&lt;FONT face="Courier New"&gt;&lt;FONT color=#000000&gt;(lcOldSetLib)&lt;BR&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff&gt;&lt;FONT color=#0000ff&gt;&lt;FONT color=#0000ff&gt;&lt;FONT color=#000000&gt;&amp;nbsp;&amp;nbsp; &lt;/FONT&gt;SET LIBRARY TO &lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#000000 size=2 face="Courier New"&gt;(lcOldSetLib)&lt;BR&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;&lt;FONT face="Courier New"&gt;&lt;FONT color=#0000ff&gt;&lt;FONT color=#0000ff&gt;&lt;FONT color=#0000ff&gt;ENDIF&lt;BR&gt;RETURN &lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#000000&gt;lnIndex&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;FONT color=#0000ff&gt;&lt;FONT color=#0000ff&gt;&lt;FONT color=#0000ff&gt;&lt;FONT color=#000000&gt;
&lt;P&gt;&lt;BR&gt;&lt;FONT size=2 face="Courier New"&gt;　&lt;BR&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff&gt;&lt;FONT color=#0000ff&gt;&lt;FONT color=#0000ff size=2 face="Courier New"&gt;PROCEDURE &lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;&lt;FONT face="Courier New"&gt;&lt;FONT color=#000000&gt;wineventhandler&lt;BR&gt;#&lt;/FONT&gt;&lt;FONT color=#0000ff&gt;&lt;FONT color=#0000ff&gt;&lt;FONT color=#0000ff&gt;DEFINE &lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;&lt;FONT face="Courier New"&gt;&lt;FONT color=#000000&gt;DLG_CTRLID_ICON 0x0014&lt;BR&gt;#&lt;/FONT&gt;&lt;FONT color=#0000ff&gt;&lt;FONT color=#0000ff&gt;&lt;FONT color=#0000ff&gt;DEFINE &lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;&lt;FONT face="Courier New"&gt;&lt;FONT color=#000000&gt;STM_SETICON 0x0170&lt;BR&gt;#&lt;/FONT&gt;&lt;FONT color=#0000ff&gt;&lt;FONT color=#0000ff&gt;&lt;FONT color=#0000ff&gt;DEFINE &lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;&lt;FONT face="Courier New"&gt;&lt;FONT color=#000000&gt;STM_SETIMAGE 0x0172&lt;BR&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;&lt;FONT face="Courier New"&gt;&lt;FONT color=#0000ff&gt;&lt;FONT color=#0000ff&gt;&lt;FONT color=#0000ff&gt;IF &lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;&lt;FONT face="Courier New"&gt;&lt;FONT color=#000000&gt;nCode == 5&lt;BR&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff&gt;&lt;FONT color=#0000ff&gt;&lt;FONT color=#0000ff&gt;&lt;FONT color=#000000&gt;&amp;nbsp;&amp;nbsp; &lt;/FONT&gt;IF &lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#000000&gt;NOT &lt;/FONT&gt;&lt;FONT color=#0000ff&gt;&lt;FONT color=#0000ff&gt;&lt;FONT color=#0000ff&gt;EMPTY&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#000000&gt;(phIcon&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;&lt;FONT face="Courier New"&gt;&lt;FONT color=#000000&gt;)&lt;BR&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;&lt;FONT face="Courier New"&gt;&lt;FONT color=#008000&gt;&lt;FONT color=#008000&gt;&lt;FONT color=#008000&gt;&lt;FONT color=#000000&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/FONT&gt;* Changing the Dialog icon&lt;BR&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff&gt;&lt;FONT color=#0000ff&gt;&lt;FONT color=#0000ff&gt;&lt;FONT color=#000000&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/FONT&gt;LOCAL &lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;&lt;FONT face="Courier New"&gt;&lt;FONT color=#000000&gt;lhIconWindow&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; lhIconWindow = xmbGetDlgItem(wParam, DLG_CTRLID_ICON)&lt;BR&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff&gt;&lt;FONT color=#0000ff&gt;&lt;FONT color=#0000ff&gt;&lt;FONT color=#000000&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/FONT&gt;IF &lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;&lt;FONT face="Courier New"&gt;&lt;FONT color=#000000&gt;lhIconWindow &amp;lt;&amp;gt; 0&lt;BR&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff&gt;&lt;FONT color=#0000ff&gt;&lt;FONT color=#0000ff&gt;&lt;FONT color=#000000&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/FONT&gt;IF &lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#000000 size=2 face="Courier New"&gt;phIcon &amp;lt;&amp;gt; 0&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; =xmbSendMessage(lhIconWindow, STM_SETICON, phIcon, 0)&lt;BR&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff&gt;&lt;FONT color=#0000ff&gt;&lt;FONT color=#0000ff&gt;&lt;FONT size=2&gt;&lt;FONT face="Courier New"&gt;&lt;FONT color=#000000&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/FONT&gt;ENDIF&lt;BR&gt;&lt;FONT color=#000000&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/FONT&gt;ENDIF&lt;BR&gt;&lt;FONT color=#000000&gt;&amp;nbsp;&amp;nbsp; &lt;/FONT&gt;ENDIF&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT size=2&gt;&lt;FONT face="Courier New"&gt;&lt;FONT color=#008000&gt;&lt;FONT color=#008000&gt;&lt;FONT color=#008000&gt;&amp;nbsp;&amp;nbsp; * Change button attributes&lt;BR&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff&gt;&lt;FONT color=#0000ff&gt;&lt;FONT color=#0000ff&gt;&amp;nbsp;&amp;nbsp; LOCAL &lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;&lt;FONT face="Courier New"&gt;&lt;FONT color=#000000&gt;n, lnOffSet, lcCaption&lt;BR&gt;&amp;nbsp;&amp;nbsp; lnOffSet = &lt;/FONT&gt;&lt;FONT color=#0000ff&gt;&lt;FONT color=#0000ff&gt;&lt;FONT color=#0000ff&gt;ICASE&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;&lt;FONT face="Courier New"&gt;&lt;FONT color=#000000&gt;(pnButtonCnt = 3, 2, pnButtonCnt = 2, 5 , 0)&lt;BR&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff&gt;&lt;FONT color=#0000ff&gt;&lt;FONT color=#0000ff&gt;&amp;nbsp;&amp;nbsp; FOR &lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#000000&gt;n = 1 &lt;/FONT&gt;&lt;FONT color=#0000ff&gt;&lt;FONT color=#0000ff&gt;&lt;FONT color=#0000ff&gt;TO &lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;&lt;FONT face="Courier New"&gt;&lt;FONT color=#000000&gt;pnButtonCnt&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; lcCaption = &lt;/FONT&gt;&lt;FONT color=#0000ff&gt;&lt;FONT color=#0000ff&gt;&lt;FONT color=#0000ff&gt;GETWORDNUM&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#000000 size=2 face="Courier New"&gt;(pcButtons, n, ",")&lt;BR&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;&lt;FONT face="Courier New"&gt;&lt;FONT color=#008000&gt;&lt;FONT color=#008000&gt;&lt;FONT color=#008000&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; * Disable current button&lt;BR&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff&gt;&lt;FONT color=#0000ff&gt;&lt;FONT color=#0000ff&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; IF LEFT&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;&lt;FONT face="Courier New"&gt;&lt;FONT color=#000000&gt;(lcCaption, 1) = "\"&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; lcCaption = &lt;/FONT&gt;&lt;FONT color=#0000ff&gt;&lt;FONT color=#0000ff&gt;&lt;FONT color=#0000ff&gt;SUBSTR&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#000000&gt;(lcCaption, 2) &lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;&lt;FONT face="Courier New"&gt;&lt;FONT color=#008000&gt;&lt;FONT color=#008000&gt;&lt;FONT color=#008000&gt;&amp;amp;&amp;amp; Get the rest of the string&lt;BR&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff&gt;&lt;FONT color=#0000ff&gt;&lt;FONT color=#0000ff&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; LOCAL &lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;&lt;FONT face="Courier New"&gt;&lt;FONT color=#000000&gt;lnBtnHwnd&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; lnBtnHwnd = xmbGetDlgItem(wParam, lnOffSet + n)&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; =xmbEnableWindow(lnBtnHwnd, 0)&lt;BR&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff&gt;&lt;FONT color=#0000ff&gt;&lt;FONT color=#0000ff&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ENDIF&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT color=#008000&gt;&lt;FONT color=#008000&gt;&lt;FONT color=#008000 size=2 face="Courier New"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; * Change the caption&lt;BR&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;&lt;FONT face="Courier New"&gt;&lt;FONT color=#000000&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; =xmbSetDlgItemText(wParam, lnOffSet + n, lcCaption)&lt;BR&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff&gt;&lt;FONT color=#0000ff&gt;&lt;FONT color=#0000ff&gt;&amp;nbsp;&amp;nbsp; ENDFOR&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT color=#000000 size=2 face="Courier New"&gt;&amp;nbsp;&amp;nbsp; =xmbCallNextHookEx(hHook, nCode, wParam, LPARAM) &lt;/FONT&gt;&lt;FONT color=#008000&gt;&lt;FONT color=#008000&gt;&lt;FONT color=#008000 size=2 face="Courier New"&gt;&amp;amp;&amp;amp; all 4 variables exist&lt;BR&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#000000 size=2 face="Courier New"&gt;&amp;nbsp;&amp;nbsp; UnBindEventEx()&lt;BR&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;&lt;FONT face="Courier New"&gt;&lt;FONT color=#0000ff&gt;&lt;FONT color=#0000ff&gt;&lt;FONT color=#0000ff&gt;ELSE&lt;BR&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#000000&gt;&amp;nbsp;&amp;nbsp; =xmbCallNextHookEx(hHook, nCode, wParam, LPARAM) &lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;&lt;FONT face="Courier New"&gt;&lt;FONT color=#008000&gt;&lt;FONT color=#008000&gt;&lt;FONT color=#008000&gt;&amp;amp;&amp;amp; all 4 variables created by FLL&lt;BR&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff&gt;&lt;FONT color=#0000ff&gt;&lt;FONT color=#0000ff&gt;ENDIF&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT color=#0000ff&gt;&lt;FONT color=#0000ff&gt;&lt;FONT color=#0000ff size=2 face="Courier New"&gt;RELEASE &lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;&lt;FONT face="Courier New"&gt;&lt;FONT color=#000000&gt;nCode, wParam, LPARAM, hHook&lt;BR&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff&gt;&lt;FONT color=#0000ff&gt;&lt;FONT color=#0000ff&gt;ENDPROC&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT size=2 face="Courier New"&gt;&lt;/FONT&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;FONT size=2&gt;&lt;FONT face="Courier New"&gt;&lt;FONT color=#008000&gt;&lt;FONT color=#008000&gt;&lt;FONT color=#008000&gt;*********************************************************************&lt;BR&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff&gt;&lt;FONT color=#0000ff&gt;&lt;FONT color=#0000ff&gt;FUNCTION &lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#000000 size=2 face="Courier New"&gt;xmbSetDlgItemText(hDlg, nIDDlgItem, lpString)&lt;BR&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;&lt;FONT face="Courier New"&gt;&lt;FONT color=#008000&gt;&lt;FONT color=#008000&gt;&lt;FONT color=#008000&gt;*********************************************************************&lt;BR&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff&gt;&lt;FONT color=#0000ff&gt;&lt;FONT color=#0000ff&gt;DECLARE INTEGER &lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#000000&gt;SetDlgItemText &lt;/FONT&gt;&lt;FONT color=#0000ff&gt;&lt;FONT color=#0000ff&gt;&lt;FONT color=#0000ff&gt;IN &lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#000000&gt;user32 &lt;/FONT&gt;&lt;FONT color=#0000ff&gt;&lt;FONT color=#0000ff&gt;&lt;FONT color=#0000ff&gt;AS &lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;&lt;FONT face="Courier New"&gt;&lt;FONT color=#000000&gt;xmbSetDlgItemText ;&lt;BR&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff&gt;&lt;FONT color=#0000ff&gt;&lt;FONT color=#0000ff&gt;&amp;nbsp;&amp;nbsp; LONG &lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;&lt;FONT face="Courier New"&gt;&lt;FONT color=#000000&gt;hDlg,;&lt;BR&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff&gt;&lt;FONT color=#0000ff&gt;&lt;FONT color=#0000ff&gt;&amp;nbsp;&amp;nbsp; LONG &lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;&lt;FONT face="Courier New"&gt;&lt;FONT color=#000000&gt;nIDDlgItem,;&lt;BR&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff&gt;&lt;FONT color=#0000ff&gt;&lt;FONT color=#0000ff&gt;&amp;nbsp;&amp;nbsp; STRING &lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;&lt;FONT face="Courier New"&gt;&lt;FONT color=#000000&gt;lpString&lt;BR&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff&gt;&lt;FONT color=#0000ff&gt;&lt;FONT color=#0000ff&gt;RETURN &lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;&lt;FONT face="Courier New"&gt;&lt;FONT color=#000000&gt;xmbSetDlgItemText(hDlg, nIDDlgItem, lpString)&lt;BR&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff&gt;&lt;FONT color=#0000ff&gt;&lt;FONT color=#0000ff&gt;ENDFUNC&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT size=2&gt;&lt;FONT face="Courier New"&gt;&lt;FONT color=#008000&gt;&lt;FONT color=#008000&gt;&lt;FONT color=#008000&gt;*********************************************************************&lt;BR&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff&gt;&lt;FONT color=#0000ff&gt;&lt;FONT color=#0000ff&gt;FUNCTION &lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#000000 size=2 face="Courier New"&gt;xmbCallNextHookEx(hHook, nCode, wParam, lParam)&lt;BR&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;&lt;FONT face="Courier New"&gt;&lt;FONT color=#008000&gt;&lt;FONT color=#008000&gt;&lt;FONT color=#008000&gt;*********************************************************************&lt;BR&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff&gt;&lt;FONT color=#0000ff&gt;&lt;FONT color=#0000ff&gt;DECLARE LONG &lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#000000&gt;CallNextHookEx &lt;/FONT&gt;&lt;FONT color=#0000ff&gt;&lt;FONT color=#0000ff&gt;&lt;FONT color=#0000ff&gt;IN &lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#000000&gt;user32 &lt;/FONT&gt;&lt;FONT color=#0000ff&gt;&lt;FONT color=#0000ff&gt;&lt;FONT color=#0000ff&gt;AS &lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;&lt;FONT face="Courier New"&gt;&lt;FONT color=#000000&gt;xmbCallNextHookEx ;&lt;BR&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff&gt;&lt;FONT color=#0000ff&gt;&lt;FONT color=#0000ff&gt;&amp;nbsp;&amp;nbsp; LONG &lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#000000&gt;hHook, &lt;/FONT&gt;&lt;FONT color=#0000ff&gt;&lt;FONT color=#0000ff&gt;&lt;FONT color=#0000ff&gt;LONG &lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#000000&gt;nCode, &lt;/FONT&gt;&lt;FONT color=#0000ff&gt;&lt;FONT color=#0000ff&gt;&lt;FONT color=#0000ff&gt;LONG &lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#000000&gt;wParam, &lt;/FONT&gt;&lt;FONT color=#0000ff&gt;&lt;FONT color=#0000ff&gt;&lt;FONT color=#0000ff&gt;LONG &lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;&lt;FONT face="Courier New"&gt;&lt;FONT color=#000000&gt;lParam&lt;BR&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff&gt;&lt;FONT color=#0000ff&gt;&lt;FONT color=#0000ff&gt;RETURN &lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;&lt;FONT face="Courier New"&gt;&lt;FONT color=#000000&gt;xmbCallNextHookEx(hHook, nCode, wParam, lParam)&lt;BR&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff&gt;&lt;FONT color=#0000ff&gt;&lt;FONT color=#0000ff&gt;ENDFUNC&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT size=2&gt;&lt;FONT face="Courier New"&gt;&lt;FONT color=#008000&gt;&lt;FONT color=#008000&gt;&lt;FONT color=#008000&gt;*********************************************************************&lt;BR&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff&gt;&lt;FONT color=#0000ff&gt;&lt;FONT color=#0000ff&gt;FUNCTION &lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#000000 size=2 face="Courier New"&gt;xmbGetDlgItem(hDlg, nIDDlgItem)&lt;BR&gt;&lt;/FONT&gt;&lt;FONT color=#008000&gt;&lt;FONT color=#008000&gt;&lt;FONT color=#008000 size=2 face="Courier New"&gt;*********************************************************************&lt;BR&gt;* hDlg [in] Handle to the dialog box that contains the control.&lt;BR&gt;* nIDDlgItem [in] Specifies the identifier of the control to be retrieved.&lt;BR&gt;* &lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;U&gt;&lt;FONT color=#000000 size=2 face="Courier New"&gt;http://msdn.microsoft.com/en-us/library/ms645481(VS.85&lt;/FONT&gt;&lt;FONT color=#008000&gt;&lt;FONT color=#008000&gt;&lt;FONT color=#008000&gt;&lt;FONT size=2 face="Courier New"&gt;).aspx&lt;BR&gt;&lt;/FONT&gt;&lt;/U&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;&lt;FONT face="Courier New"&gt;&lt;FONT color=#0000ff&gt;&lt;FONT color=#0000ff&gt;&lt;FONT color=#0000ff&gt;DECLARE INTEGER &lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#000000&gt;GetDlgItem &lt;/FONT&gt;&lt;FONT color=#0000ff&gt;&lt;FONT color=#0000ff&gt;&lt;FONT color=#0000ff&gt;IN &lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#000000&gt;user32 &lt;/FONT&gt;&lt;FONT color=#0000ff&gt;&lt;FONT color=#0000ff&gt;&lt;FONT color=#0000ff&gt;AS &lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;&lt;FONT face="Courier New"&gt;&lt;FONT color=#000000&gt;xmbGetDlgItem ;&lt;BR&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff&gt;&lt;FONT color=#0000ff&gt;&lt;FONT color=#0000ff&gt;&amp;nbsp;&amp;nbsp; LONG &lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;&lt;FONT face="Courier New"&gt;&lt;FONT color=#000000&gt;hDlg,;&lt;BR&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff&gt;&lt;FONT color=#0000ff&gt;&lt;FONT color=#0000ff&gt;&amp;nbsp;&amp;nbsp; LONG &lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;&lt;FONT face="Courier New"&gt;&lt;FONT color=#000000&gt;nIDDlgItem&lt;BR&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff&gt;&lt;FONT color=#0000ff&gt;&lt;FONT color=#0000ff&gt;RETURN &lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;&lt;FONT face="Courier New"&gt;&lt;FONT color=#000000&gt;xmbGetDlgItem(hDlg, nIDDlgItem)&lt;BR&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff&gt;&lt;FONT color=#0000ff&gt;&lt;FONT color=#0000ff&gt;ENDFUNC&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT size=2&gt;&lt;FONT face="Courier New"&gt;&lt;FONT color=#008000&gt;&lt;FONT color=#008000&gt;&lt;FONT color=#008000&gt;*********************************************************************&lt;BR&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff&gt;&lt;FONT color=#0000ff&gt;&lt;FONT color=#0000ff&gt;FUNCTION &lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#000000&gt;xmbEnableWindow(&lt;/FONT&gt;&lt;FONT color=#0000ff&gt;&lt;FONT color=#0000ff&gt;&lt;FONT color=#0000ff&gt;hwnd&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#000000 size=2 face="Courier New"&gt;, fEnable)&lt;BR&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;&lt;FONT face="Courier New"&gt;&lt;FONT color=#008000&gt;&lt;FONT color=#008000&gt;&lt;FONT color=#008000&gt;*********************************************************************&lt;BR&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff&gt;&lt;FONT color=#0000ff&gt;&lt;FONT color=#0000ff&gt;DECLARE INTEGER &lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#000000&gt;EnableWindow &lt;/FONT&gt;&lt;FONT color=#0000ff&gt;&lt;FONT color=#0000ff&gt;&lt;FONT color=#0000ff&gt;IN &lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#000000&gt;user32 &lt;/FONT&gt;&lt;FONT color=#0000ff&gt;&lt;FONT color=#0000ff&gt;&lt;FONT color=#0000ff&gt;AS &lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#000000&gt;xmbEnableWindow &lt;/FONT&gt;&lt;FONT color=#0000ff&gt;&lt;FONT color=#0000ff&gt;&lt;FONT color=#0000ff&gt;INTEGER hwnd&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#000000&gt;, &lt;/FONT&gt;&lt;FONT color=#0000ff&gt;&lt;FONT color=#0000ff&gt;&lt;FONT color=#0000ff&gt;INTEGER &lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;&lt;FONT face="Courier New"&gt;&lt;FONT color=#000000&gt;fEnable&lt;BR&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff&gt;&lt;FONT color=#0000ff&gt;&lt;FONT color=#0000ff&gt;RETURN &lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#000000&gt;xmbEnableWindow(&lt;/FONT&gt;&lt;FONT color=#0000ff&gt;&lt;FONT color=#0000ff&gt;&lt;FONT color=#0000ff&gt;hwnd&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;&lt;FONT face="Courier New"&gt;&lt;FONT color=#000000&gt;, fEnable)&lt;BR&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff&gt;&lt;FONT color=#0000ff&gt;&lt;FONT color=#0000ff&gt;ENDFUNC&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT size=2&gt;&lt;FONT face="Courier New"&gt;&lt;FONT color=#008000&gt;&lt;FONT color=#008000&gt;&lt;FONT color=#008000&gt;*********************************************************************&lt;BR&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff&gt;&lt;FONT color=#0000ff&gt;&lt;FONT color=#0000ff&gt;FUNCTION &lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#000000 size=2 face="Courier New"&gt;xmbSendMessage(hWindow, Msg, wParam, lParam)&lt;BR&gt;&lt;/FONT&gt;&lt;FONT color=#008000&gt;&lt;FONT color=#008000&gt;&lt;FONT color=#008000 size=2 face="Courier New"&gt;*********************************************************************&lt;BR&gt;* &lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;U&gt;&lt;FONT color=#000000 size=2 face="Courier New"&gt;http://msdn.microsoft.com/en-us/library/bb760780(VS.85&lt;/FONT&gt;&lt;FONT color=#008000&gt;&lt;FONT color=#008000&gt;&lt;FONT color=#008000&gt;&lt;FONT size=2 face="Courier New"&gt;).aspx&lt;BR&gt;&lt;/FONT&gt;&lt;/U&gt;&lt;FONT size=2 face="Courier New"&gt;* &lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Courier New"&gt;&lt;U&gt;&lt;FONT color=#000000 size=2&gt;http://www.news2news.com/vfp/?group=-1&amp;amp;function=312&lt;BR&gt;&lt;/FONT&gt;&lt;/U&gt;&lt;FONT size=2&gt;&lt;FONT color=#0000ff&gt;&lt;FONT color=#0000ff&gt;&lt;FONT color=#0000ff&gt;DECLARE INTEGER &lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#000000&gt;SendMessage &lt;/FONT&gt;&lt;FONT color=#0000ff&gt;&lt;FONT color=#0000ff&gt;&lt;FONT color=#0000ff&gt;IN &lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#000000&gt;user32 &lt;/FONT&gt;&lt;FONT color=#0000ff&gt;&lt;FONT color=#0000ff&gt;&lt;FONT color=#0000ff&gt;AS &lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;&lt;FONT face="Courier New"&gt;&lt;FONT color=#000000&gt;xmbSendMessage;&lt;BR&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff&gt;&lt;FONT color=#0000ff&gt;&lt;FONT color=#0000ff&gt;&amp;nbsp;&amp;nbsp; INTEGER &lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#000000&gt;hWindow, &lt;/FONT&gt;&lt;FONT color=#0000ff&gt;&lt;FONT color=#0000ff&gt;&lt;FONT color=#0000ff&gt;INTEGER &lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;&lt;FONT face="Courier New"&gt;&lt;FONT color=#000000&gt;Msg,;&lt;BR&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff&gt;&lt;FONT color=#0000ff&gt;&lt;FONT color=#0000ff&gt;&amp;nbsp;&amp;nbsp; INTEGER &lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#000000&gt;wParam, &lt;/FONT&gt;&lt;FONT color=#0000ff&gt;&lt;FONT color=#0000ff&gt;&lt;FONT color=#0000ff&gt;INTEGER &lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;&lt;FONT face="Courier New"&gt;&lt;FONT color=#000000&gt;lParam&lt;BR&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff&gt;&lt;FONT color=#0000ff&gt;&lt;FONT color=#0000ff&gt;RETURN &lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;&lt;FONT face="Courier New"&gt;&lt;FONT color=#000000&gt;xmbSendMessage(hWindow, Msg, wParam, lParam)&lt;BR&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff&gt;&lt;FONT color=#0000ff&gt;&lt;FONT color=#0000ff&gt;ENDFUNC&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT size=2&gt;&lt;FONT face="Courier New"&gt;&lt;FONT color=#008000&gt;&lt;FONT color=#008000&gt;&lt;FONT color=#008000&gt;*********************************************************************&lt;BR&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff&gt;&lt;FONT color=#0000ff&gt;&lt;FONT color=#0000ff&gt;FUNCTION &lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#000000 size=2 face="Courier New"&gt;xmbLoadImage(hinst, lpszName, uType, cxDesired, cyDesired, fuLoad)&lt;BR&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;&lt;FONT face="Courier New"&gt;&lt;FONT color=#008000&gt;&lt;FONT color=#008000&gt;&lt;FONT color=#008000&gt;*********************************************************************&lt;BR&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff&gt;&lt;FONT color=#0000ff&gt;&lt;FONT color=#0000ff&gt;DECLARE INTEGER &lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#000000&gt;LoadImage &lt;/FONT&gt;&lt;FONT color=#0000ff&gt;&lt;FONT color=#0000ff&gt;&lt;FONT color=#0000ff&gt;IN &lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#000000&gt;user32 &lt;/FONT&gt;&lt;FONT color=#0000ff&gt;&lt;FONT color=#0000ff&gt;&lt;FONT color=#0000ff&gt;AS &lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;&lt;FONT face="Courier New"&gt;&lt;FONT color=#000000&gt;xmbLoadImage;&lt;BR&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff&gt;&lt;FONT color=#0000ff&gt;&lt;FONT color=#0000ff&gt;&amp;nbsp;&amp;nbsp; INTEGER &lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;&lt;FONT face="Courier New"&gt;&lt;FONT color=#000000&gt;hinst,;&lt;BR&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff&gt;&lt;FONT color=#0000ff&gt;&lt;FONT color=#0000ff&gt;&amp;nbsp;&amp;nbsp; STRING &lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;&lt;FONT face="Courier New"&gt;&lt;FONT color=#000000&gt;lpszName,;&lt;BR&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff&gt;&lt;FONT color=#0000ff&gt;&lt;FONT color=#0000ff&gt;&amp;nbsp;&amp;nbsp; INTEGER &lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;&lt;FONT face="Courier New"&gt;&lt;FONT color=#000000&gt;uType,;&lt;BR&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff&gt;&lt;FONT color=#0000ff&gt;&lt;FONT color=#0000ff&gt;&amp;nbsp;&amp;nbsp; INTEGER &lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;&lt;FONT face="Courier New"&gt;&lt;FONT color=#000000&gt;cxDesired,;&lt;BR&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff&gt;&lt;FONT color=#0000ff&gt;&lt;FONT color=#0000ff&gt;&amp;nbsp;&amp;nbsp; INTEGER &lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;&lt;FONT face="Courier New"&gt;&lt;FONT color=#000000&gt;cyDesired,;&lt;BR&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff&gt;&lt;FONT color=#0000ff&gt;&lt;FONT color=#0000ff&gt;&amp;nbsp;&amp;nbsp; INTEGER &lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;&lt;FONT face="Courier New"&gt;&lt;FONT color=#000000&gt;fuLoad&lt;BR&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff&gt;&lt;FONT color=#0000ff&gt;&lt;FONT color=#0000ff&gt;RETURN &lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;&lt;FONT face="Courier New"&gt;&lt;FONT color=#000000&gt;xmbLoadImage(hinst, lpszName, uType, cxDesired, cyDesired, fuLoad)&lt;BR&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff&gt;&lt;FONT color=#0000ff&gt;&lt;FONT color=#0000ff&gt;ENDFUNC&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;BR&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;
&lt;P&gt;&lt;FONT color=#0000ff&gt;&lt;FONT color=#0000ff&gt;&lt;FONT color=#0000ff&gt;&lt;FONT size=2&gt;&lt;FONT face="Courier New"&gt;&lt;FONT color=#008000&gt;*********************************************************************&lt;BR&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff&gt;&lt;FONT color=#0000ff&gt;&lt;FONT color=#0000ff&gt;FUNCTION &lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;&lt;FONT face="Courier New"&gt;&lt;FONT color=#000000&gt;xmbDeleteObject(hObject)&lt;/FONT&gt;&lt;BR&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;&lt;FONT face="Courier New"&gt;&lt;FONT color=#008000&gt;&lt;FONT color=#008000&gt;&lt;FONT color=#008000&gt;*********************************************************************&lt;BR&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff&gt;&lt;FONT color=#0000ff&gt;&lt;FONT color=#0000ff&gt;DECLARE INTEGER &lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#000000&gt;DeleteObject &lt;/FONT&gt;&lt;FONT color=#0000ff&gt;&lt;FONT color=#0000ff&gt;&lt;FONT color=#0000ff&gt;IN &lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#000000&gt;gdi32 &lt;/FONT&gt;&lt;FONT color=#0000ff&gt;&lt;FONT color=#0000ff&gt;&lt;FONT color=#0000ff&gt;AS &lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#000000&gt;xmbDeleteObject &lt;/FONT&gt;&lt;FONT color=#0000ff&gt;&lt;FONT color=#0000ff&gt;&lt;FONT color=#0000ff&gt;INTEGER &lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;&lt;FONT face="Courier New"&gt;&lt;FONT color=#000000&gt;hObject&lt;/FONT&gt;&lt;BR&gt;&lt;FONT color=#0000ff&gt;&lt;FONT color=#0000ff&gt;&lt;FONT color=#0000ff&gt;RETURN &lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;&lt;FONT face="Courier New"&gt;&lt;FONT color=#000000&gt;xmbDeleteObject(hObject)&lt;/FONT&gt;&lt;BR&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff&gt;&lt;FONT color=#0000ff&gt;&lt;FONT color=#0000ff size=2 face="Courier New"&gt;ENDFUNC&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;BR&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;A href="http://www.sweetpotatosoftware.com/spsblog/ct.ashx?id=f7644db8-b155-4d43-8216-4cfde233edb7&amp;amp;url=http%3a%2f%2fwww.sweetpotatosoftware.com%2ffiles%2fvfpex.zip"&gt;&lt;FONT size=2 face=Verdana&gt;Download the vfpex.fll here&lt;/FONT&gt;&lt;/A&gt;&lt;FONT size=2 face=Verdana&gt;, created by Craig Boyd, directly from the SPS Weblog.&amp;nbsp;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT size=2 face=Verdana&gt;&lt;/FONT&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;FONT color=#ff0000 size=2 face=Verdana&gt;&lt;STRONG&gt;History:&lt;/STRONG&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT size=2 face=Verdana&gt;2009-10-19 Original version (change captions)&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT size=2 face=Verdana&gt;2009-10-23 Updated, allowing icon change and disabling buttons&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT size=2 face=Verdana&gt;&lt;/FONT&gt;&amp;nbsp;&lt;/P&gt;&lt;img src="http://weblogs.foxite.com/aggbug.aspx?PostID=9202" width="1" height="1"&gt;</description><category domain="http://weblogs.foxite.com/vfpimaging/archive/category/1029.aspx">VFP in General</category></item><item><title>A GdiPlusX analog clock</title><link>http://weblogs.foxite.com/vfpimaging/archive/2009/10/22/8723.aspx</link><pubDate>Thu, 22 Oct 2009 11:27:00 GMT</pubDate><guid isPermaLink="false">8827bd1c-7596-4a8f-b0de-f59ce9ede522:8723</guid><dc:creator>cesarchalom</dc:creator><slash:comments>1</slash:comments><comments>http://weblogs.foxite.com/vfpimaging/comments/8723.aspx</comments><wfw:commentRss>http://weblogs.foxite.com/vfpimaging/commentrss.aspx?PostID=8723</wfw:commentRss><wfw:comment>http://weblogs.foxite.com/rsscomments/8723.aspx</wfw:comment><description>&lt;P&gt;After I posted a &lt;A HREF="/vfpimaging/archive/2009/04/24/8242.aspx)"&gt;gauge sample with GdiPlusX&lt;/A&gt; some months ago, &lt;A href="http://www.lipsil.com.br"&gt;Rafael Lippert &lt;/A&gt;from Brazil adapted my original code and created this cool analog watch, using GdiPlusX and the ImageCanvas class:&lt;/P&gt;&lt;IMG src="https://3pltjq.blu.livefilestore.com/y1mNO-Rx3hE5e9DIhqE3L1rJrlEYwT2Zs8p3h2bq8duW5yu1VmOiWkjEvKIshNDFmn9bzjxWIiOD2ykEiV8dWSVZjWOPvwBAmafzK9Fc3uOGWlOYopMRJgD3BQqmxOSwd0iDxaiRmWFHtif54X50ECZfA/ScreenShot002.jpg"&gt; 
&lt;P&gt;Cool isn't it ? It permits many customizations, and you may use it as a sample to learn other GdiPlusX techniques.&lt;/P&gt;
&lt;P&gt;You may get it directly from Rafael' blog, at: &lt;A href="http://lipsil.spaces.live.com/blog/cns!9498DCF62578E128!192.entry"&gt;http://lipsil.spaces.live.com/blog/cns!9498DCF62578E128!192.entry&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;It's worth to spend some time in Rafael's blog and website - &lt;A href="http://www.lipsil.com.br"&gt;www.lipsil.com.br&lt;/A&gt; . I'm sure you'll find some really very neat utilities.&lt;/P&gt;&lt;img src="http://weblogs.foxite.com/aggbug.aspx?PostID=8723" width="1" height="1"&gt;</description><category domain="http://weblogs.foxite.com/vfpimaging/archive/category/187.aspx">GDI+ AND IMAGES</category></item><item><title>SW Fox accessible to everyone !</title><link>http://weblogs.foxite.com/vfpimaging/archive/2009/10/16/9140.aspx</link><pubDate>Fri, 16 Oct 2009 11:15:00 GMT</pubDate><guid isPermaLink="false">8827bd1c-7596-4a8f-b0de-f59ce9ede522:9140</guid><dc:creator>cesarchalom</dc:creator><slash:comments>0</slash:comments><comments>http://weblogs.foxite.com/vfpimaging/comments/9140.aspx</comments><wfw:commentRss>http://weblogs.foxite.com/vfpimaging/commentrss.aspx?PostID=9140</wfw:commentRss><wfw:comment>http://weblogs.foxite.com/rsscomments/9140.aspx</wfw:comment><description>&lt;P&gt;&lt;A href="http://www.swfox.net/"&gt;&lt;IMG id=Image1_img alt="Southwest Fox" src="http://1.bp.blogspot.com/_xP_SR62fwds/Rz39SQrorTI/AAAAAAAAAD0/S7VGT_cvwy8/s1600/SWFox2008_Animated2008.gif" width=150 height=28&gt;&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;SW Fox conference has just begun !&lt;BR&gt;&lt;/P&gt;
&lt;P&gt;And the good news that for us people who could not attend this fabulous source of knowledge, some very interesting sessions are being broadcasted in live by Steve Bodnar.&lt;/P&gt;
&lt;P&gt;There's also a cool option for chatting online with other people that are watching the broadcasting, and even interact with people from the conference !&lt;/P&gt;
&lt;P&gt;Last night I had the oportunity to watch the keynote session, when I "met" some other fellas in the chat room - that was really cool!&lt;/P&gt;
&lt;P&gt;All sessions can be reached directly from the broadcasting channel&lt;BR&gt;&lt;A href="http://www.ustream.tv/channel/swfoxtv"&gt;http://www.ustream.tv/channel/swfoxtv&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;More info can be obtained directly at the conference blog:&lt;BR&gt;&lt;A href="http://swfox.net/blog/index.htm"&gt;http://swfox.net/blog/index.htm&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&lt;BR&gt;The next available sessions schedule:&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;VFPX Users Meeting - Bonus session&lt;/SPAN&gt;&lt;BR&gt;Friday, 10/16/2009 05:15 pm (Arizona Time)&lt;BR&gt;&lt;BR&gt;&lt;SPAN&gt;The Future of the VFP Developer - Bonus session&lt;/SPAN&gt;&lt;BR&gt;Friday, 10/16/2009 08:30 pm (Arizona Time)&lt;BR&gt;&lt;BR&gt;&lt;SPAN&gt;Enhancing the VFP IDE with VFPX Tools &lt;/SPAN&gt;&lt;BR&gt;Saturday, 10/17/2009 11:30 am (Arizona Time)&lt;BR&gt;&lt;/P&gt;
&lt;P&gt;Hope to meet you in the chat room&amp;nbsp;!&lt;/P&gt;&lt;img src="http://weblogs.foxite.com/aggbug.aspx?PostID=9140" width="1" height="1"&gt;</description><category domain="http://weblogs.foxite.com/vfpimaging/archive/category/1030.aspx">News</category></item><item><title>Draw rounded rectangles with GdiPlusX</title><link>http://weblogs.foxite.com/vfpimaging/archive/2009/07/30/8722.aspx</link><pubDate>Thu, 30 Jul 2009 00:00:00 GMT</pubDate><guid isPermaLink="false">8827bd1c-7596-4a8f-b0de-f59ce9ede522:8722</guid><dc:creator>cesarchalom</dc:creator><slash:comments>0</slash:comments><comments>http://weblogs.foxite.com/vfpimaging/comments/8722.aspx</comments><wfw:commentRss>http://weblogs.foxite.com/vfpimaging/commentrss.aspx?PostID=8722</wfw:commentRss><wfw:comment>http://weblogs.foxite.com/rsscomments/8722.aspx</wfw:comment><description>&lt;P&gt;This post is just to answer a question from Mr. Reed.&lt;/P&gt;
&lt;P&gt;&lt;A href="http://www.bobpowell.net/"&gt;Bob Powell&lt;/A&gt;, in his great website site &lt;A href="http://www.bobpowell.net/roundrects.htm"&gt;says:&lt;/A&gt; &lt;EM&gt;"The trick here is to use a GraphicsPath object to assemble a collection of&amp;nbsp; lines and arcs that make up the rounded rectangle shape.&lt;/EM&gt;&lt;/P&gt;
&lt;P&gt;&lt;EM&gt;Arcs are used to round off the corners, so you have to position the lines 1 radius, whatever that may be, from the actual corner."&lt;/EM&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;The code below shows &lt;A href="http://www.bobpowell.net/roundrects.htm"&gt;Bob's function &lt;/A&gt;converted to VFP and GdiPlusX, to obtain this result:&lt;/P&gt;
&lt;P&gt;&lt;IMG src="/photos/cesarchalom/images/8721/original.aspx" border=0&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;FONT size=2&gt;&lt;FONT face="Courier New" color=#0000ff&gt;&lt;FONT face="Courier New" color=#0000ff&gt;&lt;FONT face="Courier New" color=#0000ff&gt;LOCAL &lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Courier New"&gt;&lt;FONT face="Courier New"&gt;loBmp &lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Courier New" color=#0000ff&gt;&lt;FONT face="Courier New" color=#0000ff&gt;&lt;FONT face="Courier New" color=#0000ff&gt;as &lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Courier New"&gt;&lt;FONT face="Courier New"&gt;xfcBitmap, loGfx &lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Courier New" color=#0000ff&gt;&lt;FONT face="Courier New" color=#0000ff&gt;&lt;FONT face="Courier New" color=#0000ff&gt;as &lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;&lt;FONT face="Courier New"&gt;&lt;FONT face="Courier New"&gt;xfcGraphics&lt;BR&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Courier New" color=#0000ff&gt;&lt;FONT face="Courier New" color=#0000ff&gt;&lt;FONT face="Courier New" color=#0000ff&gt;WITH _Screen&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Courier New"&gt;&lt;FONT face="Courier New"&gt;.&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Courier New" color=#0000ff&gt;&lt;FONT face="Courier New" color=#0000ff&gt;&lt;FONT face="Courier New" color=#0000ff&gt;System&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Courier New"&gt;&lt;FONT face="Courier New"&gt;.Drawing &lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Courier New" color=#0000ff&gt;&lt;FONT face="Courier New" color=#0000ff&gt;&lt;FONT face="Courier New" color=#0000ff&gt;as &lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Courier New"&gt;&lt;FONT face="Courier New" size=2&gt;xfcDrawing&lt;BR&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;&lt;FONT face="Courier New" color=#008000&gt;&lt;FONT face="Courier New" color=#008000&gt;&lt;FONT face="Courier New" color=#008000&gt;&amp;nbsp;&amp;nbsp; * Create a new bitmap&lt;BR&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Courier New"&gt;&lt;FONT face="Courier New"&gt;&amp;nbsp;&amp;nbsp; loBmp = .&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Courier New" color=#0000ff&gt;&lt;FONT face="Courier New" color=#0000ff&gt;&lt;FONT face="Courier New" color=#0000ff&gt;Bitmap&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Courier New"&gt;&lt;FONT face="Courier New" size=2&gt;.New(200,170)&lt;BR&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Courier New" color=#008000&gt;&lt;FONT face="Courier New" color=#008000&gt;&lt;FONT face="Courier New" color=#008000 size=2&gt;&amp;nbsp;&amp;nbsp; * Get a Graphics object for drawing&lt;BR&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Courier New"&gt;&lt;FONT face="Courier New" size=2&gt;&amp;nbsp;&amp;nbsp; loGfx = .Graphics.FromImage(loBmp)&lt;BR&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;&lt;FONT face="Courier New" color=#008000&gt;&lt;FONT face="Courier New" color=#008000&gt;&lt;FONT face="Courier New" color=#008000&gt;&amp;nbsp;&amp;nbsp; * Clear the drawing canvas&lt;BR&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Courier New"&gt;&lt;FONT face="Courier New"&gt;&amp;nbsp;&amp;nbsp; loGfx.&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Courier New" color=#0000ff&gt;&lt;FONT face="Courier New" color=#0000ff&gt;&lt;FONT face="Courier New" color=#0000ff&gt;Clear&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Courier New"&gt;&lt;FONT face="Courier New"&gt;(.&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Courier New" color=#0000ff&gt;&lt;FONT face="Courier New" color=#0000ff&gt;&lt;FONT face="Courier New" color=#0000ff&gt;Color&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Courier New"&gt;&lt;FONT face="Courier New" size=2&gt;.LightCoral)&lt;BR&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Courier New" color=#008000&gt;&lt;FONT face="Courier New" color=#008000&gt;&lt;FONT face="Courier New" color=#008000 size=2&gt;&amp;nbsp;&amp;nbsp; * Draw the rounded rectangle&lt;BR&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Courier New"&gt;&lt;FONT face="Courier New" size=2&gt;&amp;nbsp;&amp;nbsp; =DrawRoundRect(loGfx, .Pens.Blue, 20, 30, 150, 100, 20)&lt;BR&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;&lt;FONT face="Courier New" color=#008000&gt;&lt;FONT face="Courier New" color=#008000&gt;&lt;FONT face="Courier New" color=#008000&gt;&amp;nbsp;&amp;nbsp; * Save image to file&lt;BR&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Courier New"&gt;&lt;FONT face="Courier New"&gt;&amp;nbsp;&amp;nbsp; loBmp.&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Courier New" color=#0000ff&gt;&lt;FONT face="Courier New" color=#0000ff&gt;&lt;FONT face="Courier New" color=#0000ff&gt;Save&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Courier New"&gt;&lt;FONT face="Courier New" size=2&gt;("RoundedRect.Png", .Imaging.ImageFormat.Png)&lt;BR&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;&lt;FONT face="Courier New" color=#0000ff&gt;&lt;FONT face="Courier New" color=#0000ff&gt;&lt;FONT face="Courier New" color=#0000ff&gt;ENDWITH &lt;BR&gt;RUN &lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Courier New"&gt;&lt;FONT face="Courier New"&gt;/N Explorer.&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Courier New" color=#0000ff&gt;&lt;FONT face="Courier New" color=#0000ff&gt;&lt;FONT face="Courier New" color=#0000ff&gt;Exe &lt;FONT color=#000000&gt;RoundedRect&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;&lt;FONT face="Courier New"&gt;&lt;FONT face="Courier New"&gt;.Png&lt;BR&gt;&amp;nbsp;&lt;BR&gt;&amp;nbsp;&lt;BR&gt;&amp;nbsp;&lt;BR&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Courier New" color=#0000ff&gt;&lt;FONT face="Courier New" color=#0000ff&gt;&lt;FONT face="Courier New" color=#0000ff&gt;FUNCTION &lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Courier New"&gt;&lt;FONT face="Courier New"&gt;DrawRoundRect(toGfx &lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Courier New" color=#0000ff&gt;&lt;FONT face="Courier New" color=#0000ff&gt;&lt;FONT face="Courier New" color=#0000ff&gt;as &lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Courier New"&gt;&lt;FONT face="Courier New"&gt;xfcGraphics, toPen &lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Courier New" color=#0000ff&gt;&lt;FONT face="Courier New" color=#0000ff&gt;&lt;FONT face="Courier New" color=#0000ff&gt;as &lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Courier New"&gt;&lt;FONT face="Courier New" size=2&gt;xfcPen, ;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; tnX, tnY, tnWidth, tnHeight, tnRadius)&lt;BR&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Courier New" color=#008000&gt;&lt;FONT face="Courier New" color=#008000&gt;&lt;FONT face="Courier New" color=#008000 size=2&gt;&amp;nbsp;&amp;nbsp; * Adapted by Cesar from Bob Powell's sample taken from&lt;BR&gt;&amp;nbsp;&amp;nbsp; * &lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;U&gt;&lt;FONT face="Courier New"&gt;&lt;FONT face="Courier New"&gt;&lt;FONT size=2&gt;&lt;A href="http://www.bobpowell.net/roundrects.htm"&gt;http://www.bobpowell.net/roundrects.htm&lt;/A&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/U&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT size=2&gt;&lt;FONT face="Courier New" color=#0000ff&gt;&lt;FONT face="Courier New" color=#0000ff&gt;&lt;FONT face="Courier New" color=#0000ff&gt;&amp;nbsp;&amp;nbsp; LOCAL &lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Courier New"&gt;&lt;FONT face="Courier New"&gt;loGPath &lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Courier New" color=#0000ff&gt;&lt;FONT face="Courier New" color=#0000ff&gt;&lt;FONT face="Courier New" color=#0000ff&gt;as &lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;&lt;FONT face="Courier New"&gt;&lt;FONT face="Courier New"&gt;xfcGraphicsPath&lt;BR&gt;&amp;nbsp;&amp;nbsp; loGPath = &lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Courier New" color=#0000ff&gt;&lt;FONT face="Courier New" color=#0000ff&gt;&lt;FONT face="Courier New" color=#0000ff&gt;_Screen&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Courier New"&gt;&lt;FONT face="Courier New"&gt;.&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Courier New" color=#0000ff&gt;&lt;FONT face="Courier New" color=#0000ff&gt;&lt;FONT face="Courier New" color=#0000ff&gt;System&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;&lt;FONT face="Courier New"&gt;&lt;FONT face="Courier New"&gt;.Drawing.Drawing2D.GraphicsPath.New()&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT size=2&gt;&lt;FONT face="Courier New" color=#0000ff&gt;&lt;FONT face="Courier New" color=#0000ff&gt;&lt;FONT face="Courier New" color=#0000ff&gt;&amp;nbsp;&amp;nbsp; WITH &lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Courier New"&gt;&lt;FONT face="Courier New" size=2&gt;loGPath&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; .AddLine(tnX + tnRadius, tnY, tnX + tnWidth - (tnRadius*2), tnY)&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; .AddArc(tnX + tnWidth - (tnRadius*2), tnY, tnRadius*2, tnRadius*2, 270, 90)&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; .AddLine(tnX + tnWidth, tnY + tnRadius, tnX + tnWidth, tnY + tnHeight - (tnRadius*2))&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; .AddArc(tnX + tnWidth - (tnRadius*2), tnY + tnHeight - (tnRadius*2), tnRadius*2, tnRadius*2,0,90)&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; .AddLine(tnX + tnWidth - (tnRadius*2), tnY + tnHeight, tnX + tnRadius, tnY + tnHeight)&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; .AddArc(tnX, tnY + tnHeight - (tnRadius*2), tnRadius*2, tnRadius*2, 90, 90)&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; .AddLine(tnX, tnY + tnHeight - (tnRadius*2), tnX, tnY + tnRadius)&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; .AddArc(tnX, tnY, tnRadius*2, tnRadius*2, 180, 90)&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; .CloseFigure()&lt;BR&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Courier New" color=#0000ff&gt;&lt;FONT face="Courier New" color=#0000ff&gt;&lt;FONT face="Courier New" color=#0000ff size=2&gt;&amp;nbsp;&amp;nbsp; ENDWITH &lt;BR&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Courier New"&gt;&lt;FONT face="Courier New" size=2&gt;&amp;nbsp;&amp;nbsp; toGfx.DrawPath(toPen, loGPath)&lt;BR&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Courier New" color=#0000ff size=5&gt;&lt;FONT face="Courier New" color=#0000ff size=5&gt;&lt;FONT face="Courier New" color=#0000ff size=5&gt;&lt;FONT size=2&gt;ENDFUNC&lt;/FONT&gt;&lt;BR&gt;&lt;/P&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;
&lt;P&gt;Notice that the above function receives a xfcPen object to draw the rounded rectangle. In order to draw a FILLED rounded rectangle, all we need is to add a small tweak in the above function&amp;nbsp;to use a Brush object instead a Pen, and call the FillPath function instead of DrawPath.&lt;/P&gt;
&lt;P&gt;I leave this easy exercise to you :-D&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;img src="http://weblogs.foxite.com/aggbug.aspx?PostID=8722" width="1" height="1"&gt;</description><category domain="http://weblogs.foxite.com/vfpimaging/archive/category/187.aspx">GDI+ AND IMAGES</category></item><item><title>Drawing shapes using the PolyPoints property</title><link>http://weblogs.foxite.com/vfpimaging/archive/2009/07/06/8590.aspx</link><pubDate>Mon, 06 Jul 2009 03:14:00 GMT</pubDate><guid isPermaLink="false">8827bd1c-7596-4a8f-b0de-f59ce9ede522:8590</guid><dc:creator>cesarchalom</dc:creator><slash:comments>0</slash:comments><comments>http://weblogs.foxite.com/vfpimaging/comments/8590.aspx</comments><wfw:commentRss>http://weblogs.foxite.com/vfpimaging/commentrss.aspx?PostID=8590</wfw:commentRss><wfw:comment>http://weblogs.foxite.com/rsscomments/8590.aspx</wfw:comment><description>&lt;P&gt;VFP9 brought a new property that allows us to draw all kinds of shapes, without the need of any external component, even a single Windoes API call.&lt;/P&gt;
&lt;P&gt;According to the &lt;A href="http://msdn.microsoft.com/en-us/library/sc8z53w4(VS.80).aspx"&gt;VFP9 Help&lt;/A&gt;, The &lt;A href="http://msdn.microsoft.com/en-us/library/sc8z53w4(VS.80).aspx"&gt;PolyPoints property&lt;/A&gt; of the Shape control "specifies an array of coordinates for creating polygon shapes using the &lt;B&gt;Shape&lt;/B&gt; control and polygon lines using the &lt;B&gt;Line&lt;/B&gt; control. Read/write at design time and run time. For &lt;B&gt;Shape&lt;/B&gt; controls, &lt;B&gt;PolyPoints&lt;/B&gt; creates a polygon shape."&lt;/P&gt;
&lt;P&gt;MVP Luis Maria Guayan from Argentina&amp;nbsp;already did an amazing job using the polypoints property, in 2 articles.&lt;/P&gt;
&lt;P&gt;&lt;A href="http://www.portalfox.com/index.php?name=News&amp;amp;file=article&amp;amp;sid=1849&amp;amp;theme=Printer"&gt;Dibujando polígonos con VFP 9.0&lt;/A&gt; - a simple article with some samples showing how we can draw a TRaiangle and an Ogtogon. The article is in spanish, but it is very simple to run&amp;nbsp;the provided samples and reproduce the proposed result.&lt;/P&gt;
&lt;P&gt;The 2nd one, &lt;A href="http://www.portalfox.com/index.php?name=News&amp;amp;file=article&amp;amp;sid=2211&amp;amp;theme=Printer"&gt;Gráficas con objetos 100% VFP&lt;/A&gt;, is a real masterpiece, where he uses the polypoints property to create chart shapes, providing a very nice charting tool. Download the source code and play with the samples, amazing !&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Using the PolyPoints property we can also draw rounded shapes, pie slices, circles and ellipses.&lt;/P&gt;
&lt;P&gt;Create an empty form, size it the way you like, and paste the following code to the INIT() event, to reproduce the shape below:&lt;/P&gt;
&lt;P&gt;&lt;IMG src="/photos/cesarchalom/images/8591/original.aspx" border=0&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT size=2&gt;&lt;FONT face="Courier New" color=#0000ff&gt;&lt;FONT face="Courier New" color=#0000ff&gt;&lt;FONT face="Courier New" color=#0000ff&gt;Thisform&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Courier New"&gt;&lt;FONT face="Courier New"&gt;.&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Courier New" color=#0000ff&gt;&lt;FONT face="Courier New" color=#0000ff&gt;&lt;FONT face="Courier New" color=#0000ff&gt;AddObject&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Courier New"&gt;&lt;FONT face="Courier New" size=2&gt;("Shape1", "Shape")&lt;BR&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;&lt;FONT face="Courier New" color=#008000&gt;&lt;FONT face="Courier New" color=#008000&gt;&lt;FONT face="Courier New" color=#008000&gt;* Add a shape object to the current form &lt;BR&gt;* and set some basic properties&lt;BR&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Courier New" color=#0000ff&gt;&lt;FONT face="Courier New" color=#0000ff&gt;&lt;FONT face="Courier New" color=#0000ff&gt;LOCAL &lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Courier New"&gt;&lt;FONT face="Courier New"&gt;loShape &lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;&lt;FONT face="Courier New" color=#0000ff&gt;&lt;FONT face="Courier New" color=#0000ff&gt;&lt;FONT face="Courier New" color=#0000ff&gt;as Shape &lt;BR&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Courier New"&gt;&lt;FONT face="Courier New"&gt;loShape = &lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Courier New" color=#0000ff&gt;&lt;FONT face="Courier New" color=#0000ff&gt;&lt;FONT face="Courier New" color=#0000ff&gt;Thisform&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;&lt;FONT face="Courier New"&gt;&lt;FONT face="Courier New"&gt;.Shape1&lt;BR&gt;loShape.&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Courier New" color=#0000ff&gt;&lt;FONT face="Courier New" color=#0000ff&gt;&lt;FONT face="Courier New" color=#0000ff&gt;Width &lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Courier New"&gt;&lt;FONT face="Courier New"&gt;= &lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Courier New" color=#0000ff&gt;&lt;FONT face="Courier New" color=#0000ff&gt;&lt;FONT face="Courier New" color=#0000ff&gt;Thisform&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Courier New"&gt;&lt;FONT face="Courier New"&gt;.&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;&lt;FONT face="Courier New" color=#0000ff&gt;&lt;FONT face="Courier New" color=#0000ff&gt;&lt;FONT face="Courier New" color=#0000ff&gt;Width&lt;BR&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Courier New"&gt;&lt;FONT face="Courier New"&gt;loShape.&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Courier New" color=#0000ff&gt;&lt;FONT face="Courier New" color=#0000ff&gt;&lt;FONT face="Courier New" color=#0000ff&gt;Height &lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Courier New"&gt;&lt;FONT face="Courier New"&gt;= &lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Courier New" color=#0000ff&gt;&lt;FONT face="Courier New" color=#0000ff&gt;&lt;FONT face="Courier New" color=#0000ff&gt;Thisform&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Courier New"&gt;&lt;FONT face="Courier New"&gt;.&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;&lt;FONT face="Courier New" color=#0000ff&gt;&lt;FONT face="Courier New" color=#0000ff&gt;&lt;FONT face="Courier New" color=#0000ff&gt;Height&lt;BR&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Courier New"&gt;&lt;FONT face="Courier New"&gt;loShape.&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Courier New" color=#0000ff&gt;&lt;FONT face="Courier New" color=#0000ff&gt;&lt;FONT face="Courier New" color=#0000ff&gt;Anchor &lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Courier New"&gt;&lt;FONT face="Courier New"&gt;= 15 &lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;&lt;FONT face="Courier New" color=#008000&gt;&lt;FONT face="Courier New" color=#008000&gt;&lt;FONT face="Courier New" color=#008000&gt;&amp;amp;&amp;amp; Resize Width and Height&lt;BR&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Courier New"&gt;&lt;FONT face="Courier New"&gt;loShape.&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Courier New" color=#0000ff&gt;&lt;FONT face="Courier New" color=#0000ff&gt;&lt;FONT face="Courier New" color=#0000ff&gt;BackColor &lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Courier New"&gt;&lt;FONT face="Courier New"&gt;= &lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Courier New" color=#0000ff&gt;&lt;FONT face="Courier New" color=#0000ff&gt;&lt;FONT face="Courier New" color=#0000ff&gt;RGB&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;&lt;FONT face="Courier New"&gt;&lt;FONT face="Courier New"&gt;(255,0,0)&lt;BR&gt;loShape.&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Courier New" color=#0000ff&gt;&lt;FONT face="Courier New" color=#0000ff&gt;&lt;FONT face="Courier New" color=#0000ff&gt;PolyPoints &lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Courier New"&gt;&lt;FONT face="Courier New"&gt;= "aPoly" &lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;&lt;FONT face="Courier New" color=#008000&gt;&lt;FONT face="Courier New" color=#008000&gt;&lt;FONT face="Courier New" color=#008000&gt;&amp;amp;&amp;amp; Array of points&lt;BR&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Courier New"&gt;&lt;FONT face="Courier New"&gt;loShape.&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Courier New" color=#0000ff&gt;&lt;FONT face="Courier New" color=#0000ff&gt;&lt;FONT face="Courier New" color=#0000ff&gt;Visible &lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Courier New"&gt;&lt;FONT face="Courier New" size=2&gt;= .T. &lt;BR&gt;&amp;nbsp;&lt;BR&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;&lt;FONT face="Courier New" color=#008000&gt;&lt;FONT face="Courier New" color=#008000&gt;&lt;FONT face="Courier New" color=#008000&gt;* Defining the PolyPoints array&lt;BR&gt;* Change the values of lnStart and lnFinal to determine&lt;BR&gt;* the angle of the pie slice&lt;BR&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Courier New" color=#0000ff&gt;&lt;FONT face="Courier New" color=#0000ff&gt;&lt;FONT face="Courier New" color=#0000ff&gt;LOCAL &lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;&lt;FONT face="Courier New"&gt;&lt;FONT face="Courier New"&gt;lnStart, lnFinal, lnSweep, n, lnRadius, lnAngle&lt;BR&gt;&lt;STRONG&gt;&lt;FONT&gt;lnStart = 0&lt;BR&gt;lnFinal = 360&lt;/FONT&gt;&lt;/STRONG&gt;&lt;BR&gt;lnSweep = lnFinal - lnStart&lt;BR&gt;lnRadius = 50&lt;BR&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Courier New" color=#0000ff&gt;&lt;FONT face="Courier New" color=#0000ff&gt;&lt;FONT face="Courier New" color=#0000ff&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT size=2&gt;&lt;FONT face="Courier New" color=#0000ff&gt;&lt;FONT face="Courier New" color=#0000ff&gt;&lt;FONT face="Courier New" color=#0000ff&gt;PUBLIC &lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;&lt;FONT face="Courier New"&gt;&lt;FONT face="Courier New"&gt;aPoly(lnSweep + 2, 2)&lt;BR&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Courier New" color=#0000ff&gt;&lt;FONT face="Courier New" color=#0000ff&gt;&lt;FONT face="Courier New" color=#0000ff&gt;FOR &lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Courier New"&gt;&lt;FONT face="Courier New"&gt;n = 1 &lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Courier New" color=#0000ff&gt;&lt;FONT face="Courier New" color=#0000ff&gt;&lt;FONT face="Courier New" color=#0000ff&gt;TO &lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;&lt;FONT face="Courier New"&gt;&lt;FONT face="Courier New"&gt;lnSweep + 1&lt;BR&gt;&amp;nbsp;&amp;nbsp; lnAngle = lnStart + n - 1&lt;BR&gt;&amp;nbsp;&amp;nbsp; aPoly(n,1) = (lnRadius * &lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Courier New" color=#0000ff&gt;&lt;FONT face="Courier New" color=#0000ff&gt;&lt;FONT face="Courier New" color=#0000ff&gt;COS&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Courier New"&gt;&lt;FONT face="Courier New"&gt;(&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Courier New" color=#0000ff&gt;&lt;FONT face="Courier New" color=#0000ff&gt;&lt;FONT face="Courier New" color=#0000ff&gt;DTOR&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;&lt;FONT face="Courier New"&gt;&lt;FONT face="Courier New"&gt;(lnAngle)) + lnRadius)&lt;BR&gt;&amp;nbsp;&amp;nbsp; aPoly(n,2) = (lnRadius * &lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Courier New" color=#0000ff&gt;&lt;FONT face="Courier New" color=#0000ff&gt;&lt;FONT face="Courier New" color=#0000ff&gt;SIN&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Courier New"&gt;&lt;FONT face="Courier New"&gt;(&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Courier New" color=#0000ff&gt;&lt;FONT face="Courier New" color=#0000ff&gt;&lt;FONT face="Courier New" color=#0000ff&gt;DTOR&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Courier New"&gt;&lt;FONT face="Courier New" size=2&gt;(lnAngle)) + lnRadius)&lt;BR&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;&lt;FONT face="Courier New" color=#0000ff&gt;&lt;FONT face="Courier New" color=#0000ff&gt;&lt;FONT face="Courier New" color=#0000ff&gt;ENDFOR&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT size=2&gt;&lt;FONT face="Courier New" color=#0000ff&gt;&lt;FONT face="Courier New" color=#0000ff&gt;&lt;FONT face="Courier New" color=#0000ff&gt;IF &lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Courier New"&gt;&lt;FONT face="Courier New"&gt;lnSweep = 360 &lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Courier New" color=#008000&gt;&lt;FONT face="Courier New" color=#008000&gt;&lt;FONT face="Courier New" color=#008000 size=2&gt;&amp;amp;&amp;amp; Closed ellipse, so dont draw the center point&lt;BR&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Courier New"&gt;&lt;FONT face="Courier New" size=2&gt;&amp;nbsp;&amp;nbsp; aPoly(n,1) = aPoly(n-1,1)&lt;BR&gt;&amp;nbsp;&amp;nbsp; aPoly(n,2) = aPoly(n-1,2)&lt;BR&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Courier New" color=#0000ff&gt;&lt;FONT face="Courier New" color=#0000ff&gt;&lt;FONT face="Courier New" color=#0000ff size=2&gt;ELSE &lt;BR&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Courier New" color=#008000&gt;&lt;FONT face="Courier New" color=#008000&gt;&lt;FONT face="Courier New" color=#008000 size=2&gt;&amp;nbsp;&amp;nbsp; * Determine the Center point &lt;BR&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Courier New"&gt;&lt;FONT face="Courier New" size=2&gt;&amp;nbsp;&amp;nbsp; aPoly(n,1) = lnRadius&lt;BR&gt;&amp;nbsp;&amp;nbsp; aPoly(n,2) = lnRadius&lt;BR&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Courier New" color=#0000ff size=5&gt;&lt;FONT face="Courier New" color=#0000ff size=5&gt;&lt;FONT face="Courier New" color=#0000ff size=5&gt;&lt;FONT size=2&gt;ENDIF&lt;/FONT&gt; &lt;BR&gt;&lt;/P&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;To obtain pie slices, just change the values of the variables lnStart and lnFinal, to determine the starting and ending angle.&lt;/P&gt;
&lt;P&gt;Here's the result if you use:&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;&lt;FONT face="Courier New" size=2&gt;lnStart = 90&lt;BR&gt;lnFinal = 210&lt;/FONT&gt;&lt;/STRONG&gt;&lt;BR&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;The very cool feature of polypoints is that it generates vectorial pictures. You can resize the form the way you like, and you'll see your shape changing accordingly. All I did for that purpose was to setup the property Anchor to the value 15 (resize width and height).&lt;/P&gt;
&lt;P&gt;&lt;IMG src="/photos/cesarchalom/images/8592/original.aspx" border=0&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;img src="http://weblogs.foxite.com/aggbug.aspx?PostID=8590" width="1" height="1"&gt;</description></item><item><title>Change the shape of your pictures with GdiPlusX</title><link>http://weblogs.foxite.com/vfpimaging/archive/2009/07/01/8580.aspx</link><pubDate>Wed, 01 Jul 2009 03:46:00 GMT</pubDate><guid isPermaLink="false">8827bd1c-7596-4a8f-b0de-f59ce9ede522:8580</guid><dc:creator>cesarchalom</dc:creator><slash:comments>0</slash:comments><comments>http://weblogs.foxite.com/vfpimaging/comments/8580.aspx</comments><wfw:commentRss>http://weblogs.foxite.com/vfpimaging/commentrss.aspx?PostID=8580</wfw:commentRss><wfw:comment>http://weblogs.foxite.com/rsscomments/8580.aspx</wfw:comment><description>&lt;P&gt;&lt;FONT face=Verdana&gt;The samples below use the &lt;/FONT&gt;&lt;A href="http://msdn.microsoft.com/en-us/library/k4b8da49.aspx"&gt;&lt;FONT face=Verdana&gt;Graphics.SetClip&lt;/FONT&gt;&lt;/A&gt;&lt;FONT face=Verdana&gt; function to draw shaped borders in your pictures.&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Verdana&gt;The trick here is to use the &lt;/FONT&gt;&lt;A href="http://msdn.microsoft.com/en-us/library/system.drawing.drawing2d.combinemode.aspx"&gt;&lt;FONT face=Verdana&gt;CombineMode.XOR&lt;/FONT&gt;&lt;/A&gt;&lt;FONT face=Verdana&gt; enumeration, that forces the drawing to the external part of the shape, like in the samples below.&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Verdana&gt;Playing with the source image below:&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;IMG src="/photos/cesarchalom/images/8576/original.aspx"&gt; &lt;/P&gt;
&lt;P&gt;&lt;FONT face=Verdana&gt;&lt;STRONG&gt;Prerequisites&lt;/STRONG&gt;&lt;BR&gt;Visual FoxPro 9 and the GdiPlusX library from VFPX&amp;nbsp;&lt;IMG src="http://www.codeplex.com/VFPX/Project/FileDownload.aspx?DownloadId=3280"&gt; &lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Verdana&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Verdana&gt;Please make sure that you have the latest version, because this sample may be using&amp;nbsp;some functions that were added or fixed recently. &lt;BR&gt;&lt;/FONT&gt;&lt;A href="http://www.codeplex.com/VFPX/Wiki/View.aspx?title=GDIPlusX&amp;amp;referringTitle=Home"&gt;&lt;FONT face=Verdana color=#02469b&gt;http://www.codeplex.com/VFPX/Wiki/View.aspx?title=GDIPlusX&amp;amp;referringTitle=Home&lt;/FONT&gt;&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Verdana&gt;&lt;/FONT&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;&lt;FONT face=Verdana&gt;Sample 1: Ellipse shape&lt;/FONT&gt;&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Courier New" color=#0000ff&gt;&lt;FONT face="Courier New" color=#0000ff&gt;&lt;FONT face="Courier New" color=#0000ff size=2&gt;DO LOCFILE&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;&lt;FONT face="Courier New"&gt;&lt;FONT face="Courier New"&gt;("System.app")&lt;BR&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Courier New" color=#0000ff&gt;&lt;FONT face="Courier New" color=#0000ff&gt;&lt;FONT face="Courier New" color=#0000ff&gt;WITH _Screen&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Courier New"&gt;&lt;FONT face="Courier New"&gt;.&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Courier New" color=#0000ff&gt;&lt;FONT face="Courier New" color=#0000ff&gt;&lt;FONT face="Courier New" color=#0000ff&gt;System&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Courier New"&gt;&lt;FONT face="Courier New" size=2&gt;.Drawing&lt;BR&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;&lt;FONT face="Courier New" color=#008000&gt;&lt;FONT face="Courier New" color=#008000&gt;&lt;FONT face="Courier New" color=#008000&gt;* Get an image file&lt;BR&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Courier New" color=#0000ff&gt;&lt;FONT face="Courier New" color=#0000ff&gt;&lt;FONT face="Courier New" color=#0000ff&gt;LOCAL &lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Courier New"&gt;&lt;FONT face="Courier New"&gt;loBmp &lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Courier New" color=#0000ff&gt;&lt;FONT face="Courier New" color=#0000ff&gt;&lt;FONT face="Courier New" color=#0000ff&gt;as &lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;&lt;FONT face="Courier New"&gt;&lt;FONT face="Courier New"&gt;xfcBitmap&lt;BR&gt;loBmp = .&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Courier New" color=#0000ff&gt;&lt;FONT face="Courier New" color=#0000ff&gt;&lt;FONT face="Courier New" color=#0000ff&gt;Bitmap&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Courier New"&gt;&lt;FONT face="Courier New"&gt;.FromFile(&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Courier New" color=#0000ff&gt;&lt;FONT face="Courier New" color=#0000ff&gt;&lt;FONT face="Courier New" color=#0000ff&gt;GETPICT&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Courier New"&gt;&lt;FONT face="Courier New" size=2&gt;())&lt;BR&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;&lt;FONT face="Courier New" color=#008000&gt;&lt;FONT face="Courier New" color=#008000&gt;&lt;FONT face="Courier New" color=#008000&gt;* Create a Gfx object that will allow us to make the transformation&lt;BR&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Courier New" color=#0000ff&gt;&lt;FONT face="Courier New" color=#0000ff&gt;&lt;FONT face="Courier New" color=#0000ff&gt;LOCAL &lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Courier New"&gt;&lt;FONT face="Courier New"&gt;loGfx &lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Courier New" color=#0000ff&gt;&lt;FONT face="Courier New" color=#0000ff&gt;&lt;FONT face="Courier New" color=#0000ff&gt;as &lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;&lt;FONT face="Courier New"&gt;&lt;FONT face="Courier New"&gt;xfcGraphics&lt;BR&gt;loGfx = .Graphics.FromImage(loBmp)&lt;BR&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Courier New" color=#0000ff&gt;&lt;FONT face="Courier New" color=#0000ff&gt;&lt;FONT face="Courier New" color=#0000ff&gt;LOCAL &lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Courier New"&gt;&lt;FONT face="Courier New" size=2&gt;lnWidth, lnHeight&lt;BR&gt;lnWidth = loBmp.&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;&lt;FONT face="Courier New" color=#0000ff&gt;&lt;FONT face="Courier New" color=#0000ff&gt;&lt;FONT face="Courier New" color=#0000ff&gt;Width &lt;BR&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Courier New"&gt;&lt;FONT face="Courier New"&gt;lnHeight = loBmp.&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Courier New" color=#0000ff&gt;&lt;FONT face="Courier New" color=#0000ff&gt;&lt;FONT face="Courier New" color=#0000ff size=2&gt;Height &lt;BR&gt;&amp;nbsp;&lt;BR&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;&lt;FONT face="Courier New" color=#008000&gt;&lt;FONT face="Courier New" color=#008000&gt;&lt;FONT face="Courier New" color=#008000&gt;* Create GraphicsPath object.&lt;BR&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Courier New" color=#0000ff&gt;&lt;FONT face="Courier New" color=#0000ff&gt;&lt;FONT face="Courier New" color=#0000ff&gt;LOCAL &lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Courier New"&gt;&lt;FONT face="Courier New"&gt;loClipPath &lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Courier New" color=#0000ff&gt;&lt;FONT face="Courier New" color=#0000ff&gt;&lt;FONT face="Courier New" color=#0000ff&gt;as &lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Courier New"&gt;&lt;FONT face="Courier New" size=2&gt;xfcGraphicsPath&lt;BR&gt;loClipPath = .Drawing2D.GraphicsPath.New()&lt;BR&gt;&amp;nbsp;&lt;BR&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Courier New" color=#008000&gt;&lt;FONT face="Courier New" color=#008000&gt;&lt;FONT face="Courier New" color=#008000 size=2&gt;* An Ellipse shape&lt;BR&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Courier New"&gt;&lt;FONT face="Courier New" size=2&gt;loClipPath.AddEllipse(0, 0, lnWidth, lnHeight)&lt;BR&gt;&amp;nbsp;&lt;BR&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Courier New"&gt;&lt;FONT face="Courier New" size=2&gt;&amp;nbsp;&lt;BR&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Courier New" color=#008000&gt;&lt;FONT face="Courier New" color=#008000&gt;&lt;FONT face="Courier New" color=#008000 size=2&gt;* Set clipping region to path.&lt;BR&gt;* CombineMode enumeration&lt;BR&gt;* &lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;U&gt;&lt;FONT face="Courier New"&gt;&lt;FONT face="Courier New"&gt;&lt;FONT size=2&gt;http://msdn.microsoft.com/en-us/library/system.drawing.drawing2d.combinemode.aspx&lt;BR&gt;&lt;/FONT&gt;&lt;/U&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Courier New" color=#008000&gt;&lt;FONT face="Courier New" color=#008000&gt;&lt;FONT face="Courier New" color=#008000 size=2&gt;* CombineMode.Xor - Two clipping regions are combined by taking only the areas &lt;BR&gt;* enclosed by one or the other region, but not both. &lt;BR&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;&lt;FONT face="Courier New"&gt;&lt;FONT face="Courier New"&gt;loGfx.SetClip(loClipPath, ;&lt;BR&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Courier New" color=#0000ff&gt;&lt;FONT face="Courier New" color=#0000ff&gt;&lt;FONT face="Courier New" color=#0000ff&gt;_Screen&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Courier New"&gt;&lt;FONT face="Courier New"&gt;.&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Courier New" color=#0000ff&gt;&lt;FONT face="Courier New" color=#0000ff&gt;&lt;FONT face="Courier New" color=#0000ff&gt;System&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Courier New"&gt;&lt;FONT face="Courier New" size=2&gt;.Drawing.Drawing2D.CombineMode.Xor)&lt;BR&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;&lt;FONT face="Courier New" color=#008000&gt;&lt;FONT face="Courier New" color=#008000&gt;&lt;FONT face="Courier New" color=#008000&gt;* Fill rectangle to demonstrate clipping region.&lt;BR&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Courier New"&gt;&lt;FONT face="Courier New"&gt;loGfx.FillRectangle( .Brushes.White, 0, 0, loBmp.&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Courier New" color=#0000ff&gt;&lt;FONT face="Courier New" color=#0000ff&gt;&lt;FONT face="Courier New" color=#0000ff&gt;Width&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Courier New"&gt;&lt;FONT face="Courier New"&gt;, loBmp.&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Courier New" color=#0000ff&gt;&lt;FONT face="Courier New" color=#0000ff&gt;&lt;FONT face="Courier New" color=#0000ff&gt;Height&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Courier New"&gt;&lt;FONT face="Courier New" size=2&gt;)&lt;BR&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;&lt;FONT face="Courier New" color=#008000&gt;&lt;FONT face="Courier New" color=#008000&gt;&lt;FONT face="Courier New" color=#008000&gt;* Save the image to the disk and show&lt;BR&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Courier New"&gt;&lt;FONT face="Courier New"&gt;loBmp.&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Courier New" color=#0000ff&gt;&lt;FONT face="Courier New" color=#0000ff&gt;&lt;FONT face="Courier New" color=#0000ff&gt;Save&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;&lt;FONT face="Courier New"&gt;&lt;FONT face="Courier New"&gt;("Clipped.Jpg", "image/jpeg")&lt;BR&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Courier New" color=#0000ff&gt;&lt;FONT face="Courier New" color=#0000ff&gt;&lt;FONT face="Courier New" color=#0000ff&gt;RUN &lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Courier New"&gt;&lt;FONT face="Courier New"&gt;/n Explorer.&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Courier New" color=#0000ff&gt;&lt;FONT face="Courier New" color=#0000ff&gt;&lt;FONT face="Courier New" color=#0000ff&gt;Exe &lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Courier New"&gt;&lt;FONT face="Courier New" size=2&gt;Clipped.Jpg&lt;BR&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Courier New" color=#0000ff&gt;&lt;FONT face="Courier New" color=#0000ff&gt;&lt;FONT face="Courier New" color=#0000ff size=2&gt;ENDWITH&lt;BR&gt;&lt;/P&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Courier New" color=#0000ff&gt;&lt;FONT face="Courier New" color=#0000ff&gt;&lt;FONT face="Courier New" color=#0000ff&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;
&lt;P&gt;&lt;FONT size=2&gt;&lt;IMG src="/photos/cesarchalom/images/8577/original.aspx"&gt; &lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Courier New" color=#0000ff&gt;&lt;FONT face="Courier New" color=#0000ff&gt;&lt;FONT face="Courier New" color=#0000ff size=2&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Courier New" color=#0000ff&gt;&lt;FONT face="Courier New" color=#0000ff&gt;&lt;FONT face="Courier New" color=#0000ff size=2&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Courier New" color=#0000ff&gt;&lt;FONT face="Courier New" color=#0000ff&gt;&lt;FONT face="Courier New" color=#0000ff size=2&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Courier New" color=#0000ff&gt;&lt;FONT face="Courier New" color=#0000ff&gt;&lt;FONT face="Courier New" color=#0000ff size=2&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Courier New" color=#0000ff&gt;&lt;FONT face="Courier New" color=#0000ff&gt;&lt;FONT face="Courier New" color=#0000ff size=2&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Courier New" color=#0000ff&gt;&lt;FONT face="Courier New" color=#0000ff&gt;&lt;FONT face="Courier New" color=#0000ff size=2&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;&lt;FONT face=Verdana&gt;Sample 2: Doughnut shape&lt;/FONT&gt;&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Courier New" color=#0000ff&gt;&lt;FONT face="Courier New" color=#0000ff&gt;&lt;FONT face="Courier New" color=#0000ff size=2&gt;DO LOCFILE&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;&lt;FONT face="Courier New"&gt;&lt;FONT face="Courier New"&gt;("System.app")&lt;BR&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Courier New" color=#0000ff&gt;&lt;FONT face="Courier New" color=#0000ff&gt;&lt;FONT face="Courier New" color=#0000ff&gt;WITH _Screen&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Courier New"&gt;&lt;FONT face="Courier New"&gt;.&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Courier New" color=#0000ff&gt;&lt;FONT face="Courier New" color=#0000ff&gt;&lt;FONT face="Courier New" color=#0000ff&gt;System&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Courier New"&gt;&lt;FONT face="Courier New" size=2&gt;.Drawing&lt;BR&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;&lt;FONT face="Courier New" color=#008000&gt;&lt;FONT face="Courier New" color=#008000&gt;&lt;FONT face="Courier New" color=#008000&gt;* Get an image file&lt;BR&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Courier New" color=#0000ff&gt;&lt;FONT face="Courier New" color=#0000ff&gt;&lt;FONT face="Courier New" color=#0000ff&gt;LOCAL &lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Courier New"&gt;&lt;FONT face="Courier New"&gt;loBmp &lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Courier New" color=#0000ff&gt;&lt;FONT face="Courier New" color=#0000ff&gt;&lt;FONT face="Courier New" color=#0000ff&gt;as &lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;&lt;FONT face="Courier New"&gt;&lt;FONT face="Courier New"&gt;xfcBitmap&lt;BR&gt;loBmp = .&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Courier New" color=#0000ff&gt;&lt;FONT face="Courier New" color=#0000ff&gt;&lt;FONT face="Courier New" color=#0000ff&gt;Bitmap&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Courier New"&gt;&lt;FONT face="Courier New"&gt;.FromFile(&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Courier New" color=#0000ff&gt;&lt;FONT face="Courier New" color=#0000ff&gt;&lt;FONT face="Courier New" color=#0000ff&gt;GETPICT&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Courier New"&gt;&lt;FONT face="Courier New" size=2&gt;())&lt;BR&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;&lt;FONT face="Courier New" color=#008000&gt;&lt;FONT face="Courier New" color=#008000&gt;&lt;FONT face="Courier New" color=#008000&gt;* Create a Gfx object that will allow us to make the transformation&lt;BR&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Courier New" color=#0000ff&gt;&lt;FONT face="Courier New" color=#0000ff&gt;&lt;FONT face="Courier New" color=#0000ff&gt;LOCAL &lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Courier New"&gt;&lt;FONT face="Courier New"&gt;loGfx &lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Courier New" color=#0000ff&gt;&lt;FONT face="Courier New" color=#0000ff&gt;&lt;FONT face="Courier New" color=#0000ff&gt;as &lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;&lt;FONT face="Courier New"&gt;&lt;FONT face="Courier New"&gt;xfcGraphics&lt;BR&gt;loGfx = .Graphics.FromImage(loBmp)&lt;BR&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Courier New" color=#0000ff&gt;&lt;FONT face="Courier New" color=#0000ff&gt;&lt;FONT face="Courier New" color=#0000ff&gt;LOCAL &lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Courier New"&gt;&lt;FONT face="Courier New" size=2&gt;lnWidth, lnHeight&lt;BR&gt;lnWidth = loBmp.&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;&lt;FONT face="Courier New" color=#0000ff&gt;&lt;FONT face="Courier New" color=#0000ff&gt;&lt;FONT face="Courier New" color=#0000ff&gt;Width &lt;BR&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Courier New"&gt;&lt;FONT face="Courier New"&gt;lnHeight = loBmp.&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Courier New" color=#0000ff&gt;&lt;FONT face="Courier New" color=#0000ff&gt;&lt;FONT face="Courier New" color=#0000ff size=2&gt;Height &lt;BR&gt;&amp;nbsp;&lt;BR&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;&lt;FONT face="Courier New" color=#008000&gt;&lt;FONT face="Courier New" color=#008000&gt;&lt;FONT face="Courier New" color=#008000&gt;* Create GraphicsPath object.&lt;BR&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Courier New" color=#0000ff&gt;&lt;FONT face="Courier New" color=#0000ff&gt;&lt;FONT face="Courier New" color=#0000ff&gt;LOCAL &lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Courier New"&gt;&lt;FONT face="Courier New"&gt;loClipPath &lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Courier New" color=#0000ff&gt;&lt;FONT face="Courier New" color=#0000ff&gt;&lt;FONT face="Courier New" color=#0000ff&gt;as &lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Courier New"&gt;&lt;FONT face="Courier New" size=2&gt;xfcGraphicsPath&lt;BR&gt;loClipPath = .Drawing2D.GraphicsPath.New()&lt;BR&gt;&amp;nbsp;&lt;BR&gt;&amp;nbsp;&lt;BR&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Courier New" color=#008000&gt;&lt;FONT face="Courier New" color=#008000&gt;&lt;FONT face="Courier New" color=#008000 size=2&gt;* A Doughnut slice shape&lt;BR&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Courier New"&gt;&lt;FONT face="Courier New" size=2&gt;loClipPath.AddEllipse(0, 0, lnWidth, lnHeight * 2)&lt;BR&gt;loClipPath.AddEllipse(lnWidth / 4, lnHeight / 2, lnWidth/2, lnHeight * 4)&lt;BR&gt;&amp;nbsp;&lt;BR&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Courier New"&gt;&lt;FONT face="Courier New" size=2&gt;&amp;nbsp;&lt;BR&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Courier New" color=#008000&gt;&lt;FONT face="Courier New" color=#008000&gt;&lt;FONT face="Courier New" color=#008000 size=2&gt;* Set clipping region to path.&lt;BR&gt;* CombineMode enumeration&lt;BR&gt;* &lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;U&gt;&lt;FONT face="Courier New"&gt;&lt;FONT face="Courier New"&gt;&lt;FONT size=2&gt;http://msdn.microsoft.com/en-us/library/system.drawing.drawing2d.combinemode.aspx&lt;BR&gt;&lt;/FONT&gt;&lt;/U&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Courier New" color=#008000&gt;&lt;FONT face="Courier New" color=#008000&gt;&lt;FONT face="Courier New" color=#008000 size=2&gt;* CombineMode.Xor - Two clipping regions are combined by taking only the areas &lt;BR&gt;* enclosed by one or the other region, but not both. &lt;BR&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;&lt;FONT face="Courier New"&gt;&lt;FONT face="Courier New"&gt;loGfx.SetClip(loClipPath, ;&lt;BR&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Courier New" color=#0000ff&gt;&lt;FONT face="Courier New" color=#0000ff&gt;&lt;FONT face="Courier New" color=#0000ff&gt;_Screen&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Courier New"&gt;&lt;FONT face="Courier New"&gt;.&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Courier New" color=#0000ff&gt;&lt;FONT face="Courier New" color=#0000ff&gt;&lt;FONT face="Courier New" color=#0000ff&gt;System&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Courier New"&gt;&lt;FONT face="Courier New" size=2&gt;.Drawing.Drawing2D.CombineMode.Xor)&lt;BR&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;&lt;FONT face="Courier New" color=#008000&gt;&lt;FONT face="Courier New" color=#008000&gt;&lt;FONT face="Courier New" color=#008000&gt;* Fill rectangle to demonstrate clipping region.&lt;BR&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Courier New"&gt;&lt;FONT face="Courier New"&gt;loGfx.FillRectangle( .Brushes.White, 0, 0, loBmp.&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Courier New" color=#0000ff&gt;&lt;FONT face="Courier New" color=#0000ff&gt;&lt;FONT face="Courier New" color=#0000ff&gt;Width&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Courier New"&gt;&lt;FONT face="Courier New"&gt;, loBmp.&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Courier New" color=#0000ff&gt;&lt;FONT face="Courier New" color=#0000ff&gt;&lt;FONT face="Courier New" color=#0000ff&gt;Height&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Courier New"&gt;&lt;FONT face="Courier New" size=2&gt;)&lt;BR&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;&lt;FONT face="Courier New" color=#008000&gt;&lt;FONT face="Courier New" color=#008000&gt;&lt;FONT face="Courier New" color=#008000&gt;* Save the image to the disk and show&lt;BR&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Courier New"&gt;&lt;FONT face="Courier New"&gt;loBmp.&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Courier New" color=#0000ff&gt;&lt;FONT face="Courier New" color=#0000ff&gt;&lt;FONT face="Courier New" color=#0000ff&gt;Save&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;&lt;FONT face="Courier New"&gt;&lt;FONT face="Courier New"&gt;("Clipped.Jpg", "image/jpeg")&lt;BR&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Courier New" color=#0000ff&gt;&lt;FONT face="Courier New" color=#0000ff&gt;&lt;FONT face="Courier New" color=#0000ff&gt;RUN &lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Courier New"&gt;&lt;FONT face="Courier New"&gt;/n Explorer.&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Courier New" color=#0000ff&gt;&lt;FONT face="Courier New" color=#0000ff&gt;&lt;FONT face="Courier New" color=#0000ff&gt;Exe &lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;&lt;FONT face="Courier New"&gt;&lt;FONT face="Courier New"&gt;Clipped.Jpg&lt;BR&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Courier New" color=#0000ff&gt;&lt;FONT face="Courier New" color=#0000ff&gt;&lt;FONT face="Courier New" color=#0000ff&gt;ENDWITH&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Courier New" color=#0000ff&gt;&lt;FONT face="Courier New" color=#0000ff&gt;&lt;FONT face="Courier New" color=#0000ff size=2&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;FONT size=2&gt;&lt;IMG src="/photos/cesarchalom/images/8579/original.aspx"&gt; &lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Courier New" color=#0000ff&gt;&lt;FONT face="Courier New" color=#0000ff&gt;&lt;FONT face="Courier New" color=#0000ff size=2&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Courier New" color=#0000ff size=2&gt;&lt;/FONT&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Courier New" color=#0000ff&gt;&lt;FONT face="Courier New" color=#0000ff&gt;&lt;FONT face="Courier New" color=#0000ff size=2&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;FONT size=2&gt;&lt;/FONT&gt;&lt;FONT face="Courier New" color=#0000ff&gt;&lt;FONT face="Courier New" color=#0000ff&gt;&lt;FONT face="Courier New" color=#0000ff&gt;&lt;STRONG&gt;&lt;FONT face=Verdana color=#000000&gt;Sample 3: Star shape&lt;/FONT&gt;&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;&lt;BR&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Courier New" color=#0000ff&gt;&lt;FONT face="Courier New" color=#0000ff&gt;&lt;FONT face="Courier New" color=#0000ff size=2&gt;DO LOCFILE&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;&lt;FONT face="Courier New"&gt;&lt;FONT face="Courier New"&gt;("System.app")&lt;BR&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Courier New" color=#0000ff&gt;&lt;FONT face="Courier New" color=#0000ff&gt;&lt;FONT face="Courier New" color=#0000ff&gt;WITH _Screen&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Courier New"&gt;&lt;FONT face="Courier New"&gt;.&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Courier New" color=#0000ff&gt;&lt;FONT face="Courier New" color=#0000ff&gt;&lt;FONT face="Courier New" color=#0000ff&gt;System&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Courier New"&gt;&lt;FONT face="Courier New" size=2&gt;.Drawing&lt;BR&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;&lt;FONT face="Courier New" color=#008000&gt;&lt;FONT face="Courier New" color=#008000&gt;&lt;FONT face="Courier New" color=#008000&gt;* Get an image file&lt;BR&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Courier New" color=#0000ff&gt;&lt;FONT face="Courier New" color=#0000ff&gt;&lt;FONT face="Courier New" color=#0000ff&gt;LOCAL &lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Courier New"&gt;&lt;FONT face="Courier New"&gt;loBmp &lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Courier New" color=#0000ff&gt;&lt;FONT face="Courier New" color=#0000ff&gt;&lt;FONT face="Courier New" color=#0000ff&gt;as &lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;&lt;FONT face="Courier New"&gt;&lt;FONT face="Courier New"&gt;xfcBitmap&lt;BR&gt;loBmp = .&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Courier New" color=#0000ff&gt;&lt;FONT face="Courier New" color=#0000ff&gt;&lt;FONT face="Courier New" color=#0000ff&gt;Bitmap&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Courier New"&gt;&lt;FONT face="Courier New"&gt;.FromFile(&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Courier New" color=#0000ff&gt;&lt;FONT face="Courier New" color=#0000ff&gt;&lt;FONT face="Courier New" color=#0000ff&gt;GETPICT&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Courier New"&gt;&lt;FONT face="Courier New" size=2&gt;())&lt;BR&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;&lt;FONT face="Courier New" color=#008000&gt;&lt;FONT face="Courier New" color=#008000&gt;&lt;FONT face="Courier New" color=#008000&gt;* Create a Gfx object that will allow us to make the transformation&lt;BR&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Courier New" color=#0000ff&gt;&lt;FONT face="Courier New" color=#0000ff&gt;&lt;FONT face="Courier New" color=#0000ff&gt;LOCAL &lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Courier New"&gt;&lt;FONT face="Courier New"&gt;loGfx &lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Courier New" color=#0000ff&gt;&lt;FONT face="Courier New" color=#0000ff&gt;&lt;FONT face="Courier New" color=#0000ff&gt;as &lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;&lt;FONT face="Courier New"&gt;&lt;FONT face="Courier New"&gt;xfcGraphics&lt;BR&gt;loGfx = .Graphics.FromImage(loBmp)&lt;BR&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Courier New" color=#0000ff&gt;&lt;FONT face="Courier New" color=#0000ff&gt;&lt;FONT face="Courier New" color=#0000ff&gt;LOCAL &lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Courier New"&gt;&lt;FONT face="Courier New" size=2&gt;lnWidth, lnHeight&lt;BR&gt;lnWidth = loBmp.&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;&lt;FONT face="Courier New" color=#0000ff&gt;&lt;FONT face="Courier New" color=#0000ff&gt;&lt;FONT face="Courier New" color=#0000ff&gt;Width &lt;BR&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Courier New"&gt;&lt;FONT face="Courier New"&gt;lnHeight = loBmp.&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Courier New" color=#0000ff&gt;&lt;FONT face="Courier New" color=#0000ff&gt;&lt;FONT face="Courier New" color=#0000ff size=2&gt;Height &lt;BR&gt;&amp;nbsp;&lt;BR&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;&lt;FONT face="Courier New" color=#008000&gt;&lt;FONT face="Courier New" color=#008000&gt;&lt;FONT face="Courier New" color=#008000&gt;* Create GraphicsPath object.&lt;BR&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Courier New" color=#0000ff&gt;&lt;FONT face="Courier New" color=#0000ff&gt;&lt;FONT face="Courier New" color=#0000ff&gt;LOCAL &lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Courier New"&gt;&lt;FONT face="Courier New"&gt;loClipPath &lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Courier New" color=#0000ff&gt;&lt;FONT face="Courier New" color=#0000ff&gt;&lt;FONT face="Courier New" color=#0000ff&gt;as &lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Courier New"&gt;&lt;FONT face="Courier New" size=2&gt;xfcGraphicsPath&lt;BR&gt;loClipPath = .Drawing2D.GraphicsPath.New()&lt;BR&gt;&amp;nbsp;&lt;BR&gt;&amp;nbsp;&lt;BR&gt;&amp;nbsp;&lt;BR&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Courier New" color=#008000&gt;&lt;FONT face="Courier New" color=#008000&gt;&lt;FONT face="Courier New" color=#008000 size=2&gt;* Source for the star drawing&lt;BR&gt;* &lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;U&gt;&lt;FONT face="Courier New"&gt;&lt;FONT face="Courier New"&gt;&lt;FONT size=2&gt;http://www.java2s.com/Code/VB/2D/GraphicsPathDrawwithFillModeWinding.htm&lt;BR&gt;&lt;/FONT&gt;&lt;/U&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Courier New" color=#0000ff&gt;&lt;FONT face="Courier New" color=#0000ff&gt;&lt;FONT face="Courier New" color=#0000ff size=2&gt;LOCAL &lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;&lt;FONT face="Courier New"&gt;&lt;FONT face="Courier New"&gt;lnRadius, lnPi, lnRadian72, n, lnEdges&lt;BR&gt;lnRadius = lnHeight / 2&lt;BR&gt;lnPi = 3.141592&lt;BR&gt;lnEdges = 5&lt;BR&gt;lnRadian72 = (lnPi * 4.0 ) / lnEdges&lt;BR&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Courier New" color=#0000ff&gt;&lt;FONT face="Courier New" color=#0000ff&gt;&lt;FONT face="Courier New" color=#0000ff&gt;LOCAL &lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;&lt;FONT face="Courier New"&gt;&lt;FONT face="Courier New"&gt;laPoints(lnEdges)&lt;BR&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Courier New" color=#0000ff&gt;&lt;FONT face="Courier New" color=#0000ff&gt;&lt;FONT face="Courier New" color=#0000ff&gt;FOR &lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Courier New"&gt;&lt;FONT face="Courier New"&gt;n = 1 &lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Courier New" color=#0000ff&gt;&lt;FONT face="Courier New" color=#0000ff&gt;&lt;FONT face="Courier New" color=#0000ff&gt;TO &lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;&lt;FONT face="Courier New"&gt;&lt;FONT face="Courier New"&gt;lnEdges&lt;BR&gt;laPoints(n) = .&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Courier New" color=#0000ff&gt;&lt;FONT face="Courier New" color=#0000ff&gt;&lt;FONT face="Courier New" color=#0000ff&gt;Point&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;&lt;FONT face="Courier New"&gt;&lt;FONT face="Courier New"&gt;.New(;&lt;BR&gt;+ lnRadius * &lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Courier New" color=#0000ff&gt;&lt;FONT face="Courier New" color=#0000ff&gt;&lt;FONT face="Courier New" color=#0000ff&gt;SIN&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;&lt;FONT face="Courier New"&gt;&lt;FONT face="Courier New"&gt;( n * lnRadian72 ) + lnRadius , ;&lt;BR&gt;- lnRadius * &lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Courier New" color=#0000ff&gt;&lt;FONT face="Courier New" color=#0000ff&gt;&lt;FONT face="Courier New" color=#0000ff&gt;COS&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Courier New"&gt;&lt;FONT face="Courier New" size=2&gt;( n * lnRadian72 ) + lnRadius )&lt;BR&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Courier New" color=#0000ff&gt;&lt;FONT face="Courier New" color=#0000ff&gt;&lt;FONT face="Courier New" color=#0000ff size=2&gt;ENDFOR&lt;BR&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Courier New"&gt;&lt;FONT face="Courier New" size=2&gt;loClipPath.AddPolygon(@laPoints)&lt;BR&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Courier New" color=#008000&gt;&lt;FONT face="Courier New" color=#008000&gt;&lt;FONT face="Courier New" color=#008000 size=2&gt;* Set the Clip Mode to Winding&lt;BR&gt;* ClipMode enumeration&lt;BR&gt;*&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;U&gt;&lt;FONT face="Courier New"&gt;&lt;FONT face="Courier New"&gt;&lt;FONT size=2&gt;http://msdn.microsoft.com/en-us/library/system.drawing.drawing2d.fillmode.aspx&lt;BR&gt;&lt;/FONT&gt;&lt;/U&gt;&lt;FONT size=2&gt;loClipPath.FillMode = &lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;&lt;FONT face="Courier New" color=#0000ff&gt;&lt;FONT face="Courier New" color=#0000ff&gt;&lt;FONT face="Courier New" color=#0000ff&gt;_Screen&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Courier New"&gt;&lt;FONT face="Courier New"&gt;.&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Courier New" color=#0000ff&gt;&lt;FONT face="Courier New" color=#0000ff&gt;&lt;FONT face="Courier New" color=#0000ff&gt;System&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Courier New"&gt;&lt;FONT face="Courier New" size=2&gt;.Drawing.Drawing2D.FillMode.Winding &lt;BR&gt;&amp;nbsp;&lt;BR&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Courier New" color=#008000&gt;&lt;FONT face="Courier New" color=#008000&gt;&lt;FONT face="Courier New" color=#008000 size=2&gt;* Set clipping region to path.&lt;BR&gt;* CombineMode enumeration&lt;BR&gt;* &lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;U&gt;&lt;FONT face="Courier New"&gt;&lt;FONT face="Courier New"&gt;&lt;FONT size=2&gt;http://msdn.microsoft.com/en-us/library/system.drawing.drawing2d.combinemode.aspx&lt;BR&gt;&lt;/FONT&gt;&lt;/U&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Courier New" color=#008000&gt;&lt;FONT face="Courier New" color=#008000&gt;&lt;FONT face="Courier New" color=#008000 size=2&gt;* CombineMode.Xor - Two clipping regions are combined by taking only the areas &lt;BR&gt;* enclosed by one or the other region, but not both. &lt;BR&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;&lt;FONT face="Courier New"&gt;&lt;FONT face="Courier New"&gt;loGfx.SetClip(loClipPath, ;&lt;BR&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Courier New" color=#0000ff&gt;&lt;FONT face="Courier New" color=#0000ff&gt;&lt;FONT face="Courier New" color=#0000ff&gt;_Screen&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Courier New"&gt;&lt;FONT face="Courier New"&gt;.&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Courier New" color=#0000ff&gt;&lt;FONT face="Courier New" color=#0000ff&gt;&lt;FONT face="Courier New" color=#0000ff&gt;System&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Courier New"&gt;&lt;FONT face="Courier New" size=2&gt;.Drawing.Drawing2D.CombineMode.Xor)&lt;BR&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;&lt;FONT face="Courier New" color=#008000&gt;&lt;FONT face="Courier New" color=#008000&gt;&lt;FONT face="Courier New" color=#008000&gt;* Fill rectangle to demonstrate clipping region.&lt;BR&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Courier New"&gt;&lt;FONT face="Courier New"&gt;loGfx.FillRectangle( .Brushes.White, 0, 0, loBmp.&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Courier New" color=#0000ff&gt;&lt;FONT face="Courier New" color=#0000ff&gt;&lt;FONT face="Courier New" color=#0000ff&gt;Width&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Courier New"&gt;&lt;FONT face="Courier New"&gt;, loBmp.&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Courier New" color=#0000ff&gt;&lt;FONT face="Courier New" color=#0000ff&gt;&lt;FONT face="Courier New" color=#0000ff&gt;Height&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Courier New"&gt;&lt;FONT face="Courier New" size=2&gt;)&lt;BR&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;&lt;FONT face="Courier New" color=#008000&gt;&lt;FONT face="Courier New" color=#008000&gt;&lt;FONT face="Courier New" color=#008000&gt;* Save the image to the disk and show&lt;BR&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Courier New"&gt;&lt;FONT face="Courier New"&gt;loBmp.&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Courier New" color=#0000ff&gt;&lt;FONT face="Courier New" color=#0000ff&gt;&lt;FONT face="Courier New" color=#0000ff&gt;Save&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;&lt;FONT face="Courier New"&gt;&lt;FONT face="Courier New"&gt;("Clipped.Jpg", "image/jpeg")&lt;BR&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Courier New" color=#0000ff&gt;&lt;FONT face="Courier New" color=#0000ff&gt;&lt;FONT face="Courier New" color=#0000ff&gt;RUN &lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Courier New"&gt;&lt;FONT face="Courier New"&gt;/n Explorer.&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Courier New" color=#0000ff&gt;&lt;FONT face="Courier New" color=#0000ff&gt;&lt;FONT face="Courier New" color=#0000ff&gt;Exe &lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Courier New"&gt;&lt;FONT face="Courier New" size=2&gt;Clipped.Jpg&lt;BR&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Courier New" color=#0000ff&gt;&lt;FONT face="Courier New" color=#0000ff&gt;&lt;FONT face="Courier New" color=#0000ff&gt;&lt;FONT size=2&gt;ENDWITH&lt;BR&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;
&lt;P&gt;&lt;FONT size=2&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT size=2&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT size=2&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT size=2&gt;&lt;IMG src="/photos/cesarchalom/images/8578/original.aspx"&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT size=2&gt;&lt;/FONT&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Verdana&gt;Notice that the only difference between the code samples is the shape definition !&lt;/FONT&gt;&lt;/P&gt;&lt;img src="http://weblogs.foxite.com/aggbug.aspx?PostID=8580" width="1" height="1"&gt;</description><category domain="http://weblogs.foxite.com/vfpimaging/archive/category/187.aspx">GDI+ AND IMAGES</category></item><item><title>Circular Gauge chart with GdiPlusX</title><link>http://weblogs.foxite.com/vfpimaging/archive/2009/04/24/8242.aspx</link><pubDate>Fri, 24 Apr 2009 02:28:00 GMT</pubDate><guid isPermaLink="false">8827bd1c-7596-4a8f-b0de-f59ce9ede522:8242</guid><dc:creator>cesarchalom</dc:creator><slash:comments>2</slash:comments><comments>http://weblogs.foxite.com/vfpimaging/comments/8242.aspx</comments><wfw:commentRss>http://weblogs.foxite.com/vfpimaging/commentrss.aspx?PostID=8242</wfw:commentRss><wfw:comment>http://weblogs.foxite.com/rsscomments/8242.aspx</wfw:comment><description>&lt;P&gt;Drawing shapes with GdiPlusX is super easy, and we can very easilly transport this to solve some of our chart needs.&lt;/P&gt;
&lt;P&gt;In this post I'm sending you a very primitive sample for creating Circular Gauge charts. Obviously I hope to apply the techniques shown here in FoxCharts. But FoxCharts is getting big, and I confess that learning from the methods in FoxCharts may not be easy for people that are not that familiar with GdiPlusX.&lt;/P&gt;
&lt;P&gt;Please note that this is an unfinished sample. I'm posting it here to let people see that drawing is not that complicated. Just using some imagination, merging it with some geometrical thoughts, and voilá !&lt;/P&gt;
&lt;P&gt;&lt;IMG src="/files/vfpimaging/foxcharts/gauge/gauge.png"&gt;&lt;/P&gt;
&lt;P&gt;Download the &lt;A HREF="/files/vfpimaging/foxcharts/gauge/gauge.zip"&gt;Gauge sample&lt;/A&gt;, unzip and run TESTGAUGE.SCX ! I'm including the GdiPlusX sources to let everybody immediately run the samples.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Notice that you can control the colors of the background and pointer.&lt;/P&gt;
&lt;P&gt;The pointer shape can be modified too. Play with all the spinners to modify the shape and size! And please tell me which you like most. I'll apreciate&amp;nbsp;receiving some image samples with some desired gauge charts.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Below is the relevant code for the circular gauge drawing. You'll find it in the "&lt;STRONG&gt;BeforeDraw()&lt;/STRONG&gt;" event of the ImageCanvas class. It extracts the information from the form controls, and it's very easy to adapt it to your needs.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;FONT color=#0000ff size=2 face="Courier New"&gt;&lt;FONT color=#0000ff size=2 face="Courier New"&gt;&lt;FONT color=#0000ff size=2 face="Courier New"&gt;LOCAL &lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2 face="Courier New"&gt;&lt;FONT size=2 face="Courier New"&gt;lnAngle, lnBaseW, lnBaseX, lnBaseY, lnTopW, lnHeightPercent, lnTopY&lt;BR&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2 face="Courier New"&gt;&lt;FONT color=#0000ff size=2 face="Courier New"&gt;&lt;FONT color=#0000ff size=2 face="Courier New"&gt;LOCAL &lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2 face="Courier New"&gt;&lt;FONT size=2 face="Courier New"&gt;lnType, lnPointClr, lnBackClr, lnTicks&lt;BR&gt;lnTicks = &lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2 face="Courier New"&gt;&lt;FONT color=#0000ff size=2 face="Courier New"&gt;&lt;FONT color=#0000ff size=2 face="Courier New"&gt;Thisform&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2 face="Courier New"&gt;&lt;FONT size=2 face="Courier New"&gt;.SpnTicks.&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2 face="Courier New"&gt;&lt;FONT color=#0000ff size=2 face="Courier New"&gt;&lt;FONT color=#0000ff size=2 face="Courier New"&gt;Value&lt;BR&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2 face="Courier New"&gt;&lt;FONT size=2 face="Courier New"&gt;lnType = &lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2 face="Courier New"&gt;&lt;FONT color=#0000ff size=2 face="Courier New"&gt;&lt;FONT color=#0000ff size=2 face="Courier New"&gt;Thisform&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2 face="Courier New"&gt;&lt;FONT size=2 face="Courier New"&gt;.OptShape.&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2 face="Courier New"&gt;&lt;FONT color=#0000ff size=2 face="Courier New"&gt;&lt;FONT color=#0000ff size=2 face="Courier New"&gt;Value&lt;BR&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2 face="Courier New"&gt;&lt;FONT size=2 face="Courier New"&gt;lnAngle = &lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2 face="Courier New"&gt;&lt;FONT color=#0000ff size=2 face="Courier New"&gt;&lt;FONT color=#0000ff size=2 face="Courier New"&gt;Thisform&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2 face="Courier New"&gt;&lt;FONT size=2 face="Courier New"&gt;.SpnAngle.&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2 face="Courier New"&gt;&lt;FONT color=#0000ff size=2 face="Courier New"&gt;&lt;FONT color=#0000ff size=2 face="Courier New"&gt;Value&lt;BR&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2 face="Courier New"&gt;&lt;FONT size=2 face="Courier New"&gt;lnBaseW = &lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2 face="Courier New"&gt;&lt;FONT color=#0000ff size=2 face="Courier New"&gt;&lt;FONT color=#0000ff size=2 face="Courier New"&gt;Thisform&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2 face="Courier New"&gt;&lt;FONT size=2 face="Courier New"&gt;.SpnBottomW.&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2 face="Courier New"&gt;&lt;FONT color=#0000ff size=2 face="Courier New"&gt;&lt;FONT color=#0000ff size=2 face="Courier New"&gt;Value&lt;BR&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2 face="Courier New"&gt;&lt;FONT size=2 face="Courier New"&gt;lnTopW = &lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2 face="Courier New"&gt;&lt;FONT color=#0000ff size=2 face="Courier New"&gt;&lt;FONT color=#0000ff size=2 face="Courier New"&gt;Thisform&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2 face="Courier New"&gt;&lt;FONT size=2 face="Courier New"&gt;.SpnTopW.&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2 face="Courier New"&gt;&lt;FONT color=#0000ff size=2 face="Courier New"&gt;&lt;FONT color=#0000ff size=2 face="Courier New"&gt;Value&lt;BR&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2 face="Courier New"&gt;&lt;FONT size=2 face="Courier New"&gt;lnBaseX = &lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2 face="Courier New"&gt;&lt;FONT color=#0000ff size=2 face="Courier New"&gt;&lt;FONT color=#0000ff size=2 face="Courier New"&gt;This&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2 face="Courier New"&gt;&lt;FONT size=2 face="Courier New"&gt;.&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2 face="Courier New"&gt;&lt;FONT color=#0000ff size=2 face="Courier New"&gt;&lt;FONT color=#0000ff size=2 face="Courier New"&gt;Width&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2 face="Courier New"&gt;&lt;FONT size=2 face="Courier New"&gt;/2 -lnBaseW/2&lt;BR&gt;lnBaseY = &lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2 face="Courier New"&gt;&lt;FONT color=#0000ff size=2 face="Courier New"&gt;&lt;FONT color=#0000ff size=2 face="Courier New"&gt;This&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2 face="Courier New"&gt;&lt;FONT size=2 face="Courier New"&gt;.&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2 face="Courier New"&gt;&lt;FONT color=#0000ff size=2 face="Courier New"&gt;&lt;FONT color=#0000ff size=2 face="Courier New"&gt;Height&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2 face="Courier New"&gt;&lt;FONT size=2 face="Courier New"&gt;/2&lt;BR&gt;lnHeightPercent = &lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2 face="Courier New"&gt;&lt;FONT color=#0000ff size=2 face="Courier New"&gt;&lt;FONT color=#0000ff size=2 face="Courier New"&gt;Thisform&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2 face="Courier New"&gt;&lt;FONT size=2 face="Courier New"&gt;.SpnHeight.&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2 face="Courier New"&gt;&lt;FONT color=#0000ff size=2 face="Courier New"&gt;&lt;FONT color=#0000ff size=2 face="Courier New"&gt;Value &lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2 face="Courier New"&gt;&lt;FONT size=2 face="Courier New"&gt;/ 100&lt;BR&gt;lnTopY = lnBaseY - (lnBaseY * lnHeightPercent) + lnTopW / 2&lt;BR&gt;lnPointClr = &lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2 face="Courier New"&gt;&lt;FONT color=#0000ff size=2 face="Courier New"&gt;&lt;FONT color=#0000ff size=2 face="Courier New"&gt;Thisform&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2 face="Courier New"&gt;&lt;FONT size=2 face="Courier New"&gt;.ShpPointerColor.&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2 face="Courier New"&gt;&lt;FONT color=#0000ff size=2 face="Courier New"&gt;&lt;FONT color=#0000ff size=2 face="Courier New"&gt;BackColor&lt;BR&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2 face="Courier New"&gt;&lt;FONT size=2 face="Courier New"&gt;lnBackClr = &lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2 face="Courier New"&gt;&lt;FONT color=#0000ff size=2 face="Courier New"&gt;&lt;FONT color=#0000ff size=2 face="Courier New"&gt;Thisform&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2 face="Courier New"&gt;&lt;FONT size=2 face="Courier New"&gt;.ShpBackColor.&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2 face="Courier New"&gt;&lt;FONT color=#0000ff size=2 face="Courier New"&gt;&lt;FONT color=#0000ff size=2 face="Courier New"&gt;BackColor&lt;BR&gt;LOCAL &lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2 face="Courier New"&gt;&lt;FONT size=2 face="Courier New"&gt;loGfx &lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2 face="Courier New"&gt;&lt;FONT color=#0000ff size=2 face="Courier New"&gt;&lt;FONT color=#0000ff size=2 face="Courier New"&gt;as &lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2 face="Courier New"&gt;&lt;FONT size=2 face="Courier New"&gt;xfcGraphics&lt;BR&gt;loGfx = &lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2 face="Courier New"&gt;&lt;FONT color=#0000ff size=2 face="Courier New"&gt;&lt;FONT color=#0000ff size=2 face="Courier New"&gt;This&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2 face="Courier New"&gt;&lt;FONT size=2 face="Courier New"&gt;.oGfx&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT color=#0000ff size=2 face="Courier New"&gt;&lt;FONT color=#0000ff size=2 face="Courier New"&gt;&lt;FONT color=#0000ff size=2 face="Courier New"&gt;WITH _Screen&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2 face="Courier New"&gt;&lt;FONT size=2 face="Courier New"&gt;.&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2 face="Courier New"&gt;&lt;FONT color=#0000ff size=2 face="Courier New"&gt;&lt;FONT color=#0000ff size=2 face="Courier New"&gt;System&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2 face="Courier New"&gt;&lt;FONT size=2 face="Courier New"&gt;.Drawing&lt;BR&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2 face="Courier New"&gt;&lt;FONT color=#0000ff size=2 face="Courier New"&gt;&lt;FONT color=#0000ff size=2 face="Courier New"&gt;&amp;nbsp;&amp;nbsp; LOCAL &lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2 face="Courier New"&gt;&lt;FONT size=2 face="Courier New"&gt;loBrush &lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2 face="Courier New"&gt;&lt;FONT color=#0000ff size=2 face="Courier New"&gt;&lt;FONT color=#0000ff size=2 face="Courier New"&gt;as &lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2 face="Courier New"&gt;&lt;FONT size=2 face="Courier New"&gt;xfcSolidBrush&lt;BR&gt;&lt;FONT color=#0000ff&gt;&amp;nbsp;&amp;nbsp; &lt;/FONT&gt;loBrush = .SolidBrush.New(.&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2 face="Courier New"&gt;&lt;FONT color=#0000ff size=2 face="Courier New"&gt;&lt;FONT color=#0000ff size=2 face="Courier New"&gt;Color&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2 face="Courier New"&gt;&lt;FONT size=2 face="Courier New"&gt;.FromRGB(lnPointClr))&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT color=#008000 size=2 face="Courier New"&gt;&lt;FONT color=#008000 size=2 face="Courier New"&gt;&lt;FONT color=#008000 size=2 face="Courier New"&gt;&lt;FONT color=#0000ff&gt;&amp;nbsp;&amp;nbsp; &lt;FONT color=#000000&gt;loGfx.&lt;/FONT&gt;&lt;FONT color=#0000ff size=2 face="Courier New"&gt;&lt;FONT color=#0000ff size=2 face="Courier New"&gt;&lt;FONT color=#0000ff size=2 face="Courier New"&gt;Clear&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2 face="Courier New"&gt;&lt;FONT color=#000000 size=2 face="Courier New"&gt;(.&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2 face="Courier New"&gt;&lt;FONT color=#0000ff size=2 face="Courier New"&gt;&lt;FONT color=#0000ff size=2 face="Courier New"&gt;Color&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2 face="Courier New"&gt;&lt;FONT color=#000000 size=2 face="Courier New"&gt;.FromRGB(&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2 face="Courier New"&gt;&lt;FONT color=#0000ff size=2 face="Courier New"&gt;&lt;FONT color=#0000ff size=2 face="Courier New"&gt;Thisform&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2 face="Courier New"&gt;&lt;FONT color=#000000 size=2 face="Courier New"&gt;.&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2 face="Courier New"&gt;&lt;FONT color=#0000ff size=2 face="Courier New"&gt;&lt;FONT color=#0000ff size=2 face="Courier New"&gt;BackColor&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2 face="Courier New"&gt;&lt;FONT size=2 face="Courier New"&gt;&lt;FONT color=#000000&gt;))&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT color=#008000 size=2 face="Courier New"&gt;&lt;FONT color=#008000 size=2 face="Courier New"&gt;&lt;FONT color=#008000 size=2 face="Courier New"&gt;&lt;FONT color=#0000ff&gt;&amp;nbsp;&amp;nbsp; &lt;/FONT&gt;* Create a Shape for the pointer&lt;BR&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2 face="Courier New"&gt;&lt;FONT color=#0000ff size=2 face="Courier New"&gt;&lt;FONT color=#0000ff size=2 face="Courier New"&gt;&amp;nbsp;&amp;nbsp; LOCAL &lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2 face="Courier New"&gt;&lt;FONT size=2 face="Courier New"&gt;loPath &lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2 face="Courier New"&gt;&lt;FONT color=#0000ff size=2 face="Courier New"&gt;&lt;FONT color=#0000ff size=2 face="Courier New"&gt;as &lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2 face="Courier New"&gt;&lt;FONT size=2 face="Courier New"&gt;xfcGraphicsPath&lt;BR&gt;&lt;FONT color=#0000ff&gt;&amp;nbsp;&amp;nbsp; &lt;/FONT&gt;loPath = .Drawing2D.GraphicsPath.New()&lt;BR&gt;&lt;FONT color=#0000ff&gt;&amp;nbsp;&amp;nbsp; &lt;/FONT&gt;loPath.StartFigure()&lt;BR&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2 face="Courier New"&gt;&lt;FONT size=2 face="Courier New"&gt;&lt;FONT color=#0000ff&gt;&amp;nbsp;&amp;nbsp; &lt;/FONT&gt;loGfx.FillEllipse(.SolidBrush.New(.&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2 face="Courier New"&gt;&lt;FONT color=#0000ff size=2 face="Courier New"&gt;&lt;FONT color=#0000ff size=2 face="Courier New"&gt;Color&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2 face="Courier New"&gt;&lt;FONT size=2 face="Courier New"&gt;.FromRGB(lnBackClr)), ;&lt;BR&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2 face="Courier New"&gt;&lt;FONT color=#0000ff size=2 face="Courier New"&gt;&lt;FONT color=#0000ff size=2 face="Courier New"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; This&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2 face="Courier New"&gt;&lt;FONT size=2 face="Courier New"&gt;.Rectangle)&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT color=#0000ff size=2 face="Courier New"&gt;&lt;FONT color=#0000ff size=2 face="Courier New"&gt;&lt;FONT color=#0000ff size=2 face="Courier New"&gt;&amp;nbsp;&amp;nbsp; IF &lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2 face="Courier New"&gt;&lt;FONT size=2 face="Courier New"&gt;lnType = 1&lt;BR&gt;&lt;FONT color=#0000ff&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/FONT&gt;loPath.AddArc(lnBaseX, &lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2 face="Courier New"&gt;&lt;FONT color=#0000ff size=2 face="Courier New"&gt;&lt;FONT color=#0000ff size=2 face="Courier New"&gt;This&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2 face="Courier New"&gt;&lt;FONT size=2 face="Courier New"&gt;.&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2 face="Courier New"&gt;&lt;FONT color=#0000ff size=2 face="Courier New"&gt;&lt;FONT color=#0000ff size=2 face="Courier New"&gt;Height&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2 face="Courier New"&gt;&lt;FONT size=2 face="Courier New"&gt;/2 -lnBaseW/2, lnBaseW, lnBaseW, 0, 180)&lt;BR&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2 face="Courier New"&gt;&lt;FONT color=#0000ff size=2 face="Courier New"&gt;&lt;FONT color=#0000ff size=2 face="Courier New"&gt;&amp;nbsp;&amp;nbsp; ENDIF&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT size=2 face="Courier New"&gt;&lt;FONT size=2 face="Courier New"&gt;&lt;FONT color=#0000ff&gt;&amp;nbsp;&amp;nbsp; &lt;/FONT&gt;loPath.AddLine(lnBaseX, lnBaseY, &lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2 face="Courier New"&gt;&lt;FONT color=#0000ff size=2 face="Courier New"&gt;&lt;FONT color=#0000ff size=2 face="Courier New"&gt;This&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2 face="Courier New"&gt;&lt;FONT size=2 face="Courier New"&gt;.&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2 face="Courier New"&gt;&lt;FONT color=#0000ff size=2 face="Courier New"&gt;&lt;FONT color=#0000ff size=2 face="Courier New"&gt;Width&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2 face="Courier New"&gt;&lt;FONT size=2 face="Courier New"&gt;/2 - lnTopW/2, lnTopY)&lt;BR&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2 face="Courier New"&gt;&lt;FONT color=#0000ff size=2 face="Courier New"&gt;&lt;FONT color=#0000ff size=2 face="Courier New"&gt;&amp;nbsp;&amp;nbsp; IF &lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2 face="Courier New"&gt;&lt;FONT size=2 face="Courier New"&gt;lnType = 1&lt;BR&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2 face="Courier New"&gt;&lt;FONT color=#0000ff size=2 face="Courier New"&gt;&lt;FONT color=#0000ff size=2 face="Courier New"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; LOCAL &lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2 face="Courier New"&gt;&lt;FONT size=2 face="Courier New"&gt;laPoints(3)&lt;BR&gt;&lt;FONT color=#0000ff&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/FONT&gt;laPoints(1) = .&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2 face="Courier New"&gt;&lt;FONT color=#0000ff size=2 face="Courier New"&gt;&lt;FONT color=#0000ff size=2 face="Courier New"&gt;Point&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2 face="Courier New"&gt;&lt;FONT size=2 face="Courier New"&gt;.New(&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2 face="Courier New"&gt;&lt;FONT color=#0000ff size=2 face="Courier New"&gt;&lt;FONT color=#0000ff size=2 face="Courier New"&gt;This&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2 face="Courier New"&gt;&lt;FONT size=2 face="Courier New"&gt;.&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2 face="Courier New"&gt;&lt;FONT color=#0000ff size=2 face="Courier New"&gt;&lt;FONT color=#0000ff size=2 face="Courier New"&gt;Width&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2 face="Courier New"&gt;&lt;FONT size=2 face="Courier New"&gt;/2 - lnTopW/2, lnTopY)&lt;BR&gt;&lt;FONT color=#0000ff&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/FONT&gt;laPoints(2) = .&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2 face="Courier New"&gt;&lt;FONT color=#0000ff size=2 face="Courier New"&gt;&lt;FONT color=#0000ff size=2 face="Courier New"&gt;Point&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2 face="Courier New"&gt;&lt;FONT size=2 face="Courier New"&gt;.New(&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2 face="Courier New"&gt;&lt;FONT color=#0000ff size=2 face="Courier New"&gt;&lt;FONT color=#0000ff size=2 face="Courier New"&gt;This&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2 face="Courier New"&gt;&lt;FONT size=2 face="Courier New"&gt;.&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2 face="Courier New"&gt;&lt;FONT color=#0000ff size=2 face="Courier New"&gt;&lt;FONT color=#0000ff size=2 face="Courier New"&gt;Width&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2 face="Courier New"&gt;&lt;FONT size=2 face="Courier New"&gt;/2 , lnTopY - lnTopW / 2)&lt;BR&gt;&lt;FONT color=#0000ff&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/FONT&gt;laPoints(3) = .&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2 face="Courier New"&gt;&lt;FONT color=#0000ff size=2 face="Courier New"&gt;&lt;FONT color=#0000ff size=2 face="Courier New"&gt;Point&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2 face="Courier New"&gt;&lt;FONT size=2 face="Courier New"&gt;.New(&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2 face="Courier New"&gt;&lt;FONT color=#0000ff size=2 face="Courier New"&gt;&lt;FONT color=#0000ff size=2 face="Courier New"&gt;This&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2 face="Courier New"&gt;&lt;FONT size=2 face="Courier New"&gt;.&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2 face="Courier New"&gt;&lt;FONT color=#0000ff size=2 face="Courier New"&gt;&lt;FONT color=#0000ff size=2 face="Courier New"&gt;Width&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2 face="Courier New"&gt;&lt;FONT size=2 face="Courier New"&gt;/2 + lnTopW/2, lnTopY)&lt;BR&gt;&lt;FONT color=#0000ff&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/FONT&gt;loPath.AddCurve(@laPoints)&lt;BR&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2 face="Courier New"&gt;&lt;FONT color=#0000ff size=2 face="Courier New"&gt;&lt;FONT color=#0000ff size=2 face="Courier New"&gt;&amp;nbsp;&amp;nbsp; ENDIF&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT size=2 face="Courier New"&gt;&lt;FONT size=2 face="Courier New"&gt;&lt;FONT color=#0000ff&gt;&amp;nbsp;&amp;nbsp; &lt;/FONT&gt;loPath.AddLine( &lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2 face="Courier New"&gt;&lt;FONT color=#0000ff size=2 face="Courier New"&gt;&lt;FONT color=#0000ff size=2 face="Courier New"&gt;This&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2 face="Courier New"&gt;&lt;FONT size=2 face="Courier New"&gt;.&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2 face="Courier New"&gt;&lt;FONT color=#0000ff size=2 face="Courier New"&gt;&lt;FONT color=#0000ff size=2 face="Courier New"&gt;Width&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2 face="Courier New"&gt;&lt;FONT size=2 face="Courier New"&gt;/2 + lnTopW/2, lnTopY, lnBaseX + lnBaseW, lnBaseY)&lt;BR&gt;&lt;FONT color=#0000ff&gt;&amp;nbsp;&amp;nbsp; &lt;/FONT&gt;loPath.CloseFigure()&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT color=#008000 size=2 face="Courier New"&gt;&lt;FONT color=#008000 size=2 face="Courier New"&gt;&lt;FONT color=#008000 size=2 face="Courier New"&gt;&lt;FONT color=#0000ff&gt;&amp;nbsp;&amp;nbsp; &lt;/FONT&gt;* Rotate the shape pointer&lt;BR&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2 face="Courier New"&gt;&lt;FONT size=2 face="Courier New"&gt;&lt;FONT color=#0000ff&gt;&amp;nbsp;&amp;nbsp; &lt;/FONT&gt;loGfx.TranslateTransform(&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2 face="Courier New"&gt;&lt;FONT color=#0000ff size=2 face="Courier New"&gt;&lt;FONT color=#0000ff size=2 face="Courier New"&gt;This&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2 face="Courier New"&gt;&lt;FONT size=2 face="Courier New"&gt;.&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2 face="Courier New"&gt;&lt;FONT color=#0000ff size=2 face="Courier New"&gt;&lt;FONT color=#0000ff size=2 face="Courier New"&gt;Width&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2 face="Courier New"&gt;&lt;FONT size=2 face="Courier New"&gt;/2, &lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2 face="Courier New"&gt;&lt;FONT color=#0000ff size=2 face="Courier New"&gt;&lt;FONT color=#0000ff size=2 face="Courier New"&gt;This&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2 face="Courier New"&gt;&lt;FONT size=2 face="Courier New"&gt;.&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2 face="Courier New"&gt;&lt;FONT color=#0000ff size=2 face="Courier New"&gt;&lt;FONT color=#0000ff size=2 face="Courier New"&gt;Height&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2 face="Courier New"&gt;&lt;FONT size=2 face="Courier New"&gt;/2)&lt;BR&gt;&lt;FONT color=#0000ff&gt;&amp;nbsp;&amp;nbsp; &lt;/FONT&gt;loGfx.RotateTransform(lnAngle)&lt;BR&gt;&lt;FONT color=#0000ff&gt;&amp;nbsp;&amp;nbsp; &lt;/FONT&gt;loGfx.TranslateTransform(- &lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2 face="Courier New"&gt;&lt;FONT color=#0000ff size=2 face="Courier New"&gt;&lt;FONT color=#0000ff size=2 face="Courier New"&gt;This&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2 face="Courier New"&gt;&lt;FONT size=2 face="Courier New"&gt;.&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2 face="Courier New"&gt;&lt;FONT color=#0000ff size=2 face="Courier New"&gt;&lt;FONT color=#0000ff size=2 face="Courier New"&gt;Width&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2 face="Courier New"&gt;&lt;FONT size=2 face="Courier New"&gt;/2, - &lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2 face="Courier New"&gt;&lt;FONT color=#0000ff size=2 face="Courier New"&gt;&lt;FONT color=#0000ff size=2 face="Courier New"&gt;This&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2 face="Courier New"&gt;&lt;FONT size=2 face="Courier New"&gt;.&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2 face="Courier New"&gt;&lt;FONT color=#0000ff size=2 face="Courier New"&gt;&lt;FONT color=#0000ff size=2 face="Courier New"&gt;Height&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2 face="Courier New"&gt;&lt;FONT size=2 face="Courier New"&gt;/2)&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT color=#008000 size=2 face="Courier New"&gt;&lt;FONT color=#008000 size=2 face="Courier New"&gt;&lt;FONT color=#008000 size=2 face="Courier New"&gt;&lt;FONT color=#0000ff&gt;&amp;nbsp;&amp;nbsp; &lt;/FONT&gt;* Draw the pointer&lt;BR&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2 face="Courier New"&gt;&lt;FONT size=2 face="Courier New"&gt;&lt;FONT color=#0000ff&gt;&amp;nbsp;&amp;nbsp; &lt;/FONT&gt;loGfx.FillPath(loBrush, loPath)&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT color=#008000 size=2 face="Courier New"&gt;&lt;FONT color=#008000 size=2 face="Courier New"&gt;&lt;FONT color=#008000 size=2 face="Courier New"&gt;&lt;FONT color=#0000ff&gt;&amp;nbsp;&amp;nbsp; &lt;/FONT&gt;* Restore the original Gfx rotation state&lt;BR&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2 face="Courier New"&gt;&lt;FONT size=2 face="Courier New"&gt;&lt;FONT color=#0000ff&gt;&amp;nbsp;&amp;nbsp; &lt;/FONT&gt;loGfx.ResetTransform()&lt;BR&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT color=#0000ff size=2 face="Courier New"&gt;&lt;FONT color=#0000ff size=2 face="Courier New"&gt;&lt;FONT color=#0000ff size=2 face="Courier New"&gt;&amp;nbsp;&amp;nbsp; IF &lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2 face="Courier New"&gt;&lt;FONT size=2 face="Courier New"&gt;lnTicks &amp;gt; 0&lt;BR&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2 face="Courier New"&gt;&lt;FONT color=#0000ff size=2 face="Courier New"&gt;&lt;FONT color=#0000ff size=2 face="Courier New"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; FOR &lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2 face="Courier New"&gt;&lt;FONT size=2 face="Courier New"&gt;lnAngle = 0 &lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2 face="Courier New"&gt;&lt;FONT color=#0000ff size=2 face="Courier New"&gt;&lt;FONT color=#0000ff size=2 face="Courier New"&gt;TO &lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2 face="Courier New"&gt;&lt;FONT size=2 face="Courier New"&gt;360 &lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2 face="Courier New"&gt;&lt;FONT color=#0000ff size=2 face="Courier New"&gt;&lt;FONT color=#0000ff size=2 face="Courier New"&gt;STEP &lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2 face="Courier New"&gt;&lt;FONT size=2 face="Courier New"&gt;360 / lnTicks&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT color=#008000 size=2 face="Courier New"&gt;&lt;FONT color=#008000 size=2 face="Courier New"&gt;&lt;FONT color=#008000 size=2 face="Courier New"&gt;&lt;FONT color=#0000ff&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/FONT&gt;* Rotate the Gfx&lt;BR&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2 face="Courier New"&gt;&lt;FONT size=2 face="Courier New"&gt;&lt;FONT color=#0000ff&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/FONT&gt;loGfx.TranslateTransform(&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2 face="Courier New"&gt;&lt;FONT color=#0000ff size=2 face="Courier New"&gt;&lt;FONT color=#0000ff size=2 face="Courier New"&gt;This&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2 face="Courier New"&gt;&lt;FONT size=2 face="Courier New"&gt;.&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2 face="Courier New"&gt;&lt;FONT color=#0000ff size=2 face="Courier New"&gt;&lt;FONT color=#0000ff size=2 face="Courier New"&gt;Width&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2 face="Courier New"&gt;&lt;FONT size=2 face="Courier New"&gt;/2, &lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2 face="Courier New"&gt;&lt;FONT color=#0000ff size=2 face="Courier New"&gt;&lt;FONT color=#0000ff size=2 face="Courier New"&gt;This&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2 face="Courier New"&gt;&lt;FONT size=2 face="Courier New"&gt;.&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2 face="Courier New"&gt;&lt;FONT color=#0000ff size=2 face="Courier New"&gt;&lt;FONT color=#0000ff size=2 face="Courier New"&gt;Height&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2 face="Courier New"&gt;&lt;FONT size=2 face="Courier New"&gt;/2)&lt;BR&gt;&lt;FONT color=#0000ff&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/FONT&gt;loGfx.RotateTransform(lnAngle)&lt;BR&gt;&lt;FONT color=#0000ff&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/FONT&gt;loGfx.TranslateTransform(- &lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2 face="Courier New"&gt;&lt;FONT color=#0000ff size=2 face="Courier New"&gt;&lt;FONT color=#0000ff size=2 face="Courier New"&gt;This&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2 face="Courier New"&gt;&lt;FONT size=2 face="Courier New"&gt;.&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2 face="Courier New"&gt;&lt;FONT color=#0000ff size=2 face="Courier New"&gt;&lt;FONT color=#0000ff size=2 face="Courier New"&gt;Width&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2 face="Courier New"&gt;&lt;FONT size=2 face="Courier New"&gt;/2, - &lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2 face="Courier New"&gt;&lt;FONT color=#0000ff size=2 face="Courier New"&gt;&lt;FONT color=#0000ff size=2 face="Courier New"&gt;This&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2 face="Courier New"&gt;&lt;FONT size=2 face="Courier New"&gt;.&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2 face="Courier New"&gt;&lt;FONT color=#0000ff size=2 face="Courier New"&gt;&lt;FONT color=#0000ff size=2 face="Courier New"&gt;Height&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2 face="Courier New"&gt;&lt;FONT size=2 face="Courier New"&gt;/2)&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT color=#008000 size=2 face="Courier New"&gt;&lt;FONT color=#008000 size=2 face="Courier New"&gt;&lt;FONT color=#008000 size=2 face="Courier New"&gt;&lt;FONT color=#0000ff&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/FONT&gt;* Draw the ticks&lt;BR&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2 face="Courier New"&gt;&lt;FONT size=2 face="Courier New"&gt;&lt;FONT color=#0000ff&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/FONT&gt;loGfx.DrawLine(.Pens.Black, &lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2 face="Courier New"&gt;&lt;FONT color=#0000ff size=2 face="Courier New"&gt;&lt;FONT color=#0000ff size=2 face="Courier New"&gt;This&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2 face="Courier New"&gt;&lt;FONT size=2 face="Courier New"&gt;.&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2 face="Courier New"&gt;&lt;FONT color=#0000ff size=2 face="Courier New"&gt;&lt;FONT color=#0000ff size=2 face="Courier New"&gt;Width&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2 face="Courier New"&gt;&lt;FONT size=2 face="Courier New"&gt;/2, 0, &lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2 face="Courier New"&gt;&lt;FONT color=#0000ff size=2 face="Courier New"&gt;&lt;FONT color=#0000ff size=2 face="Courier New"&gt;This&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2 face="Courier New"&gt;&lt;FONT size=2 face="Courier New"&gt;.&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2 face="Courier New"&gt;&lt;FONT color=#0000ff size=2 face="Courier New"&gt;&lt;FONT color=#0000ff size=2 face="Courier New"&gt;Width&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2 face="Courier New"&gt;&lt;FONT size=2 face="Courier New"&gt;/2, 10)&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT color=#008000 size=2 face="Courier New"&gt;&lt;FONT color=#008000 size=2 face="Courier New"&gt;&lt;FONT color=#008000 size=2 face="Courier New"&gt;&lt;FONT color=#0000ff&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/FONT&gt;* Restore the original Gfx rotation state&lt;BR&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2 face="Courier New"&gt;&lt;FONT size=2 face="Courier New"&gt;&lt;FONT color=#0000ff&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/FONT&gt;loGfx.ResetTransform()&lt;BR&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2 face="Courier New"&gt;&lt;FONT color=#0000ff size=2 face="Courier New"&gt;&lt;FONT color=#0000ff size=2 face="Courier New"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ENDFOR&amp;nbsp;&lt;BR&gt;&amp;nbsp;&amp;nbsp; ENDIF&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT color=#0000ff size=2 face="Courier New"&gt;&lt;FONT color=#0000ff size=2 face="Courier New"&gt;&lt;FONT color=#0000ff size=2 face="Courier New"&gt;ENDWITH&lt;BR&gt;&lt;/P&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Enjoy !!!&lt;/P&gt;
&lt;P&gt;&lt;A HREF="/files/vfpimaging/foxcharts/gauge/gauge.zip"&gt;Download Gauge Prototype sample with GdiPlusX&lt;/A&gt; &lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;I've prepared a much more complete sample using FoxCharts.&lt;BR&gt;People can get it from the main download, and run the sample "ChartsSample_CircularGauge.scx"&lt;BR&gt;It allows lots of customizations, like the picture below.&lt;/P&gt;
&lt;P&gt;You can get&amp;nbsp;the latest version&amp;nbsp;of FoxCharts here:&lt;BR&gt;&lt;A href="http://vfpx.codeplex.com/Release/ProjectReleases.aspx?ReleaseId=18515"&gt;http://vfpx.codeplex.com/Release/ProjectReleases.aspx?ReleaseId=18515&lt;/A&gt;&lt;/P&gt;&lt;A HREF="/photos/cesarchalom/picture9277.aspx" target=_blank&gt;&lt;/A&gt;&lt;IMG border=0 src="/photos/cesarchalom/images/9277/original.aspx"&gt;&lt;img src="http://weblogs.foxite.com/aggbug.aspx?PostID=8242" width="1" height="1"&gt;</description><category domain="http://weblogs.foxite.com/vfpimaging/archive/category/187.aspx">GDI+ AND IMAGES</category></item><item><title>Drawing Unicode texts with GdiPlusX</title><link>http://weblogs.foxite.com/vfpimaging/archive/2009/03/01/7806.aspx</link><pubDate>Sun, 01 Mar 2009 11:58:00 GMT</pubDate><guid isPermaLink="false">8827bd1c-7596-4a8f-b0de-f59ce9ede522:7806</guid><dc:creator>cesarchalom</dc:creator><slash:comments>1</slash:comments><comments>http://weblogs.foxite.com/vfpimaging/comments/7806.aspx</comments><wfw:commentRss>http://weblogs.foxite.com/vfpimaging/commentrss.aspx?PostID=7806</wfw:commentRss><wfw:comment>http://weblogs.foxite.com/rsscomments/7806.aspx</wfw:comment><description>&lt;P&gt;We forgot to add to GdiPlusX a specific function to allow sending Unicodes directly, similar to the function DrawString.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;But as you'll see below, it's really simple to adapt the original function and provide this possibility:&lt;/P&gt;
&lt;P&gt;In the sample below you'll see the function "&lt;STRONG&gt;&lt;EM&gt;DrawStringW&lt;/EM&gt;&lt;/STRONG&gt;", that is just an adapted version from the original xfcGraphics.DrawString function.&lt;/P&gt;
&lt;P&gt;It accepts the same parameters and overloads from the&amp;nbsp;original function - the sole difference is the first parameter that was introduced - the Graphics object.&lt;/P&gt;
&lt;P&gt;Another helper function - "&lt;STRONG&gt;&lt;EM&gt;HexToUnicode&lt;/EM&gt;&lt;/STRONG&gt;" was introduced. It converts a string containing Hex values separated by a space into the Unicode needed by GdiPlus.dll to&amp;nbsp; draw the string.&lt;/P&gt;
&lt;P&gt;Just run the script and you'll obtain a result similar to the one below:&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;IMG src="/photos/cesarchalom/images/7807/original.aspx" border=0&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Prerequisites&lt;/STRONG&gt;&lt;BR&gt;Visual FoxPro 9 and the GdiPlusX library from VFPX&amp;nbsp;&lt;IMG src="http://www.codeplex.com/VFPX/Project/FileDownload.aspx?DownloadId=3280"&gt; &lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;Please make sure that you have the latest version, because this sample may be using&amp;nbsp;some functions that were added or fixed recently. &lt;BR&gt;&lt;A href="http://www.codeplex.com/VFPX/Wiki/View.aspx?title=GDIPlusX&amp;amp;referringTitle=Home"&gt;&lt;FONT color=#02469b&gt;http://www.codeplex.com/VFPX/Wiki/View.aspx?title=GDIPlusX&amp;amp;referringTitle=Home&lt;/FONT&gt;&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;BR&gt;&lt;FONT face="Courier New" color=#0000ff&gt;&lt;FONT face="Courier New" color=#0000ff&gt;&lt;FONT face="Courier New" color=#0000ff&gt;DO LOCFILE&lt;FONT color=#000000&gt;("System.App")&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Courier New" color=#0000ff&gt;&lt;FONT face="Courier New" color=#0000ff&gt;&lt;FONT face="Courier New" color=#0000ff&gt;LOCAL &lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Courier New"&gt;&lt;FONT face="Courier New"&gt;n, x, y, lnColor&lt;BR&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Courier New" color=#0000ff&gt;&lt;FONT face="Courier New" color=#0000ff&gt;&lt;FONT face="Courier New" color=#0000ff&gt;LOCAL &lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Courier New"&gt;&lt;FONT face="Courier New"&gt;loBmp &lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Courier New" color=#0000ff&gt;&lt;FONT face="Courier New" color=#0000ff&gt;&lt;FONT face="Courier New" color=#0000ff&gt;as &lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Courier New"&gt;&lt;FONT face="Courier New"&gt;xfcBitmap, loGfx &lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Courier New" color=#0000ff&gt;&lt;FONT face="Courier New" color=#0000ff&gt;&lt;FONT face="Courier New" color=#0000ff&gt;as &lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Courier New"&gt;&lt;FONT face="Courier New"&gt;xfcGraphics, loFont &lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Courier New" color=#0000ff&gt;&lt;FONT face="Courier New" color=#0000ff&gt;&lt;FONT face="Courier New" color=#0000ff&gt;as &lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Courier New"&gt;&lt;FONT face="Courier New"&gt;xfcFont&lt;BR&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Courier New" color=#0000ff&gt;&lt;FONT face="Courier New" color=#0000ff&gt;&lt;FONT face="Courier New" color=#0000ff&gt;LOCAL &lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Courier New"&gt;&lt;FONT face="Courier New"&gt;loBrush &lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Courier New" color=#0000ff&gt;&lt;FONT face="Courier New" color=#0000ff&gt;&lt;FONT face="Courier New" color=#0000ff&gt;as &lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Courier New"&gt;&lt;FONT face="Courier New"&gt;xfcSolidBrush&lt;BR&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Courier New" color=#0000ff&gt;&lt;FONT face="Courier New" color=#0000ff&gt;&lt;FONT face="Courier New" color=#0000ff&gt;LOCAL &lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Courier New"&gt;&lt;FONT face="Courier New"&gt;laWords(9,2)&lt;BR&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Courier New" color=#008000&gt;&lt;FONT face="Courier New" color=#008000&gt;&lt;FONT face="Courier New" color=#008000&gt;* Greek&lt;BR&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Courier New"&gt;&lt;FONT face="Courier New"&gt;laWords(1,1) = "Greek"&lt;BR&gt;laWords(1,2) = "03B5 03B9 03C1 03AE 03BD 03B7"&lt;BR&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Courier New" color=#008000&gt;&lt;FONT face="Courier New" color=#008000&gt;&lt;FONT face="Courier New" color=#008000&gt;* Korean&lt;BR&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Courier New"&gt;&lt;FONT face="Courier New"&gt;laWords(2,1) = "Korean"&lt;BR&gt;laWords(2,2) = "D3C9 D654" &lt;BR&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Courier New" color=#008000&gt;&lt;FONT face="Courier New" color=#008000&gt;&lt;FONT face="Courier New" color=#008000&gt;* Hebrew&lt;BR&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Courier New"&gt;&lt;FONT face="Courier New"&gt;laWords(3,1) = "Hebrew"&lt;BR&gt;laWords(3,2) = "05E9 05DC 05D5 05DD"&lt;BR&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Courier New" color=#008000&gt;&lt;FONT face="Courier New" color=#008000&gt;&lt;FONT face="Courier New" color=#008000&gt;* Bulgarian&lt;BR&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Courier New"&gt;&lt;FONT face="Courier New"&gt;laWords(4,1) = "Bulgarian"&lt;BR&gt;laWords(4,2) = "043C 0438 0440" &lt;BR&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Courier New" color=#008000&gt;&lt;FONT face="Courier New" color=#008000&gt;&lt;FONT face="Courier New" color=#008000&gt;* Arabic&lt;BR&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Courier New"&gt;&lt;FONT face="Courier New"&gt;laWords(5,1) = "Arabic"&lt;BR&gt;laWords(5,2) = "0633 0644 0627 0645"&lt;BR&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Courier New" color=#008000&gt;&lt;FONT face="Courier New" color=#008000&gt;&lt;FONT face="Courier New" color=#008000&gt;* Simplified Chinese&lt;BR&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Courier New"&gt;&lt;FONT face="Courier New"&gt;laWords(6,1) = "Chinese"&lt;BR&gt;laWords(6,2) = "548C 5E73" &lt;BR&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Courier New" color=#008000&gt;&lt;FONT face="Courier New" color=#008000&gt;&lt;FONT face="Courier New" color=#008000&gt;* Thai&lt;BR&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Courier New"&gt;&lt;FONT face="Courier New"&gt;laWords(7,1) = "Thai"&lt;BR&gt;laWords(7,2) = "0E04 0E27 0E32 0E21 0E2A 0E07 0E1A" &lt;BR&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Courier New" color=#008000&gt;&lt;FONT face="Courier New" color=#008000&gt;&lt;FONT face="Courier New" color=#008000&gt;* Russian&lt;BR&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Courier New"&gt;&lt;FONT face="Courier New"&gt;laWords(8,1) = "Russian"&lt;BR&gt;laWords(8,2) = "043C 0438 0440" &lt;BR&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Courier New" color=#008000&gt;&lt;FONT face="Courier New" color=#008000&gt;&lt;FONT face="Courier New" color=#008000&gt;* Japanese&lt;BR&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Courier New"&gt;&lt;FONT face="Courier New"&gt;laWords(9,1) = "Japanese"&lt;BR&gt;laWords(9,2) = "5E73 548C" &lt;BR&gt;&amp;nbsp;&lt;BR&gt;&amp;nbsp;&lt;BR&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Courier New" color=#0000ff&gt;&lt;FONT face="Courier New" color=#0000ff&gt;&lt;FONT face="Courier New" color=#0000ff&gt;WITH _Screen&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Courier New"&gt;&lt;FONT face="Courier New"&gt;.&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Courier New" color=#0000ff&gt;&lt;FONT face="Courier New" color=#0000ff&gt;&lt;FONT face="Courier New" color=#0000ff&gt;System&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Courier New"&gt;&lt;FONT face="Courier New"&gt;.Drawing&lt;BR&gt;loFont = .&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Courier New" color=#0000ff&gt;&lt;FONT face="Courier New" color=#0000ff&gt;&lt;FONT face="Courier New" color=#0000ff&gt;Font&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Courier New"&gt;&lt;FONT face="Courier New"&gt;.New("Tahoma", 18)&lt;BR&gt;loBmp = .&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Courier New" color=#0000ff&gt;&lt;FONT face="Courier New" color=#0000ff&gt;&lt;FONT face="Courier New" color=#0000ff&gt;Bitmap&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Courier New"&gt;&lt;FONT face="Courier New"&gt;.New(350,370)&lt;BR&gt;loGfx = .Graphics.FromImage(loBmp)&lt;BR&gt;loGfx.&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Courier New" color=#0000ff&gt;&lt;FONT face="Courier New" color=#0000ff&gt;&lt;FONT face="Courier New" color=#0000ff&gt;Clear&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Courier New"&gt;&lt;FONT face="Courier New"&gt;(.&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Courier New" color=#0000ff&gt;&lt;FONT face="Courier New" color=#0000ff&gt;&lt;FONT face="Courier New" color=#0000ff&gt;Color&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Courier New"&gt;&lt;FONT face="Courier New"&gt;.White)&lt;BR&gt;loGfx.DrawString("Gdi+X Drawing Unicodes", loFont,;&lt;BR&gt;&amp;nbsp;&amp;nbsp; .Brushes.Black, 10,5)&lt;BR&gt;&amp;nbsp;&lt;BR&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Courier New" color=#0000ff&gt;&lt;FONT face="Courier New" color=#0000ff&gt;&lt;FONT face="Courier New" color=#0000ff&gt;FOR &lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Courier New"&gt;&lt;FONT face="Courier New"&gt;n = 1 &lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Courier New" color=#0000ff&gt;&lt;FONT face="Courier New" color=#0000ff&gt;&lt;FONT face="Courier New" color=#0000ff&gt;TO &lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Courier New"&gt;&lt;FONT face="Courier New"&gt;9&lt;BR&gt;&amp;nbsp;&amp;nbsp; y = n * 35&lt;BR&gt;&amp;nbsp;&amp;nbsp; x = 160&lt;BR&gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp; lnColor = &lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Courier New" color=#0000ff&gt;&lt;FONT face="Courier New" color=#0000ff&gt;&lt;FONT face="Courier New" color=#0000ff&gt;RGB&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Courier New"&gt;&lt;FONT face="Courier New"&gt;(&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Courier New" color=#0000ff&gt;&lt;FONT face="Courier New" color=#0000ff&gt;&lt;FONT face="Courier New" color=#0000ff&gt;RAND&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Courier New"&gt;&lt;FONT face="Courier New"&gt;() * 255, &lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Courier New" color=#0000ff&gt;&lt;FONT face="Courier New" color=#0000ff&gt;&lt;FONT face="Courier New" color=#0000ff&gt;RAND&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Courier New"&gt;&lt;FONT face="Courier New"&gt;() * 255, &lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Courier New" color=#0000ff&gt;&lt;FONT face="Courier New" color=#0000ff&gt;&lt;FONT face="Courier New" color=#0000ff&gt;RAND&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Courier New"&gt;&lt;FONT face="Courier New"&gt;() * 255)&lt;BR&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Courier New" color=#008000&gt;&lt;FONT face="Courier New" color=#008000&gt;&lt;FONT face="Courier New" color=#008000&gt;&lt;FONT color=#000000&gt;&amp;nbsp;&amp;nbsp; &lt;/FONT&gt;* Create a SolidBrush with randomic color&lt;BR&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Courier New"&gt;&lt;FONT face="Courier New"&gt;&amp;nbsp;&amp;nbsp; loBrush = .SolidBrush.New(.&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Courier New" color=#0000ff&gt;&lt;FONT face="Courier New" color=#0000ff&gt;&lt;FONT face="Courier New" color=#0000ff&gt;Color&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Courier New"&gt;&lt;FONT face="Courier New"&gt;.FromRGB(lnColor))&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Courier New" color=#008000&gt;&lt;FONT face="Courier New" color=#008000&gt;&lt;FONT face="Courier New" color=#008000&gt;&lt;FONT color=#000000&gt;&amp;nbsp;&amp;nbsp; &lt;/FONT&gt;* Draw the language name&lt;BR&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Courier New"&gt;&lt;FONT face="Courier New"&gt;&amp;nbsp;&amp;nbsp; loGfx.DrawString(laWords(n,1), .&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Courier New" color=#0000ff&gt;&lt;FONT face="Courier New" color=#0000ff&gt;&lt;FONT face="Courier New" color=#0000ff&gt;Font&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Courier New"&gt;&lt;FONT face="Courier New"&gt;.New("Tahoma", 10),;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; .Brushes.Black, 65, y + 5)&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Courier New" color=#008000&gt;&lt;FONT face="Courier New" color=#008000&gt;&lt;FONT face="Courier New" color=#008000&gt;&lt;FONT color=#000000&gt;&amp;nbsp;&amp;nbsp; &lt;/FONT&gt;* Draw the text in Unicodes&lt;BR&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Courier New"&gt;&lt;FONT face="Courier New"&gt;&amp;nbsp;&amp;nbsp; =DrawStringW(loGfx, HexToUnicode(laWords(n,2)), loFont,;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; loBrush, x, y)&lt;BR&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Courier New" color=#0000ff&gt;&lt;FONT face="Courier New" color=#0000ff&gt;&lt;FONT face="Courier New" color=#0000ff&gt;ENDFOR &lt;BR&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Courier New"&gt;&lt;FONT face="Courier New"&gt;loBmp.&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Courier New" color=#0000ff&gt;&lt;FONT face="Courier New" color=#0000ff&gt;&lt;FONT face="Courier New" color=#0000ff&gt;Save&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Courier New"&gt;&lt;FONT face="Courier New"&gt;("TestUnicodes.Png", .Imaging.ImageFormat.Png)&lt;BR&gt;&amp;nbsp;&lt;BR&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Courier New" color=#0000ff&gt;&lt;FONT face="Courier New" color=#0000ff&gt;&lt;FONT face="Courier New" color=#0000ff&gt;ENDWITH &lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Courier New" color=#0000ff&gt;&lt;FONT face="Courier New" color=#0000ff&gt;&lt;FONT face="Courier New" color=#0000ff&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Courier New" color=#0000ff&gt;&lt;FONT face="Courier New" color=#0000ff&gt;&lt;FONT face="Courier New" color=#0000ff&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;BR&gt;FUNCTION &lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Courier New"&gt;&lt;FONT face="Courier New"&gt;DrawStringW(toGfx, ;&lt;BR&gt;&amp;nbsp;&amp;nbsp; tcString, toFont &lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Courier New" color=#0000ff&gt;&lt;FONT face="Courier New" color=#0000ff&gt;&lt;FONT face="Courier New" color=#0000ff&gt;AS &lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Courier New"&gt;&lt;FONT face="Courier New"&gt;xfcFont, toBrush &lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Courier New" color=#0000ff&gt;&lt;FONT face="Courier New" color=#0000ff&gt;&lt;FONT face="Courier New" color=#0000ff&gt;AS &lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Courier New"&gt;&lt;FONT face="Courier New"&gt;xfcBrush, tnX, tnY ;&lt;BR&gt;&amp;nbsp;&amp;nbsp; , toFormat &lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Courier New" color=#0000ff&gt;&lt;FONT face="Courier New" color=#0000ff&gt;&lt;FONT face="Courier New" color=#0000ff&gt;AS &lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Courier New"&gt;&lt;FONT face="Courier New"&gt;xfcStringFormat)&lt;BR&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Courier New" color=#008000&gt;&lt;FONT face="Courier New" color=#008000&gt;&lt;FONT face="Courier New" color=#008000&gt;&amp;nbsp;&amp;nbsp; *********** tcString, toFont AS xfcFont, toBrush AS xfcBrush, toPoint AS xfcPointF ;&lt;BR&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Courier New"&gt;&lt;FONT face="Courier New"&gt;&amp;nbsp;&amp;nbsp; , toFormat &lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Courier New" color=#0000ff&gt;&lt;FONT face="Courier New" color=#0000ff&gt;&lt;FONT face="Courier New" color=#0000ff&gt;AS &lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Courier New"&gt;&lt;FONT face="Courier New"&gt;xfcStringFormat&lt;BR&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Courier New" color=#008000&gt;&lt;FONT face="Courier New" color=#008000&gt;&lt;FONT face="Courier New" color=#008000&gt;&amp;nbsp;&amp;nbsp; *********** tcString, toFont AS xfcFont, toBrush AS xfcBrush, toRectangle AS xfcRectangleF ;&lt;BR&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Courier New"&gt;&lt;FONT face="Courier New"&gt;&amp;nbsp;&amp;nbsp; , toFormat &lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Courier New" color=#0000ff&gt;&lt;FONT face="Courier New" color=#0000ff&gt;&lt;FONT face="Courier New" color=#0000ff&gt;AS &lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Courier New"&gt;&lt;FONT face="Courier New"&gt;xfcStringFormat&lt;BR&gt;&lt;BR&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Courier New" color=#0000ff&gt;&lt;FONT face="Courier New" color=#0000ff&gt;&lt;FONT face="Courier New" color=#0000ff&gt;LOCAL &lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Courier New"&gt;&lt;FONT face="Courier New"&gt;lqLayoutRect&lt;BR&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Courier New" color=#0000ff&gt;&lt;FONT face="Courier New" color=#0000ff&gt;&lt;FONT face="Courier New" color=#0000ff&gt;LOCAL &lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Courier New"&gt;&lt;FONT face="Courier New"&gt;lnWidth, lnHeight, loPoint &lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Courier New" color=#0000ff&gt;&lt;FONT face="Courier New" color=#0000ff&gt;&lt;FONT face="Courier New" color=#0000ff&gt;AS &lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Courier New"&gt;&lt;FONT face="Courier New"&gt;xfcPointF, loRect &lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Courier New" color=#0000ff&gt;&lt;FONT face="Courier New" color=#0000ff&gt;&lt;FONT face="Courier New" color=#0000ff&gt;AS &lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Courier New"&gt;&lt;FONT face="Courier New"&gt;xfcRectangleF&lt;BR&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Courier New" color=#0000ff&gt;&lt;FONT face="Courier New" color=#0000ff&gt;&lt;FONT face="Courier New" color=#0000ff&gt;LOCAL &lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Courier New"&gt;&lt;FONT face="Courier New"&gt;lhFormat&lt;BR&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Courier New" color=#0000ff&gt;&lt;FONT face="Courier New" color=#0000ff&gt;&lt;FONT face="Courier New" color=#0000ff&gt;STORE &lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Courier New"&gt;&lt;FONT face="Courier New"&gt;0 &lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Courier New" color=#0000ff&gt;&lt;FONT face="Courier New" color=#0000ff&gt;&lt;FONT face="Courier New" color=#0000ff&gt;TO &lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Courier New"&gt;&lt;FONT face="Courier New"&gt;lnWidth, lnHeight&lt;BR&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Courier New" color=#0000ff&gt;&lt;FONT face="Courier New" color=#0000ff&gt;&lt;FONT face="Courier New" color=#0000ff&gt;STORE NULL TO &lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Courier New"&gt;&lt;FONT face="Courier New"&gt;loPoint, loRect&lt;BR&gt;m.lqLayoutRect = 0h00&lt;BR&gt;&lt;BR&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Courier New" color=#008000&gt;&lt;FONT face="Courier New" color=#008000&gt;&lt;FONT face="Courier New" color=#008000&gt;** Handle overload parameters&lt;BR&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Courier New" color=#0000ff&gt;&lt;FONT face="Courier New" color=#0000ff&gt;&lt;FONT face="Courier New" color=#0000ff&gt;DO CASE&lt;BR&gt;CASE VARTYPE&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Courier New"&gt;&lt;FONT face="Courier New"&gt;(tnX) = "N"&lt;BR&gt;&lt;BR&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Courier New" color=#0000ff&gt;&lt;FONT face="Courier New" color=#0000ff&gt;&lt;FONT face="Courier New" color=#0000ff&gt;CASE VARTYPE&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Courier New"&gt;&lt;FONT face="Courier New"&gt;(tnX) = "O" AND &lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Courier New" color=#0000ff&gt;&lt;FONT face="Courier New" color=#0000ff&gt;&lt;FONT face="Courier New" color=#0000ff&gt;INLIST&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Courier New"&gt;&lt;FONT face="Courier New"&gt;(tnX.BaseName,"Point","PointF")&lt;BR&gt;&amp;nbsp;&amp;nbsp; m.loPoint = m.tnX&lt;BR&gt;&amp;nbsp;&amp;nbsp; m.toFormat = m.tnY&lt;BR&gt;&amp;nbsp;&amp;nbsp; m.loPoint.GetExtent(@tnX, @tnY)&lt;BR&gt;&lt;BR&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Courier New" color=#0000ff&gt;&lt;FONT face="Courier New" color=#0000ff&gt;&lt;FONT face="Courier New" color=#0000ff&gt;CASE VARTYPE&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Courier New"&gt;&lt;FONT face="Courier New"&gt;(tnX) = "O" AND &lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Courier New" color=#0000ff&gt;&lt;FONT face="Courier New" color=#0000ff&gt;&lt;FONT face="Courier New" color=#0000ff&gt;INLIST&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Courier New"&gt;&lt;FONT face="Courier New"&gt;(tnX.BaseName,"Rectangle","RectangleF")&lt;BR&gt;&amp;nbsp;&amp;nbsp; m.loRect = m.tnX&lt;BR&gt;&amp;nbsp;&amp;nbsp; m.toFormat = m.tnY&lt;BR&gt;&amp;nbsp;&amp;nbsp; m.loRect.GetExtent(@tnX, @tnY, @lnWidth, @lnHeight)&lt;BR&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Courier New" color=#0000ff&gt;&lt;FONT face="Courier New" color=#0000ff&gt;&lt;FONT face="Courier New" color=#0000ff&gt;ENDCASE&lt;BR&gt;&lt;BR&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Courier New" color=#008000&gt;&lt;FONT face="Courier New" color=#008000&gt;&lt;FONT face="Courier New" color=#008000&gt;** Optional parameter&lt;BR&gt;** The C++ classes show this parameter as NULL if not specified&lt;BR&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Courier New" color=#0000ff&gt;&lt;FONT face="Courier New" color=#0000ff&gt;&lt;FONT face="Courier New" color=#0000ff&gt;IF VARTYPE&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Courier New"&gt;&lt;FONT face="Courier New"&gt;(m.toFormat) = "O"&lt;BR&gt;&amp;nbsp;&amp;nbsp; m.lhFormat = m.toFormat.Handle&lt;BR&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Courier New" color=#0000ff&gt;&lt;FONT face="Courier New" color=#0000ff&gt;&lt;FONT face="Courier New" color=#0000ff&gt;ELSE&lt;BR&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Courier New"&gt;&lt;FONT face="Courier New"&gt;&amp;nbsp;&amp;nbsp; m.lhFormat = 0&lt;BR&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Courier New" color=#0000ff&gt;&lt;FONT face="Courier New" color=#0000ff&gt;&lt;FONT face="Courier New" color=#0000ff&gt;ENDIF&lt;BR&gt;&lt;BR&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Courier New"&gt;&lt;FONT face="Courier New"&gt;m.lqLayoutRect = &lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Courier New" color=#0000ff&gt;&lt;FONT face="Courier New" color=#0000ff&gt;&lt;FONT face="Courier New" color=#0000ff&gt;BINTOC&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Courier New"&gt;&lt;FONT face="Courier New"&gt;(m.tnX,"F")+&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Courier New" color=#0000ff&gt;&lt;FONT face="Courier New" color=#0000ff&gt;&lt;FONT face="Courier New" color=#0000ff&gt;BINTOC&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Courier New"&gt;&lt;FONT face="Courier New"&gt;(m.tnY,"F")+;&lt;BR&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Courier New" color=#0000ff&gt;&lt;FONT face="Courier New" color=#0000ff&gt;&lt;FONT face="Courier New" color=#0000ff&gt;&amp;nbsp;&amp;nbsp; BINTOC&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Courier New"&gt;&lt;FONT face="Courier New"&gt;(m.lnWidth,"F")+&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Courier New" color=#0000ff&gt;&lt;FONT face="Courier New" color=#0000ff&gt;&lt;FONT face="Courier New" color=#0000ff&gt;BINTOC&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Courier New"&gt;&lt;FONT face="Courier New"&gt;(m.lnHeight,"F")&lt;BR&gt;&lt;BR&gt;=xfcGdipDrawString(toGfx.Handle, m.tcString+0h00, &lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Courier New" color=#0000ff&gt;&lt;FONT face="Courier New" color=#0000ff&gt;&lt;FONT face="Courier New" color=#0000ff&gt;LENC&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Courier New"&gt;&lt;FONT face="Courier New"&gt;(tcString)/2, ;&lt;BR&gt;&amp;nbsp;&amp;nbsp; m.toFont.Handle, @lqLayoutRect, m.lhFormat, m.toBrush.Handle)&lt;BR&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Courier New" color=#0000ff&gt;&lt;FONT face="Courier New" color=#0000ff&gt;&lt;FONT face="Courier New" color=#0000ff&gt;ENDFUNC&lt;BR&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Courier New" color=#0000ff&gt;&lt;FONT face="Courier New" color=#0000ff&gt;&lt;FONT face="Courier New" color=#0000ff&gt;&amp;nbsp;&lt;BR&gt;FUNCTION &lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Courier New"&gt;&lt;FONT face="Courier New"&gt;HexToUnicode(tcHex)&lt;BR&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Courier New" color=#0000ff&gt;&lt;FONT face="Courier New" color=#0000ff&gt;&lt;FONT face="Courier New" color=#0000ff&gt;&lt;FONT color=#000000&gt;&amp;nbsp;&amp;nbsp; &lt;/FONT&gt;LOCAL &lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Courier New"&gt;&lt;FONT face="Courier New"&gt;n, lcHex, lcUnicode&lt;BR&gt;&amp;nbsp;&amp;nbsp; lcUnicode = &lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Courier New" color=#0000ff&gt;&lt;FONT face="Courier New" color=#0000ff&gt;&lt;FONT face="Courier New" color=#0000ff&gt;SPACE&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Courier New"&gt;&lt;FONT face="Courier New"&gt;(0)&lt;BR&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Courier New" color=#0000ff&gt;&lt;FONT face="Courier New" color=#0000ff&gt;&lt;FONT face="Courier New" color=#0000ff&gt;&lt;FONT color=#000000&gt;&amp;nbsp;&amp;nbsp; &lt;/FONT&gt;FOR &lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Courier New"&gt;&lt;FONT face="Courier New"&gt;n = 1 &lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Courier New" color=#0000ff&gt;&lt;FONT face="Courier New" color=#0000ff&gt;&lt;FONT face="Courier New" color=#0000ff&gt;TO GETWORDCOUNT&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Courier New"&gt;&lt;FONT face="Courier New"&gt;(tcHex, &lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Courier New" color=#0000ff&gt;&lt;FONT face="Courier New" color=#0000ff&gt;&lt;FONT face="Courier New" color=#0000ff&gt;SPACE&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Courier New"&gt;&lt;FONT face="Courier New"&gt;(1))&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; lcHex = &lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Courier New" color=#0000ff&gt;&lt;FONT face="Courier New" color=#0000ff&gt;&lt;FONT face="Courier New" color=#0000ff&gt;EVALUATE&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Courier New"&gt;&lt;FONT face="Courier New"&gt;("0x" + &lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Courier New" color=#0000ff&gt;&lt;FONT face="Courier New" color=#0000ff&gt;&lt;FONT face="Courier New" color=#0000ff&gt;GETWORDNUM&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Courier New"&gt;&lt;FONT face="Courier New"&gt;(tcHex, n, &lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Courier New" color=#0000ff&gt;&lt;FONT face="Courier New" color=#0000ff&gt;&lt;FONT face="Courier New" color=#0000ff&gt;SPACE&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Courier New"&gt;&lt;FONT face="Courier New"&gt;(1)))&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; lcUnicode = lcUnicode + &lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Courier New" color=#0000ff&gt;&lt;FONT face="Courier New" color=#0000ff&gt;&lt;FONT face="Courier New" color=#0000ff&gt;BINTOC&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Courier New"&gt;&lt;FONT face="Courier New"&gt;(lcHex, "4RS")&lt;BR&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Courier New" color=#0000ff&gt;&lt;FONT face="Courier New" color=#0000ff&gt;&lt;FONT face="Courier New" color=#0000ff&gt;&lt;FONT color=#000000&gt;&amp;nbsp;&amp;nbsp; &lt;/FONT&gt;ENDFOR&amp;nbsp;&lt;BR&gt;&lt;FONT color=#000000&gt;&amp;nbsp;&amp;nbsp; &lt;/FONT&gt;RETURN &lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Courier New"&gt;&lt;FONT face="Courier New"&gt;lcUnicode&lt;BR&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Courier New" color=#0000ff&gt;&lt;FONT face="Courier New" color=#0000ff&gt;&lt;FONT face="Courier New" color=#0000ff&gt;ENDFUNC&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;img src="http://weblogs.foxite.com/aggbug.aspx?PostID=7806" width="1" height="1"&gt;</description></item><item><title>Convert your buttons to BMPs keeping transparency with GdiPlusX - REVISITED</title><link>http://weblogs.foxite.com/vfpimaging/archive/2008/12/15/7441.aspx</link><pubDate>Mon, 15 Dec 2008 01:49:00 GMT</pubDate><guid isPermaLink="false">8827bd1c-7596-4a8f-b0de-f59ce9ede522:7441</guid><dc:creator>cesarchalom</dc:creator><slash:comments>5</slash:comments><comments>http://weblogs.foxite.com/vfpimaging/comments/7441.aspx</comments><wfw:commentRss>http://weblogs.foxite.com/vfpimaging/commentrss.aspx?PostID=7441</wfw:commentRss><wfw:comment>http://weblogs.foxite.com/rsscomments/7441.aspx</wfw:comment><description>&lt;P&gt;This is just an update for an old post with the same title. Erik Gomez and Russel Campbell had some problems on the conversions of some specific PNG images, so I recoded this function, this time using a safer code.&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;&lt;FONT size=4&gt;NEW UPDATE:&lt;/FONT&gt;&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;Thanks to Bernard Bout and Craig Boyd, I've updated the code below. In fact it contained a small bug, that was not adjusting the White colors. Now it seems to be working nice. Thanks !&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;This runs a little bit slower than the other aproach, but in my tests, the success was 100%.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;The function below converts any button image to a BMP to be used in VFP forms.&lt;/P&gt;
&lt;P&gt;There are lots of cool and free icons available on the web, but the vast majority are in .ICO, GIF&amp;nbsp;or PNG image formats, that are not very familiar and reliable to be used in VFP. For us, the best image format, for a lot of reasons, is the BMP format.&lt;/P&gt;
&lt;P&gt;Some transformations are needed to make this BMP to show exactly how we desire, specially when converting source images in a PNG, GIF or ICO formats.&lt;/P&gt;
&lt;P&gt;VFP shows the pure white - RGB(255,255,255) as transparent in our buttons and image objects. The code below first converts the original whites to RGB(254,254,254) that is visually the same, but does not become transparent, and eliminates the need to create a mask image (.MSK) and next, converts the background color of the original bitmap to pure white, that will show transparent in VFP forms.&lt;/P&gt;
&lt;P&gt;For more details, please check these prior posts:&lt;/P&gt;
&lt;P&gt;&lt;A id=_ctl0__ctl1_bcr_Aggregatepostlist1___Posts___Posts__ctl15_TitleLink href="/cesarchalom/archive/2007/10/24/5190.aspx"&gt;BMPs with Transparent Backgrounds&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&lt;A id=_ctl0__ctl1_bcr_Aggregatepostlist1___Posts___Posts__ctl11_TitleLink href="/cesarchalom/archive/2007/10/30/5252.aspx"&gt;How to put one image over another in a form&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;&lt;FONT color=#ff0000&gt;IMPORTANT&lt;/FONT&gt; &lt;BR&gt;&lt;/STRONG&gt;Requires VFP9 and GdiPlusX to run.&amp;nbsp; &lt;IMG src="http://www.codeplex.com/VFPX/Project/FileDownload.aspx?DownloadId=3280"&gt; &lt;BR&gt;Please make sure that you have the latest version, because this sample may be using&amp;nbsp;some functions that were added or fixed recently. &lt;BR&gt;&lt;A href="http://www.codeplex.com/VFPX/Wiki/View.aspx?title=GDIPlusX&amp;amp;referringTitle=Home"&gt;&lt;FONT color=#02469b&gt;http://www.codeplex.com/VFPX/Wiki/View.aspx?title=GDIPlusX&amp;amp;referringTitle=Home&lt;/FONT&gt;&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Save the program below as BUTTON2BMP.PRG, and call it this way:&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Courier New" size=2&gt;Button2Bmp(&lt;FONT color=#0000ff&gt;GETPICT&lt;/FONT&gt;(), "c:\NewIcon.bmp")&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;When you compile this program in your executable, please don't forget to remove the &lt;FONT face="Courier New" size=2&gt;&lt;FONT color=#0000ff&gt;LOCFILE&lt;/FONT&gt;()&lt;/FONT&gt; command, and just use a &lt;FONT face="Courier New" size=2&gt;&lt;STRONG&gt;DO System.App&lt;/STRONG&gt;&lt;/FONT&gt; instead&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;&lt;FONT color=#0000ff&gt;LPARAMETERS&lt;/FONT&gt; &lt;FONT color=#000000&gt;tcSourceFile, tcDestFile&lt;/FONT&gt;&lt;BR&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;PRE class=codeblock&gt;&lt;FONT color=#006400&gt;* tcSourcefile = GETPICT()
* tcDestFile = FORCEEXT(tcSourceFile, "Bmp")&lt;/FONT&gt;

&lt;FONT color=blue&gt;DO&lt;/FONT&gt; &lt;FONT color=blue&gt;LOCFILE&lt;/FONT&gt;(&lt;FONT color=black&gt;"System.App"&lt;/FONT&gt;)

&lt;FONT color=blue&gt;LOCAL&lt;/FONT&gt; loBmp &lt;FONT color=blue&gt;AS&lt;/FONT&gt; xfcBitmap
&lt;FONT color=blue&gt;LOCAL&lt;/FONT&gt; loGfx &lt;FONT color=blue&gt;AS&lt;/FONT&gt; xfcGraphics
&lt;FONT color=blue&gt;LOCAL&lt;/FONT&gt; loBorderClr &lt;FONT color=blue&gt;AS&lt;/FONT&gt; xfcColor
&lt;FONT color=blue&gt;LOCAL&lt;/FONT&gt; loRect &lt;FONT color=blue&gt;AS&lt;/FONT&gt; xfcRectangle
&lt;FONT color=blue&gt;LOCAL&lt;/FONT&gt; loAttr &lt;FONT color=blue&gt;AS&lt;/FONT&gt; xfcImageAttributes
&lt;FONT color=blue&gt;LOCAL&lt;/FONT&gt; loColorMap &lt;FONT color=blue&gt;AS&lt;/FONT&gt; xfcColorMap
&lt;FONT color=blue&gt;LOCAL&lt;/FONT&gt; loDestBmp &lt;FONT color=blue&gt;as&lt;/FONT&gt; xfcBitmap
 
&lt;FONT color=blue&gt;WITH&lt;/FONT&gt; &lt;FONT color=blue&gt;_SCREEN&lt;/FONT&gt;.&lt;FONT color=blue&gt;SYSTEM&lt;/FONT&gt;.Drawing
	loColorMap = .Imaging.ColorMap.&lt;FONT color=blue&gt;New&lt;/FONT&gt;()
	loAttr = .Imaging.ImageAttributes.&lt;FONT color=blue&gt;New&lt;/FONT&gt;()
	loBmp = .&lt;FONT color=blue&gt;Bitmap&lt;/FONT&gt;.FromFile(tcSourceFile)
	loGfx = .Graphics.FromImage(loBmp)

	loDestBmp = .&lt;FONT color=blue&gt;Bitmap&lt;/FONT&gt;.&lt;FONT color=blue&gt;New&lt;/FONT&gt;(loBmp.&lt;FONT color=blue&gt;Width&lt;/FONT&gt;, loBmp.&lt;FONT color=blue&gt;Height&lt;/FONT&gt;, .Imaging.PixelFormat.Format24bppRGB)
	loDestGfx = .Graphics.FromImage(loDestBmp)

&lt;FONT color=green&gt;	* Clear the new bitmap&lt;/FONT&gt;
	loDestGfx.&lt;FONT color=blue&gt;Clear&lt;/FONT&gt;(.&lt;FONT color=blue&gt;Color&lt;/FONT&gt;.White)

&lt;FONT color=green&gt;	* By Craig Boyd - For enhancing the smoothless and quality&lt;/FONT&gt;
	loDestGfx.SmoothingMode     = .Drawing2D.SmoothingMode.HighQuality 
	loDestGfx.InterpolationMode = .Drawing2D.InterpolationMode.HighQualityBicubic
	loDestGfx.PixelOffsetMode   = .Drawing2D.PixelOffsetMode.HighQuality

	loRect = loBmp.GetBounds()

&lt;FONT color=green&gt;	* Get the top left pixel color, presuming this color is the BackGround color to become transparent&lt;/FONT&gt;
&lt;FONT color=green&gt;	* For our BMP case, this will become PURE WHITE - RGB(255,255,255)&lt;/FONT&gt;
&lt;FONT color=green&gt;	* that becomes transparent when used in VFP objects&lt;/FONT&gt;
	loBorderClr = loBmp.GetPixel(0,0)

&lt;FONT color=green&gt;	* Convert original Whites RGB(255,255,255) to OFF WHITE - RGB(254,254,254)&lt;/FONT&gt;
&lt;FONT color=green&gt;	* this way, the whites will remain without the need of a mask&lt;/FONT&gt;
	loColorMap.OldColor = .&lt;FONT color=blue&gt;Color&lt;/FONT&gt;.White
	loColorMap.NewColor = .&lt;FONT color=blue&gt;Color&lt;/FONT&gt;.FromARGB(255,254,254,254)

	loAttr.SetRemapTable(loColorMap)
	loDestGfx.DrawImage(loBmp, loRect, loRect, .GraphicsUnit.Pixel, loAttr)

&lt;FONT color=green&gt;	* Next step, convert the borders to pure White, RGB(255,255,255) that will become transparent in buttons&lt;/FONT&gt;
	loColorMap.OldColor = loBorderClr
	loColorMap.NewColor = .&lt;FONT color=blue&gt;Color&lt;/FONT&gt;.White
	loAttr.SetRemapTable(loColorMap)

	loDestGfx.DrawImage(loDestBmp, loRect, loRect, .GraphicsUnit.Pixel, loAttr)

	loDestBmp.&lt;FONT color=blue&gt;Save&lt;/FONT&gt;(tcDestFile, .Imaging.ImageFormat.Bmp)
&lt;FONT color=blue&gt;ENDWITH&lt;/FONT&gt;
&lt;/PRE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;img src="http://weblogs.foxite.com/aggbug.aspx?PostID=7441" width="1" height="1"&gt;</description><category domain="http://weblogs.foxite.com/vfpimaging/archive/category/187.aspx">GDI+ AND IMAGES</category></item><item><title>FoxCharts 0.40 BETA Released</title><link>http://weblogs.foxite.com/vfpimaging/archive/2008/06/30/6353.aspx</link><pubDate>Mon, 30 Jun 2008 04:50:00 GMT</pubDate><guid isPermaLink="false">8827bd1c-7596-4a8f-b0de-f59ce9ede522:6353</guid><dc:creator>cesarchalom</dc:creator><slash:comments>15</slash:comments><comments>http://weblogs.foxite.com/vfpimaging/comments/6353.aspx</comments><wfw:commentRss>http://weblogs.foxite.com/vfpimaging/commentrss.aspx?PostID=6353</wfw:commentRss><wfw:comment>http://weblogs.foxite.com/rsscomments/6353.aspx</wfw:comment><description>&lt;P&gt;&lt;B&gt;New features:&lt;/B&gt; &lt;BR&gt;- Vertical lines and bars in the scale background &lt;BR&gt;- Alpha allowed in all of the chart shapes and in scale background &lt;BR&gt;- Triangular and cylinder&amp;nbsp;bar charts &lt;BR&gt;- Angles compensation for pie and doughnut charts, allowing charts with good precision when width is bigger than the height (by &lt;A href="http://blog.moxiedata.com/"&gt;Bo Durban&lt;/A&gt;). &lt;BR&gt;- New sample, see: FoxCharts_New, that allows you to interactively change almost every property of the charts, creating lots of different and interesting charts.&lt;BR&gt;- Included an EXE sample project, for testing purposes &lt;BR&gt;- BackGround line of chart can be set in width, and also use some predefined dotted lines &lt;BR&gt;- Hiding slices from pies or doughnuts allowed &lt;BR&gt;- MemberData scripts for picking colors - in the properties window, double clicking any property that receives a color, will fire the colorpicker window &lt;BR&gt;- Colors may be passed using the RGB value, or using a VFP expression, like: "=RGB(0,0,255)" or even just like the way VFP uses for its native color properties: "0,0,255".&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;B&gt;Lots of fixes were applied in this version&lt;/B&gt; &lt;BR&gt;- Fixed cylinder and bars positions. &lt;BR&gt;- Fixed font assignment &lt;BR&gt;- Fixed class initialization that caused erros &lt;BR&gt;- Now the class does not show the "X" image in the class initialization &lt;BR&gt;- Fixed plain gradient Pie chart bug, that sometimes did not show the chart &lt;BR&gt;- Fixed print command &lt;BR&gt;- FoxCharts resizes faster &lt;BR&gt;- .... and many minor other fixes&lt;/P&gt;
&lt;P&gt;&lt;BR&gt;&lt;/P&gt;
&lt;P&gt;&lt;BR&gt;&lt;B&gt;SPECIAL THANKS:&lt;/B&gt; &lt;BR&gt;To the FoxBrazilian friends: Peter Wagner, Grego, &lt;A HREF="/emersonreed/"&gt;Emerson Reed&lt;/A&gt;, Minari, Moshe, Arcadio, Edgar, Paulo Henrique, Ninja Takehana, Walfrans, Joni and others for their extensive testing, and for providing important suggestions. &lt;BR&gt;And also: &lt;BR&gt;&lt;A href="http://blog.moxiedata.com/"&gt;Bo Durban &lt;/A&gt;(the best) and &lt;A href="http://www.ctl32.com.ar/"&gt;Carlos Alloatti&lt;/A&gt; (always there, with great insights) &lt;BR&gt;These guys have been providing important help and support. &lt;STRONG&gt;THANKS VERY MUCH&lt;/STRONG&gt; !&lt;/P&gt;
&lt;P&gt;&lt;BR&gt;Any feedback will be very much appreciated. &lt;BR&gt;If you would like to contribute, find any bug or would like to have some specific features, feel free to post in the VFPX Discussions forum or send directly a message to &lt;A href="mailto:vfpimaging@hotmail.com"&gt;vfpimaging@hotmail.com&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Get the latest release directly from the VFPX&amp;nbsp; / &lt;A href="http://www.codeplex.com/VFPX/Wiki/View.aspx?title=FoxCharts&amp;amp;referringTitle=Home"&gt;FoxCharts&lt;/A&gt; page at Codeplex:&lt;/P&gt;
&lt;P&gt;&lt;A title=http://www.codeplex.com/VFPX/Release/ProjectReleases.aspx?ReleaseId=14851 href="http://www.codeplex.com/VFPX/Release/ProjectReleases.aspx?ReleaseId=14851"&gt;http://www.codeplex.com/VFPX/Release/ProjectReleases.aspx?ReleaseId=14851&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Below are some pictures showing what &lt;A href="http://www.codeplex.com/VFPX/Wiki/View.aspx?title=FoxCharts&amp;amp;referringTitle=Home"&gt;FoxCharts&lt;/A&gt; can do so far:&lt;/P&gt;
&lt;P&gt;Enjoy !&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;IMG src="http:\\weblogs.foxite.com\files\vfpimaging\foxcharts\STACKEDAREA.PNG"&gt; &lt;BR&gt;&lt;IMG src="http:\\weblogs.foxite.com\files\vfpimaging\foxcharts\STACKEDBARS.PNG"&gt; &lt;BR&gt;&lt;IMG src="http:\\weblogs.foxite.com\files\vfpimaging\foxcharts\TRIANGLE1.PNG"&gt; &lt;BR&gt;&lt;IMG src="http:\\weblogs.foxite.com\files\vfpimaging\foxcharts\MULTITRIANGLE.PNG"&gt; &lt;BR&gt;&lt;IMG src="http:\\weblogs.foxite.com\files\vfpimaging\foxcharts\MULTIBARS.PNG"&gt; &lt;BR&gt;&lt;IMG src="http:\\weblogs.foxite.com\files\vfpimaging\foxcharts\PIEHIDESLICES.PNG"&gt; &lt;BR&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;IMG src="http:\\weblogs.foxite.com\files\vfpimaging\foxcharts\3DAREAGRAD.PNG"&gt; &lt;BR&gt;&lt;BR&gt;&lt;BR&gt;&lt;BR&gt;&lt;BR&gt;&lt;IMG src="http:\\weblogs.foxite.com\files\vfpimaging\foxcharts\3DDONUTRANDOM.PNG"&gt;&amp;nbsp;&lt;BR&gt;&lt;BR&gt;&lt;IMG src="http:\\weblogs.foxite.com\files\vfpimaging\foxcharts\3DDONUTVARIABLE2.PNG"&gt; &lt;BR&gt;&lt;BR&gt;&lt;IMG src="http:\\weblogs.foxite.com\files\vfpimaging\foxcharts\3DLINERANDOM.PNG"&gt; &lt;BR&gt;&lt;IMG src="http:\\weblogs.foxite.com\files\vfpimaging\foxcharts\3DPIEGRAD.PNG"&gt; &lt;BR&gt;&lt;BR&gt;&lt;IMG src="http:\\weblogs.foxite.com\files\vfpimaging\foxcharts\3DPIESOLID.PNG"&gt; &lt;BR&gt;&lt;IMG src="http:\\weblogs.foxite.com\files\vfpimaging\foxcharts\AREA3DTRANSP.PNG"&gt; &lt;BR&gt;&lt;IMG src="http:\\weblogs.foxite.com\files\vfpimaging\foxcharts\ARES3D2.PNG"&gt; &lt;BR&gt;&lt;IMG src="http:\\weblogs.foxite.com\files\vfpimaging\foxcharts\BARS13D.PNG"&gt; &lt;BR&gt;&lt;BR&gt;&lt;IMG src="http:\\weblogs.foxite.com\files\vfpimaging\foxcharts\CYL2.PNG"&gt; &lt;BR&gt;&lt;IMG src="http:\\weblogs.foxite.com\files\vfpimaging\foxcharts\CYLMONOCH.PNG"&gt; &lt;BR&gt;&lt;IMG src="http:\\weblogs.foxite.com\files\vfpimaging\foxcharts\CYLMULTI.PNG"&gt; &lt;BR&gt;&lt;BR&gt;&lt;IMG src="http:\\weblogs.foxite.com\files\vfpimaging\foxcharts\DONUTCAPTION.PNG"&gt; &lt;BR&gt;&lt;IMG src="http:\\weblogs.foxite.com\files\vfpimaging\foxcharts\DONUTCLOSED.PNG"&gt; &lt;BR&gt;&lt;IMG src="http:\\weblogs.foxite.com\files\vfpimaging\foxcharts\DONUTDETACH.PNG"&gt; &lt;BR&gt;&lt;IMG src="http:\\weblogs.foxite.com\files\vfpimaging\foxcharts\DONUTTRANSP.PNG"&gt; &lt;BR&gt;&lt;BR&gt;&lt;BR&gt;&lt;IMG src="http:\\weblogs.foxite.com\files\vfpimaging\foxcharts\imagem3.PNG"&gt; &lt;BR&gt;&lt;BR&gt;&lt;BR&gt;&lt;IMG src="http:\\weblogs.foxite.com\files\vfpimaging\foxcharts\LINE3DNOSCALE.PNG"&gt; &lt;BR&gt;&lt;IMG src="http:\\weblogs.foxite.com\files\vfpimaging\foxcharts\LINE3DTRANSP.PNG"&gt; &lt;BR&gt;&lt;IMG src="http:\\weblogs.foxite.com\files\vfpimaging\foxcharts\LINEMAIN.PNG"&gt; &lt;BR&gt;&lt;IMG src="http:\\weblogs.foxite.com\files\vfpimaging\foxcharts\MULTIBAR2.PNG"&gt; &lt;BR&gt;&lt;BR&gt;&lt;IMG src="http:\\weblogs.foxite.com\files\vfpimaging\foxcharts\MULTIPMONOCH.PNG"&gt;&amp;nbsp;&lt;BR&gt;&amp;nbsp;&lt;BR&gt;&lt;BR&gt;&lt;BR&gt;&lt;IMG src="http:\\weblogs.foxite.com\files\vfpimaging\foxcharts\PIETRANSP.PNG"&gt; &lt;BR&gt;&lt;BR&gt;&lt;BR&gt;&lt;BR&gt;&lt;BR&gt;&lt;IMG src="http:\\weblogs.foxite.com\files\vfpimaging\foxcharts\POINTMAIN.PNG"&gt; &lt;BR&gt;&lt;IMG src="http:\\weblogs.foxite.com\files\vfpimaging\foxcharts\POINTMONOCHR.PNG"&gt; &lt;BR&gt;&lt;IMG src="http:\\weblogs.foxite.com\files\vfpimaging\foxcharts\rEPORT.PNG"&gt; &lt;BR&gt;&lt;IMG src="http:\\weblogs.foxite.com\files\vfpimaging\foxcharts\sampleform.PNG"&gt; &lt;BR&gt;&lt;IMG src="http:\\weblogs.foxite.com\files\vfpimaging\foxcharts\STACKAREA1.PNG"&gt; &lt;BR&gt;&lt;IMG src="http:\\weblogs.foxite.com\files\vfpimaging\foxcharts\STACKAREA2.PNG"&gt; &lt;BR&gt;&lt;IMG src="http:\\weblogs.foxite.com\files\vfpimaging\foxcharts\STACKAREA3.PNG"&gt; &lt;BR&gt;&lt;IMG src="http:\\weblogs.foxite.com\files\vfpimaging\foxcharts\STACKED3D.PNG"&gt; &lt;BR&gt;&lt;IMG src="http:\\weblogs.foxite.com\files\vfpimaging\foxcharts\STACKED3D2.PNG"&gt; &lt;BR&gt;&lt;IMG src="http:\\weblogs.foxite.com\files\vfpimaging\foxcharts\STACKED3D3.PNG"&gt; &lt;BR&gt;&lt;IMG src="http:\\weblogs.foxite.com\files\vfpimaging\foxcharts\STACKED3DAXYS.PNG"&gt;&amp;nbsp;&lt;BR&gt;&amp;nbsp;&lt;BR&gt;&amp;nbsp;&lt;BR&gt;&lt;img src="http://weblogs.foxite.com/aggbug.aspx?PostID=6353" width="1" height="1"&gt;</description><category domain="http://weblogs.foxite.com/vfpimaging/archive/category/187.aspx">GDI+ AND IMAGES</category><category domain="http://weblogs.foxite.com/vfpimaging/archive/category/1029.aspx">VFP in General</category></item><item><title>Full Justified texts in reports with GdiPlusX - REVISITED</title><link>http://weblogs.foxite.com/vfpimaging/archive/2008/06/15/6268.aspx</link><pubDate>Sun, 15 Jun 2008 03:46:00 GMT</pubDate><guid isPermaLink="false">8827bd1c-7596-4a8f-b0de-f59ce9ede522:6268</guid><dc:creator>cesarchalom</dc:creator><slash:comments>8</slash:comments><comments>http://weblogs.foxite.com/vfpimaging/comments/6268.aspx</comments><wfw:commentRss>http://weblogs.foxite.com/vfpimaging/commentrss.aspx?PostID=6268</wfw:commentRss><wfw:comment>http://weblogs.foxite.com/rsscomments/6268.aspx</wfw:comment><description>&lt;P&gt;As I've shown in a &lt;A HREF="/vfpimaging/archive/2007/04/05/3641.aspx"&gt;previous post&lt;/A&gt; from last year, this is totally possible for us in VFP, using the GdiPlusX library together with ReportListeners, remember?&lt;/P&gt;
&lt;P&gt; &lt;/P&gt;
&lt;P&gt;&lt;IMG src="/photos/cesarchalom/images/3589/original.aspx"&gt;&lt;/P&gt;
&lt;P&gt;BUT I've been receiving some emails about the Full-Justified ReportListener I published last year.&lt;/P&gt;
&lt;P&gt;It did not deal with the possibility of multipage reports. In fact, when a string that had to be printed in FullJustified mode had to be divided in more than one page, in the next page the whole string was redrawn.&lt;/P&gt;
&lt;P&gt;To solve this, I needed to make some adjustments in the report listener source, more specifically in the "Render" event, in order to deal with the parameters "nObjectContinuationType" and "cContentsToBeRendered". I had totally missed them. In the first version, I was only using the "Text" property that I retrieved in the "EvaluateContents" method. The first tells us if the text could be totally drawn, or partially. The 2nd, brings the text that is to be drawn, not the whole text.&lt;/P&gt;
&lt;P&gt;It's amazing how we can control our output with all these new enhancements from the VFP9 Reporting System. In fact, we can control almost everything ! &lt;/P&gt;
&lt;P&gt;It's a pity I couldn't explore this tool as much as I would like, the possibilities seem to be infinite.&lt;/P&gt;
&lt;P&gt; &lt;/P&gt;
&lt;P&gt;In HELP I found all the info I needed to fix it:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;FONT color=#00bbbb&gt;&lt;FONT color=#000000&gt;&lt;STRONG&gt;&lt;U&gt;nObjectContinuationType&lt;/U&gt;&lt;/STRONG&gt; &lt;/FONT&gt;&lt;BR&gt;&lt;/FONT&gt;&lt;FONT color=#408080&gt;* Indicates the current continuation state for the rendered element. When layout elements span pages, they are rendered in multiple sections (once for each page). &lt;BR&gt;* Value  Continuation Type  &lt;BR&gt;*   0    Complete (no continuation). &lt;BR&gt;*   1    Start of layout element occurrence, will not finish on the current page. &lt;BR&gt;*   2    Mid-element, neither started nor finished on the current page. &lt;BR&gt;*   3    End of element, completed on the current page.&lt;/FONT&gt; &lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt; &lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;STRONG&gt;&lt;U&gt;cContentsToBeRendered&lt;/U&gt;&lt;/STRONG&gt; &lt;BR&gt;&lt;FONT color=#408080&gt;* Indicates the text to be rendered for Expression (Field) and Label layout elements. &lt;BR&gt;* If your derived class sends the text value through some additional processing, such as storage in a table, you can use the STRCONV() function, and its optional regional script parameter, to convert the string to DBCS first. For more information, see STRCONV( ) Function.&lt;/FONT&gt; &lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt; &lt;/P&gt;
&lt;P&gt;Some important tweaks and fixes were needed in the GdiPlusX library too, more specifically in the xfcGraphics.DrawStringJustified function. I added to it a new parameter, "tlJustifyLast", in order fo force the justifying in the last sentence. This is for the case of reports, when an unfinished sentence needs to be justified as well.&lt;/P&gt;
&lt;P&gt; &lt;/P&gt;
&lt;P&gt;The source code is below, you can adapt it to your needs !&lt;/P&gt;
&lt;P&gt; &lt;/P&gt;
&lt;P&gt; &lt;/P&gt;
&lt;P&gt;The idea is to add a "&lt;STRONG&gt;&lt;/STRONG&gt;" tag in the USER tab or in the beginning of any string from a textbox in a report, to tell the ReportListener that it will draw the text using the &lt;STRONG&gt;DRAWSTRINGJUSTIFIED &lt;/STRONG&gt;method from GdiPlusX. Special thanks to Victor Espinoza, from Miami, FL, for his important feedback, suggestions and fixes.&lt;/P&gt;
&lt;P&gt; &lt;/P&gt;
&lt;P&gt;The "&lt;STRONG&gt;FullJustifyListener&lt;/STRONG&gt;" performs the following actions: &lt;/P&gt;
&lt;P&gt;- Initializes GdiPlusX &lt;/P&gt;
&lt;P&gt;- Creates a GDI+ Graphics object that will be used to draw in the report &lt;/P&gt;
&lt;P&gt;- Stores in an array the required information needed to draw the string(Font, Size, Style and Color) &lt;/P&gt;
&lt;P&gt;- Before Rendering the string, checks if the "" tag is at the beginning of text or at the "USER" tab in the report designer - if yes, draws the string using the new method. &lt;/P&gt;
&lt;H6&gt;&lt;STRONG&gt;&lt;/STRONG&gt;&lt;/H6&gt;
&lt;H5&gt;&lt;STRONG&gt;&lt;FONT color=#ff0000&gt;&lt;/FONT&gt;&lt;/STRONG&gt;&lt;/H5&gt;
&lt;H5&gt;&lt;STRONG&gt;&lt;FONT color=#ff0000&gt;&lt;/FONT&gt;&lt;/STRONG&gt;&lt;/H5&gt;
&lt;H5&gt;&lt;STRONG&gt;&lt;FONT color=#ff0000&gt;&lt;/FONT&gt;&lt;/STRONG&gt;&lt;/H5&gt;
&lt;P&gt;Here are the steps for you to bring this to your reports:&lt;/P&gt;
&lt;P&gt; &lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;1 - Download the updated GdiPlusX library - the System.App file&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;&lt;FONT color=#ff0000&gt;&lt;/FONT&gt;&lt;/STRONG&gt;&lt;/P&gt;
&lt;H5&gt;&lt;STRONG&gt;&lt;FONT color=#ff0000&gt;VERY IMPORTANT - READ THIS !&lt;/FONT&gt;&lt;/STRONG&gt;&lt;/H5&gt;
&lt;P&gt;This report listener needs the updated version of the GdiPlusX main file of the library, "System.App". As it will take some time till a new version will be released, I've uploaded this file separately, so that people can try this feature from now.&lt;/P&gt;
&lt;P&gt;Go to this link: &lt;A title=http://www.codeplex.com/VFPX/Release/ProjectReleases.aspx?ReleaseId=8606 href="http://www.codeplex.com/VFPX/Release/ProjectReleases.aspx?ReleaseId=8606"&gt;http://www.codeplex.com/VFPX/Release/ProjectReleases.aspx?ReleaseId=8606&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;And download the file "&lt;FONT color=#8080ff&gt;GdiPlusX Updated System.App for FullJustified purposes&lt;/FONT&gt;"&lt;/P&gt;
&lt;P&gt;If you prefer, this file is found in the &lt;A HREF="/files/vfpimaging/fjlistener/FJListener.rar"&gt;downloadable source code from this article&lt;/A&gt;.&lt;/P&gt;
&lt;P&gt; &lt;/P&gt;
&lt;P&gt;&lt;IMG src="/files/vfpimaging/fjlistener/FJ_Download.png"&gt; &lt;/P&gt;
&lt;P&gt; &lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;2 - Save the ReportListener:&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;Please Copy and Paste the code below, and save it as &lt;STRONG&gt;FJLISTENER.PRG&lt;/STRONG&gt; in the samples folder of GdiPlusX  &lt;/P&gt;
&lt;P&gt; &lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT color=#008000 size=2 face="Courier New"&gt;* Program : FJLISTENER.PRG &lt;BR&gt;* Version : 2.0 &lt;BR&gt;* Purpose : Provides a Report Listener that allows rendering text in &lt;BR&gt;* Full Justify alignment. &lt;BR&gt;* Authors : Cesar Ch &lt;/FONT&gt;&lt;U&gt;&lt;FONT size=2 face="Courier New"&gt;http://weblogs.foxite.com/vfpimaging &lt;BR&gt;&lt;/FONT&gt;&lt;/U&gt;&lt;FONT color=#008000 size=2 face="Courier New"&gt;* Class based on article "Listening to a report" by Doug Hennig &lt;BR&gt;* New tweaked version allows drawing strings that need to be divided in more than one page&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT color=#008000 size=2 face="Courier New"&gt;* Special thanks to Victor Espinoza &lt;BR&gt;* &lt;/FONT&gt;&lt;U&gt;&lt;FONT size=2 face="Courier New"&gt;&lt;A href="http://msdn2.microsoft.com/en-us/library/ms947682.aspx"&gt;http://msdn2.microsoft.com/en-us/library/ms947682.aspx&lt;/A&gt; &lt;BR&gt;&lt;/P&gt;&lt;/FONT&gt;&lt;/U&gt;&lt;FONT color=#0000ff size=2 face="Courier New"&gt;&lt;/FONT&gt;
&lt;P&gt;&lt;FONT color=#0000ff size=2 face="Courier New"&gt;DEFINE CLASS &lt;/FONT&gt;&lt;FONT size=2 face="Courier New"&gt;FullJustifyListener &lt;/FONT&gt;&lt;FONT color=#0000ff size=2 face="Courier New"&gt;AS &lt;/FONT&gt;&lt;FONT size=2 face="Courier New"&gt;_ReportListener &lt;FONT color=#0000ff&gt;OF HOME&lt;/FONT&gt;() + 'FFC\_ReportListener.VCX'&lt;BR&gt;oGDIGraphics = &lt;/FONT&gt;&lt;FONT color=#0000ff size=2 face="Courier New"&gt;NULL &lt;BR&gt;&lt;/FONT&gt;&lt;FONT size=2 face="Courier New"&gt;nSaveGraphicsHandle = 0 &lt;BR&gt;nTimes = 1 &lt;BR&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2 face="Courier New"&gt;DIMENSION &lt;/FONT&gt;&lt;FONT size=2 face="Courier New"&gt;aRecords[1] &lt;BR&gt;  &lt;BR&gt;&lt;/FONT&gt;&lt;FONT color=#008000 size=2 face="Courier New"&gt;* Before we run the report, go through the FRX and store information about any &lt;BR&gt;* field with our expected directive in its USER memo into the aRecords array. &lt;BR&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2 face="Courier New"&gt;FUNCTION BEFOREREPORT &lt;BR&gt;   DODEFAULT&lt;/FONT&gt;&lt;FONT size=2 face="Courier New"&gt;() &lt;BR&gt;&lt;/FONT&gt;&lt;FONT color=#008000 size=2 face="Courier New"&gt;   * Check if we already have the "System" object in "_Screen" &lt;BR&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2 face="Courier New"&gt;   IF &lt;/FONT&gt;&lt;FONT size=2 face="Courier New"&gt;NOT &lt;/FONT&gt;&lt;FONT color=#0000ff size=2 face="Courier New"&gt;PEMSTATUS&lt;/FONT&gt;&lt;FONT size=2 face="Courier New"&gt;(&lt;/FONT&gt;&lt;FONT color=#0000ff size=2 face="Courier New"&gt;_Screen&lt;/FONT&gt;&lt;FONT size=2 face="Courier New"&gt;,"System",5) &lt;BR&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2 face="Courier New"&gt;      DO LOCFILE&lt;/FONT&gt;&lt;FONT size=2 face="Courier New"&gt;("System.App") &lt;BR&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2 face="Courier New"&gt;   ENDIF &lt;BR&gt;   WITH This &lt;BR&gt;&lt;/FONT&gt;&lt;FONT size=2 face="Courier New"&gt;      .oGDIGraphics = &lt;/FONT&gt;&lt;FONT color=#0000ff size=2 face="Courier New"&gt;_SCREEN&lt;/FONT&gt;&lt;FONT size=2 face="Courier New"&gt;.&lt;/FONT&gt;&lt;FONT color=#0000ff size=2 face="Courier New"&gt;SYSTEM&lt;/FONT&gt;&lt;FONT size=2 face="Courier New"&gt;.Drawing.Graphics.New() &lt;BR&gt;      .SetFRXDataSession() &lt;BR&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2 face="Courier New"&gt;      DIMENSION &lt;/FONT&gt;&lt;FONT size=2 face="Courier New"&gt;.aRecords[reccount(), 13] &lt;BR&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2 face="Courier New"&gt;      SCAN FOR &lt;/FONT&gt;&lt;FONT size=2 face="Courier New"&gt;"" $ &lt;/FONT&gt;&lt;FONT color=#0000ff size=2 face="Courier New"&gt;UPPER&lt;/FONT&gt;&lt;FONT size=2 face="Courier New"&gt;(&lt;/FONT&gt;&lt;FONT color=#0000ff size=2 face="Courier New"&gt;User&lt;/FONT&gt;&lt;FONT size=2 face="Courier New"&gt;) &lt;BR&gt;         .aRecords[recno(), 13] = "FJ" &lt;BR&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2 face="Courier New"&gt;      ENDSCAN &lt;BR&gt;&lt;/FONT&gt;&lt;FONT size=2 face="Courier New"&gt;     .ResetDataSession() &lt;BR&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2 face="Courier New"&gt;   ENDWITH &lt;BR&gt;ENDFUNC &lt;BR&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT color=#0000ff size=2 face="Courier New"&gt;FUNCTION BEFOREBAND&lt;/FONT&gt;&lt;FONT size=2 face="Courier New"&gt;(nBandObjCode, nFRXRecNo) &lt;BR&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2 face="Courier New"&gt;   This&lt;/FONT&gt;&lt;FONT size=2 face="Courier New"&gt;.SharedGDIPlusGraphics = &lt;/FONT&gt;&lt;FONT color=#0000ff size=2 face="Courier New"&gt;This&lt;/FONT&gt;&lt;FONT size=2 face="Courier New"&gt;.&lt;/FONT&gt;&lt;FONT color=#0000ff size=2 face="Courier New"&gt;GDIPLUSGRAPHICS &lt;BR&gt;   This&lt;/FONT&gt;&lt;FONT size=2 face="Courier New"&gt;.oGDIGraphics.Handle = &lt;/FONT&gt;&lt;FONT color=#0000ff size=2 face="Courier New"&gt;This&lt;/FONT&gt;&lt;FONT size=2 face="Courier New"&gt;.SharedGDIPlusGraphics &lt;BR&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2 face="Courier New"&gt;   DODEFAULT&lt;/FONT&gt;&lt;FONT size=2 face="Courier New"&gt;(nBandObjCode, nFRXRecNo) &lt;BR&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2 face="Courier New"&gt;ENDFUNC &lt;BR&gt;  &lt;BR&gt;PROCEDURE RENDER&lt;/FONT&gt;&lt;FONT size=2 face="Courier New"&gt;(tnFRXRecNo,; &lt;BR&gt;   tnLeft,tnTop,tnWidth,tnHeight,; &lt;BR&gt;   nObjectContinuationType, ; &lt;BR&gt;   cContentsToBeRendered, GDIPlusImage) &lt;BR&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2 face="Courier New"&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT color=#0000ff size=2 face="Courier New"&gt;   LOCAL &lt;/FONT&gt;&lt;FONT size=2 face="Courier New"&gt;lcText, llFlag &lt;BR&gt;   llFlag = .F. &lt;BR&gt;   lcText = &lt;/FONT&gt;&lt;FONT color=#0000ff size=2 face="Courier New"&gt;This&lt;/FONT&gt;&lt;FONT size=2 face="Courier New"&gt;.aRecords(tnFRXRecNo,1) &lt;BR&gt;&lt;BR&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2 face="Courier New"&gt;   IF &lt;/FONT&gt;&lt;FONT size=2 face="Courier New"&gt;(&lt;/FONT&gt;&lt;FONT color=#0000ff size=2 face="Courier New"&gt;VARTYPE&lt;/FONT&gt;&lt;FONT size=2 face="Courier New"&gt;(lcText) = "C" AND &lt;/FONT&gt;&lt;FONT color=#0000ff size=2 face="Courier New"&gt;LEFT&lt;/FONT&gt;&lt;FONT size=2 face="Courier New"&gt;(lcText,4) = "") OR ; &lt;BR&gt;      (&lt;/FONT&gt;&lt;FONT color=#0000ff size=2 face="Courier New"&gt;VARTYPE&lt;/FONT&gt;&lt;FONT size=2 face="Courier New"&gt;(&lt;/FONT&gt;&lt;FONT color=#0000ff size=2 face="Courier New"&gt;This&lt;/FONT&gt;&lt;FONT size=2 face="Courier New"&gt;.aRecords(tnFRXRecNo,13)) = "C" AND &lt;/FONT&gt;&lt;FONT color=#0000ff size=2 face="Courier New"&gt;This&lt;/FONT&gt;&lt;FONT size=2 face="Courier New"&gt;.aRecords(tnFRXRecNo,13) == "FJ") &lt;BR&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2 face="Courier New"&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT color=#0000ff size=2 face="Courier New"&gt;      IF &lt;/FONT&gt;&lt;FONT size=2 face="Courier New"&gt;nObjectContinuationType &gt; 0 &lt;BR&gt;&lt;/FONT&gt;&lt;FONT color=#008000 size=2 face="Courier New"&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT color=#008000 size=2 face="Courier New"&gt;      * nObjectContinuationType &lt;BR&gt;      * ----------------------- &lt;BR&gt;      * Indicates the current continuation state for the rendered element. When layout elements span pages, they are rendered in multiple sections (once for each page). &lt;BR&gt;      * Value Continuation Type &lt;BR&gt;      * 0 Complete (no continuation). &lt;BR&gt;      * 1 Start of layout element occurrence, will not finish on the current page. &lt;BR&gt;      * 2 Mid-element, neither started nor finished on the current page. &lt;BR&gt;      * 3 End of element, completed on the current page. &lt;BR&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT color=#008000 size=2 face="Courier New"&gt;      * cContentsToBeRendered &lt;BR&gt;      * --------------------- &lt;BR&gt;      * Indicates the text to be rendered for Expression (Field) and Label layout elements. &lt;BR&gt;      * If your derived class sends the text value through some additional processing, such as storage in a table, you can use the STRCONV() function, and its optional regional script parameter, to convert the string to DBCS first. For more information, see STRCONV( ) Function. &lt;BR&gt;&lt;/FONT&gt;&lt;FONT size=2 face="Courier New"&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT size=2 face="Courier New"&gt;         lcText = &lt;/FONT&gt;&lt;FONT color=#0000ff size=2 face="Courier New"&gt;STRCONV&lt;/FONT&gt;&lt;FONT size=2 face="Courier New"&gt;(cContentsToBeRendered,6) &lt;BR&gt;&lt;BR&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2 face="Courier New"&gt;            IF INLIST&lt;/FONT&gt;&lt;FONT size=2 face="Courier New"&gt;(nObjectContinuationType, 1, 2) &lt;BR&gt;               llFlag = .T. &lt;BR&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2 face="Courier New"&gt;            ENDIF &lt;BR&gt;         ENDIF &lt;BR&gt;  &lt;BR&gt;         IF UPPER&lt;/FONT&gt;&lt;FONT size=2 face="Courier New"&gt;(&lt;/FONT&gt;&lt;FONT color=#0000ff size=2 face="Courier New"&gt;LEFT&lt;/FONT&gt;&lt;FONT size=2 face="Courier New"&gt;(lcText,4)) = "" &lt;BR&gt;            lcText = &lt;/FONT&gt;&lt;FONT color=#0000ff size=2 face="Courier New"&gt;SUBSTR&lt;/FONT&gt;&lt;FONT size=2 face="Courier New"&gt;(lcText,5) &lt;/FONT&gt;&lt;FONT color=#008000 size=2 face="Courier New"&gt;&amp;&amp; Remove the  tag from string &lt;BR&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2 face="Courier New"&gt;         ENDIF &lt;BR&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT color=#0000ff size=2 face="Courier New"&gt;         WITH _SCREEN&lt;/FONT&gt;&lt;FONT size=2 face="Courier New"&gt;.&lt;/FONT&gt;&lt;FONT color=#0000ff size=2 face="Courier New"&gt;SYSTEM&lt;/FONT&gt;&lt;FONT size=2 face="Courier New"&gt;.Drawing &lt;BR&gt;&lt;BR&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2 face="Courier New"&gt;         This&lt;/FONT&gt;&lt;FONT size=2 face="Courier New"&gt;.oGDIGraphics.Handle = &lt;/FONT&gt;&lt;FONT color=#0000ff size=2 face="Courier New"&gt;This&lt;/FONT&gt;&lt;FONT size=2 face="Courier New"&gt;.&lt;/FONT&gt;&lt;FONT color=#0000ff size=2 face="Courier New"&gt;GDIPlusGraphics &lt;BR&gt;&lt;/FONT&gt;&lt;FONT color=#008000 size=2 face="Courier New"&gt;         *!* Create a GDI+ Rectangle which specifies where on the &lt;BR&gt;         *!* surface we're drawing the text. &lt;BR&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2 face="Courier New"&gt;         LOCAL &lt;/FONT&gt;&lt;FONT size=2 face="Courier New"&gt;loRectF &lt;/FONT&gt;&lt;FONT color=#0000ff size=2 face="Courier New"&gt;as &lt;/FONT&gt;&lt;FONT size=2 face="Courier New"&gt;xfcRectangleF &lt;BR&gt;         loRectF = .RectangleF.New(tnLeft, tnTop, tnWidth, tnHeight) &lt;BR&gt;&lt;BR&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2 face="Courier New"&gt;         LOCAL &lt;/FONT&gt;&lt;FONT size=2 face="Courier New"&gt;loFont &lt;/FONT&gt;&lt;FONT color=#0000ff size=2 face="Courier New"&gt;as &lt;/FONT&gt;&lt;FONT size=2 face="Courier New"&gt;xfcFont &lt;BR&gt;         loFont = .&lt;/FONT&gt;&lt;FONT color=#0000ff size=2 face="Courier New"&gt;Font&lt;/FONT&gt;&lt;FONT size=2 face="Courier New"&gt;.New(&lt;/FONT&gt;&lt;FONT color=#0000ff size=2 face="Courier New"&gt;This&lt;/FONT&gt;&lt;FONT size=2 face="Courier New"&gt;.aRecords(tnFRXRecNo,2) ; &lt;BR&gt;            , &lt;/FONT&gt;&lt;FONT color=#0000ff size=2 face="Courier New"&gt;This&lt;/FONT&gt;&lt;FONT size=2 face="Courier New"&gt;.aRecords(tnFRXRecNo,4), &lt;/FONT&gt;&lt;FONT color=#0000ff size=2 face="Courier New"&gt;This&lt;/FONT&gt;&lt;FONT size=2 face="Courier New"&gt;.aRecords(tnFRXRecNo,3) ; &lt;BR&gt;            , .GraphicsUnit.&lt;/FONT&gt;&lt;FONT color=#0000ff size=2 face="Courier New"&gt;Point&lt;/FONT&gt;&lt;FONT size=2 face="Courier New"&gt;) &lt;BR&gt;&lt;BR&gt;&lt;/FONT&gt;&lt;FONT color=#008000 size=2 face="Courier New"&gt;         * Retrieve colors for the background &lt;BR&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2 face="Courier New"&gt;         LOCAL &lt;/FONT&gt;&lt;FONT size=2 face="Courier New"&gt;lnRed, lnGreen, lnBlue, lnAlpha &lt;BR&gt;         lnRed = &lt;/FONT&gt;&lt;FONT color=#0000ff size=2 face="Courier New"&gt;This&lt;/FONT&gt;&lt;FONT size=2 face="Courier New"&gt;.aRecords[tnFRXRecno,5] &lt;BR&gt;         lnGreen = &lt;/FONT&gt;&lt;FONT color=#0000ff size=2 face="Courier New"&gt;This&lt;/FONT&gt;&lt;FONT size=2 face="Courier New"&gt;.aRecords[tnFRXRecno,6] &lt;BR&gt;         lnBlue = &lt;/FONT&gt;&lt;FONT color=#0000ff size=2 face="Courier New"&gt;This&lt;/FONT&gt;&lt;FONT size=2 face="Courier New"&gt;.aRecords[tnFRXRecno,7] &lt;BR&gt;         lnAlpha = &lt;/FONT&gt;&lt;FONT color=#0000ff size=2 face="Courier New"&gt;This&lt;/FONT&gt;&lt;FONT size=2 face="Courier New"&gt;.aRecords[tnFRXRecno,8] &lt;BR&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2 face="Courier New"&gt;         LOCAL &lt;/FONT&gt;&lt;FONT size=2 face="Courier New"&gt;loBackBrush &lt;/FONT&gt;&lt;FONT color=#0000ff size=2 face="Courier New"&gt;as &lt;/FONT&gt;&lt;FONT size=2 face="Courier New"&gt;xfcSolidBrush &lt;BR&gt;         loBackBrush = .SolidBrush.New(; &lt;BR&gt;            .&lt;/FONT&gt;&lt;FONT color=#0000ff size=2 face="Courier New"&gt;Color&lt;/FONT&gt;&lt;FONT size=2 face="Courier New"&gt;.FromArgb(lnAlpha,lnRed, lnGreen, lnBlue)) &lt;BR&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2 face="Courier New"&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT color=#0000ff size=2 face="Courier New"&gt;         This&lt;/FONT&gt;&lt;FONT size=2 face="Courier New"&gt;.oGdiGraphics.FillRectangle(loBackBrush, tnLeft, tnTop, tnWidth, tnHeight) &lt;BR&gt;&lt;/FONT&gt;&lt;FONT color=#008000 size=2 face="Courier New"&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT color=#008000 size=2 face="Courier New"&gt;         * Retieve colors for the Text &lt;BR&gt;&lt;/FONT&gt;&lt;FONT size=2 face="Courier New"&gt;         lnRed = &lt;/FONT&gt;&lt;FONT color=#0000ff size=2 face="Courier New"&gt;This&lt;/FONT&gt;&lt;FONT size=2 face="Courier New"&gt;.aRecords[tnFRXRecno,9] &lt;BR&gt;         lnGreen = &lt;/FONT&gt;&lt;FONT color=#0000ff size=2 face="Courier New"&gt;This&lt;/FONT&gt;&lt;FONT size=2 face="Courier New"&gt;.aRecords[tnFRXRecno,10] &lt;BR&gt;         lnBlue = &lt;/FONT&gt;&lt;FONT color=#0000ff size=2 face="Courier New"&gt;This&lt;/FONT&gt;&lt;FONT size=2 face="Courier New"&gt;.aRecords[tnFRXRecno,11] &lt;BR&gt;         lnAlpha = &lt;/FONT&gt;&lt;FONT color=#0000ff size=2 face="Courier New"&gt;This&lt;/FONT&gt;&lt;FONT size=2 face="Courier New"&gt;.aRecords[tnFRXRecno,12] &lt;BR&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2 face="Courier New"&gt;         LOCAL &lt;/FONT&gt;&lt;FONT size=2 face="Courier New"&gt;loTextBrush &lt;/FONT&gt;&lt;FONT color=#0000ff size=2 face="Courier New"&gt;as &lt;/FONT&gt;&lt;FONT size=2 face="Courier New"&gt;xfcSolidBrush &lt;BR&gt;         loTextBrush = .SolidBrush.New(; &lt;BR&gt;            .&lt;/FONT&gt;&lt;FONT color=#0000ff size=2 face="Courier New"&gt;Color&lt;/FONT&gt;&lt;FONT size=2 face="Courier New"&gt;.FromArgb(lnAlpha,lnRed, lnGreen, lnBlue)) &lt;BR&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2 face="Courier New"&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT color=#0000ff size=2 face="Courier New"&gt;         This&lt;/FONT&gt;&lt;FONT size=2 face="Courier New"&gt;.oGdiGraphics.DrawStringJustified(lcText, loFont, loTextBrush, loRectF, llFlag)&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT color=#0000ff size=2 face="Courier New"&gt;         ENDWITH &lt;BR&gt;      ELSE &lt;BR&gt;&lt;/FONT&gt;&lt;FONT color=#008000 size=2 face="Courier New"&gt;      *!* If we're not drawing a full justified string, &lt;BR&gt;      *!* let Fox draw the text as usual. &lt;BR&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2 face="Courier New"&gt;         DODEFAULT&lt;/FONT&gt;&lt;FONT size=2 face="Courier New"&gt;(tnFRXRecNo, tnLeft, tnTop, tnWidth, tnHeight, ; &lt;BR&gt;            nObjectContinuationType, cContentsToBeRendered, GDIPlusImage) &lt;BR&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2 face="Courier New"&gt;      ENDIF &lt;BR&gt;&lt;BR&gt;&lt;/FONT&gt;&lt;FONT color=#008000 size=2 face="Courier New"&gt;      *!* Since we already drew the text, we don't want the default &lt;BR&gt;      *!* behavior to occur. &lt;BR&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2 face="Courier New"&gt;   NODEFAULT &lt;BR&gt;ENDPROC &lt;BR&gt;&lt;BR&gt;FUNCTION EvaluateContents&lt;/FONT&gt;&lt;FONT size=2 face="Courier New"&gt;(tnFRXRecno, toObjProperties) &lt;BR&gt;&lt;/FONT&gt;&lt;FONT color=#008000 size=2 face="Courier New"&gt;   * Get the FRX data &lt;BR&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2 face="Courier New"&gt;   This&lt;/FONT&gt;&lt;FONT size=2 face="Courier New"&gt;.aRecords[tnFRXRecno,1] = toObjProperties.&lt;/FONT&gt;&lt;FONT color=#0000ff size=2 face="Courier New"&gt;Text &lt;BR&gt;   This&lt;/FONT&gt;&lt;FONT size=2 face="Courier New"&gt;.aRecords[tnFRXRecno,2] = toObjProperties.&lt;/FONT&gt;&lt;FONT color=#0000ff size=2 face="Courier New"&gt;FontName &lt;BR&gt;   This&lt;/FONT&gt;&lt;FONT size=2 face="Courier New"&gt;.aRecords[tnFRXRecno,3] = toObjProperties.FontStyle &lt;BR&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2 face="Courier New"&gt;   This&lt;/FONT&gt;&lt;FONT size=2 face="Courier New"&gt;.aRecords[tnFRXRecno,4] = toObjProperties.&lt;/FONT&gt;&lt;FONT color=#0000ff size=2 face="Courier New"&gt;FontSize &lt;BR&gt;   This&lt;/FONT&gt;&lt;FONT size=2 face="Courier New"&gt;.aRecords[tnFRXRecno,5] = toObjProperties.FillRed &lt;BR&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2 face="Courier New"&gt;   This&lt;/FONT&gt;&lt;FONT size=2 face="Courier New"&gt;.aRecords[tnFRXRecno,6] = toObjProperties.FillGreen &lt;BR&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2 face="Courier New"&gt;   This&lt;/FONT&gt;&lt;FONT size=2 face="Courier New"&gt;.aRecords[tnFRXRecno,7] = toObjProperties.FillBlue &lt;BR&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2 face="Courier New"&gt;   This&lt;/FONT&gt;&lt;FONT size=2 face="Courier New"&gt;.aRecords[tnFRXRecno,8] = toObjProperties.FillAlpha &lt;BR&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2 face="Courier New"&gt;   This&lt;/FONT&gt;&lt;FONT size=2 face="Courier New"&gt;.aRecords[tnFRXRecno,9] = toObjProperties.PenRed &lt;BR&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2 face="Courier New"&gt;   This&lt;/FONT&gt;&lt;FONT size=2 face="Courier New"&gt;.aRecords[tnFRXRecno,10] = toObjProperties.PenGreen &lt;BR&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2 face="Courier New"&gt;   This&lt;/FONT&gt;&lt;FONT size=2 face="Courier New"&gt;.aRecords[tnFRXRecno,11] = toObjProperties.PenBlue &lt;BR&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2 face="Courier New"&gt;   This&lt;/FONT&gt;&lt;FONT size=2 face="Courier New"&gt;.aRecords[tnFRXRecno,12] = toObjProperties.PenAlpha &lt;BR&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2 face="Courier New"&gt;ENDFUNC&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT color=#0000ff size=2 face="Courier New"&gt;ENDDEFINE &lt;BR&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt; &lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;3 - Update the report:&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;Below is a short tutorial for the beginners:&lt;/P&gt;
&lt;P&gt;- Open any of your reports, that contains a field of more than one line that will receive the effect. Double-Click on that field, select the GENERAL tab, and add BEFORE your expression, this simple string: [  "" +  ], like in the picture below.&lt;/P&gt;
&lt;P&gt; &lt;/P&gt;
&lt;P&gt;&lt;IMG src="/photos/cesarchalom/images/3590/original.aspx"&gt;&lt;/P&gt;
&lt;P&gt; &lt;/P&gt;
&lt;P&gt;Another better option is to add the tag to the USER tab, that is available only in VFP9 Report Designer. Just like before, double-click in the desired field, select the "OTHER" tab, then click on the "EDIT USER DATA" button, and add the  tag to the window, just like the picture below. This is the most recommended approach, because the original data will not be affected, and if one day you decide to stop using the report listener, your report data will not be affected.&lt;/P&gt;
&lt;P&gt; &lt;/P&gt;
&lt;P&gt;&lt;IMG src="/photos/cesarchalom/images/3656/original.aspx"&gt;&lt;/P&gt;
&lt;P&gt; &lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;4 - Run the report&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt; &lt;/P&gt;
&lt;P&gt;&lt;FONT face="Courier New"&gt;&lt;FONT color=#008000&gt;* Tell VFP that we'll be using the new report features&lt;/FONT&gt; &lt;BR&gt;&lt;FONT color=#0000ff&gt;SET REPORTBEHAVIOR&lt;/FONT&gt; 90 &lt;BR&gt;&lt;FONT color=#0000ff&gt;LOCAL&lt;/FONT&gt; loReportListener &lt;BR&gt;loReportListener = &lt;FONT color=#0000ff&gt;CREATEOBJECT&lt;/FONT&gt;("FullJustifyListener") &lt;BR&gt;loReportListener.&lt;FONT color=#0000ff&gt;ListenerType&lt;/FONT&gt; = 1 &lt;BR&gt;&lt;FONT color=#0000ff&gt;REPORT FORM&lt;/FONT&gt; YourReport &lt;FONT color=#0000ff&gt;OBJECT&lt;/FONT&gt; loReportListener&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt; &lt;/P&gt;
&lt;P&gt; &lt;/P&gt;
&lt;P&gt;Below a last screenshot, showing the of the continued field issue solved:&lt;/P&gt;
&lt;P&gt;&lt;IMG src="/files/vfpimaging/fjlistener/FJ_preview1.PNG"&gt;&lt;/P&gt;
&lt;P&gt; &lt;/P&gt;
&lt;P&gt;Enjoy !!!&lt;/P&gt;
&lt;P&gt; &lt;/P&gt;
&lt;P&gt;&lt;A HREF="/files/vfpimaging/fjlistener/FJListener.rar"&gt;CLICK HERE TO DOWNLOAD THE SOURCE CODE AND SAMPLE FROM THIS ARTICLE&lt;/A&gt;&lt;/P&gt;&lt;img src="http://weblogs.foxite.com/aggbug.aspx?PostID=6268" width="1" height="1"&gt;</description><category domain="http://weblogs.foxite.com/vfpimaging/archive/category/187.aspx">GDI+ AND IMAGES</category><category domain="http://weblogs.foxite.com/vfpimaging/archive/category/1029.aspx">VFP in General</category><category domain="http://weblogs.foxite.com/vfpimaging/archive/category/1123.aspx">Reports</category></item><item><title>GdiPlusX undocumented functions</title><link>http://weblogs.foxite.com/vfpimaging/archive/2008/05/26/6108.aspx</link><pubDate>Mon, 26 May 2008 01:28:00 GMT</pubDate><guid isPermaLink="false">8827bd1c-7596-4a8f-b0de-f59ce9ede522:6108</guid><dc:creator>cesarchalom</dc:creator><slash:comments>5</slash:comments><comments>http://weblogs.foxite.com/vfpimaging/comments/6108.aspx</comments><wfw:commentRss>http://weblogs.foxite.com/vfpimaging/commentrss.aspx?PostID=6108</wfw:commentRss><wfw:comment>http://weblogs.foxite.com/rsscomments/6108.aspx</wfw:comment><description>&lt;P class=MsoNormal&gt;&lt;SPAN&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;&lt;/SPAN&gt;&amp;nbsp;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;The GdiPlusX library is intended to be compatible with the .NET Framework’s System.Drawing namespace. That means that you can use the MSDN online documentation for the “System.Drawing” in order to obtain accurate information about the GdiPlusX classes. objects and functions. More than that, you can also convert the huge amount of samples published in various forums, blogs, articles and e-magazines to be used in VFP. It really does not matter if the sample was published in VB, C or ASP. The conversion to VFP is really intuitive.&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;When GdiPlusX was coded, we used a .NET conversion tool, called Reflector, which showed us all the source codes involved in each function, bringing us the possibility to code calling the same API functions, working with the same parameters.&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;BUT, during the coding phase, we had some great discussions about things that could be enhanced in order to ease user’s lives. &lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;We had a premise not changing the behavior of any function, even if we disagreed with some things there, in order to keep the full compatibility.&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;On the other hand, we have decided that we could add new functions&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;Below is a short list of some functions that have been added to GdiPlusX, that are not present in the .NET original classes. Most of them have already been used in some samples posted in this blog, but till now, no documentation was published. So, here are some of those new functions, that came to my mind. Probably Bo or Craig will remember to add something here. I hope to be updating this post with some other improvements that only VFP users have available.&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;Of course, we know that GdiPlusX still needs some documentation, and we’re working on it. But for now, we hope that the list below will bring you some help.&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;SPAN&gt;&lt;o:p&gt;
&lt;DIV&gt;&lt;FONT face=Arial size=2&gt;&lt;/FONT&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;&lt;FONT face=Arial size=2&gt;
&lt;HR&gt;
&lt;/FONT&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;FONT face=Arial size=2&gt;&lt;/FONT&gt;&amp;nbsp;&lt;/DIV&gt;&lt;/o:p&gt;&lt;/SPAN&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;B&gt;&lt;SPAN&gt;&lt;FONT color=#800080&gt;&lt;FONT size=4&gt;xfcGraphics class&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/B&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;&lt;STRONG&gt;DrawStringJustified&lt;o:p&gt;&lt;/o:p&gt;&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;&lt;SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&amp;nbsp;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;Draws the specified text string at the specified location with the specified Brush and Font objects in a Full Justified format.&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN&gt;Parameters: tcString, ;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;toFont as xfcFont, ;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;toBrush as xfcBrush, ;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;toRectangle as xfcRectangle&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;BLOCKQUOTE dir=ltr&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;where:&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/BLOCKQUOTE&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;tcString: text to be drawn&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;toFont: Gdi+X font object&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;toBrush: Gdi+X brush object&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;toRectangle: Gdi+X Rectangle object with position and dimensions to draw&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;Returns: Nothing&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;See also: &lt;/SPAN&gt;&lt;A href="/vfpimaging/archive/2007/03/30/3580.aspx"&gt;&lt;SPAN&gt;&lt;FONT color=#0000ff&gt;Full-Justified Text with GdiPlus-X&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/A&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;A href="/vfpimaging/archive/2007/04/05/3641.aspx"&gt;&lt;SPAN&gt;Full Justified Texts in your reports with GdiPlus X&lt;/SPAN&gt;&lt;/A&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;GdiPlusX Sample: FullJustified.scx&lt;SPAN&gt;&amp;nbsp; &lt;/SPAN&gt;/&lt;SPAN&gt;&amp;nbsp; &lt;/SPAN&gt;FullJustify.Prg&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Code s&lt;/SPAN&gt;ample:&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&amp;nbsp;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&amp;nbsp;&lt;/P&gt;
&lt;BLOCKQUOTE dir=ltr&gt;
&lt;P class=MsoNormal&gt;&lt;FONT size=2&gt;&lt;FONT face="Courier New"&gt;&lt;FONT color=#0000ff&gt;LOCAL &lt;/FONT&gt;lcText&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;&lt;FONT face="Courier New" color=#0000ff&gt; &lt;BR&gt;TEXT TO &lt;/FONT&gt;&lt;FONT face="Courier New"&gt;lcText &lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;&lt;FONT face="Courier New" color=#0000ff&gt;NOSHOW &lt;BR&gt;&lt;FONT color=#000000&gt;This library &lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#000000&gt;&lt;FONT face="Courier New"&gt;was intended &lt;/FONT&gt;&lt;FONT face="Courier New"&gt;to &lt;/FONT&gt;&lt;FONT face="Courier New"&gt;provide Visual FoxPro 9.0 developers &lt;/FONT&gt;&lt;FONT face="Courier New"&gt;with &lt;/FONT&gt;&lt;FONT face="Courier New"&gt;an &lt;/FONT&gt;&lt;FONT face="Courier New"&gt;object &lt;/FONT&gt;&lt;FONT face="Courier New"&gt;based &lt;/FONT&gt;&lt;FONT face="Courier New"&gt;library to wrap &lt;/FONT&gt;&lt;FONT face="Courier New"&gt;the 600+ functions included &lt;/FONT&gt;&lt;FONT face="Courier New"&gt;with &lt;/FONT&gt;&lt;FONT face="Courier New"&gt;the GDI+ API. The intent &lt;/FONT&gt;&lt;FONT face="Courier New"&gt;is to &lt;/FONT&gt;&lt;FONT face="Courier New"&gt;mimic the &lt;/FONT&gt;&lt;FONT face="Courier New"&gt;System&lt;/FONT&gt;&lt;FONT face="Courier New"&gt;.Drawing namespace &lt;/FONT&gt;&lt;FONT face="Courier New"&gt;in &lt;/FONT&gt;&lt;FONT face="Courier New"&gt;the .NET Framework. &lt;/FONT&gt;&lt;FONT face="Courier New"&gt;All &lt;/FONT&gt;&lt;FONT face="Courier New"&gt;classes &lt;/FONT&gt;&lt;FONT face="Courier New"&gt;in &lt;/FONT&gt;&lt;FONT face="Courier New"&gt;the &lt;/FONT&gt;&lt;FONT face="Courier New"&gt;library &lt;/FONT&gt;&lt;FONT face="Courier New"&gt;are based &lt;/FONT&gt;&lt;FONT face="Courier New"&gt;on &lt;/FONT&gt;&lt;FONT face="Courier New"&gt;the classes included &lt;/FONT&gt;&lt;FONT face="Courier New"&gt;in &lt;/FONT&gt;&lt;FONT face="Courier New"&gt;the &lt;/FONT&gt;&lt;FONT face="Courier New"&gt;System&lt;/FONT&gt;&lt;FONT face="Courier New"&gt;.Drawing namespace and other classes that are dependencies &lt;/FONT&gt;&lt;FONT face="Courier New"&gt;for &lt;/FONT&gt;&lt;FONT face="Courier New"&gt;classes &lt;/FONT&gt;&lt;FONT face="Courier New"&gt;in &lt;/FONT&gt;&lt;FONT face="Courier New"&gt;the &lt;/FONT&gt;&lt;FONT face="Courier New"&gt;System&lt;/FONT&gt;&lt;FONT face="Courier New"&gt;.Drawing namespace. &lt;/FONT&gt;&lt;FONT face="Courier New"&gt;Some &lt;/FONT&gt;&lt;FONT face="Courier New"&gt;additional additional functionality has been added &lt;/FONT&gt;&lt;FONT face="Courier New"&gt;to &lt;/FONT&gt;&lt;FONT face="Courier New"&gt;take advantage &lt;/FONT&gt;&lt;FONT face="Courier New"&gt;of &lt;/FONT&gt;&lt;FONT face="Courier New"&gt;features built &lt;/FONT&gt;&lt;FONT face="Courier New"&gt;in to &lt;/FONT&gt;&lt;FONT face="Courier New"&gt;VFP 9.0&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;&lt;FONT face="Courier New" color=#0000ff&gt;&lt;FONT color=#000000&gt; &lt;BR&gt;&lt;/FONT&gt;ENDTEXT&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;/BLOCKQUOTE&gt;&lt;FONT size=2&gt;&lt;FONT face="Courier New" color=#0000ff&gt;
&lt;BLOCKQUOTE dir=ltr&gt;
&lt;P class=MsoNormal&gt;DO LOCFILE&lt;/FONT&gt;&lt;FONT face="Courier New"&gt;("System.app")&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;&lt;FONT face="Courier New" color=#0000ff&gt; &lt;BR&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;&lt;FONT face="Courier New" color=#0000ff&gt;WITH _Screen&lt;/FONT&gt;&lt;FONT face="Courier New"&gt;.&lt;/FONT&gt;&lt;FONT face="Courier New" color=#0000ff&gt;System&lt;/FONT&gt;&lt;FONT face="Courier New"&gt;.Drawing &lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Courier New" color=#0000ff&gt;&lt;BR&gt;&lt;FONT size=2&gt;&amp;nbsp;&amp;nbsp; LOCAL &lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;&lt;FONT face="Courier New"&gt;loGfx &lt;/FONT&gt;&lt;FONT face="Courier New" color=#0000ff&gt;as &lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;&lt;FONT face="Courier New"&gt;xfcGraphics &lt;BR&gt;&amp;nbsp;&amp;nbsp; loGfx = .Graphics.FromHwnd(&lt;/FONT&gt;&lt;FONT face="Courier New" color=#0000ff&gt;_Screen&lt;/FONT&gt;&lt;FONT face="Courier New"&gt;.&lt;/FONT&gt;&lt;FONT face="Courier New" color=#0000ff&gt;HWnd&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;&lt;FONT face="Courier New"&gt;) &lt;BR&gt;&amp;nbsp;&amp;nbsp; loGfx.DrawStringJustified(lcText, .&lt;/FONT&gt;&lt;FONT face="Courier New" color=#0000ff&gt;Font&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Courier New" size=2&gt;.New("Tahoma",12); &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; , .Brushes.Red, .Rectangle.New(0,0,250,400)) &lt;BR&gt;&lt;/FONT&gt;&lt;FONT face="Courier New" color=#0000ff&gt;&lt;FONT size=2&gt;ENDWITH &lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;/BLOCKQUOTE&gt;
&lt;P class=MsoNormal&gt;&amp;nbsp;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&amp;nbsp;&lt;/P&gt;
&lt;DIV&gt;&lt;FONT face=Arial size=2&gt;&lt;/FONT&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;&lt;FONT face=Arial size=2&gt;
&lt;HR&gt;
&lt;/FONT&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;FONT face=Arial size=2&gt;&lt;/FONT&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;P class=MsoNormal&gt;&amp;nbsp;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;B&gt;&lt;SPAN&gt;&lt;FONT size=4&gt;&lt;FONT color=#800080&gt;xfcBitmap class&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/B&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;&lt;STRONG&gt;ToClipboard&lt;o:p&gt;&lt;/o:p&gt;&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;&lt;SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&amp;nbsp;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;Sends the current bitmap to the clipboard&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;Parameters: None&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;Returns: Nothing&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;See also: &lt;/SPAN&gt;&lt;A href="/vfpimaging/archive/2007/01/29/3204.aspx"&gt;&lt;SPAN&gt;Send Images to the Clipboard with GdiPlus-X Revisited&lt;/SPAN&gt;&lt;/A&gt;&lt;SPAN&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&amp;nbsp;&lt;/P&gt;&lt;SPAN&gt;&lt;o:p&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Code s&lt;/SPAN&gt;ample:&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/o:p&gt;&lt;/SPAN&gt;
&lt;P class=MsoNormal&gt;&amp;nbsp;&lt;/P&gt;
&lt;BLOCKQUOTE dir=ltr&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;&lt;o:p&gt;&lt;FONT size=2&gt;&lt;FONT face="Courier New"&gt;&lt;FONT color=#0000ff&gt;DO LOCFILE&lt;/FONT&gt;("System.app")&lt;/FONT&gt;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;&lt;o:p&gt;&lt;FONT size=2&gt;&lt;FONT face="Courier New" color=#0000ff&gt;&amp;nbsp;&lt;BR&gt;WITH _Screen&lt;/FONT&gt;&lt;FONT face="Courier New"&gt;.&lt;/FONT&gt;&lt;FONT face="Courier New" color=#0000ff&gt;System&lt;/FONT&gt;&lt;FONT face="Courier New"&gt;.Drawing &lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Courier New" color=#0000ff&gt;&lt;BR&gt;&lt;FONT size=2&gt;&amp;nbsp;&amp;nbsp; LOCAL &lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;&lt;FONT face="Courier New"&gt;loBmp &lt;/FONT&gt;&lt;FONT face="Courier New" color=#0000ff&gt;as &lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;&lt;FONT face="Courier New"&gt;xfcBitmap &lt;BR&gt;&amp;nbsp;&amp;nbsp; loBmp = .&lt;/FONT&gt;&lt;FONT face="Courier New" color=#0000ff&gt;Bitmap&lt;/FONT&gt;&lt;FONT face="Courier New"&gt;.FromFile(&lt;/FONT&gt;&lt;FONT face="Courier New" color=#0000ff&gt;GETPICT&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Courier New" size=2&gt;()) &lt;BR&gt;&amp;nbsp;&amp;nbsp; loBmp.ToClipboard() &lt;BR&gt;&lt;/FONT&gt;&lt;FONT face="Courier New" color=#0000ff&gt;&lt;FONT size=2&gt;ENDWITH &lt;/FONT&gt;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/BLOCKQUOTE&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&amp;nbsp;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&amp;nbsp;&lt;/P&gt;
&lt;DIV&gt;&lt;FONT face=Arial size=2&gt;&lt;/FONT&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;&lt;FONT face=Arial size=2&gt;
&lt;HR&gt;
&lt;/FONT&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;FONT face=Arial size=2&gt;&lt;/FONT&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;&lt;/SPAN&gt;&lt;SPAN&gt;&lt;STRONG&gt;&lt;/STRONG&gt;&lt;/SPAN&gt;&amp;nbsp;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;&lt;STRONG&gt;FromClipboard&lt;o:p&gt;&lt;/o:p&gt;&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;&lt;SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&amp;nbsp;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;Creates a GDI+ bitmap object from the clipboard data&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;Parameters: None&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;Returns: Gdi+ bitmap object&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&amp;nbsp;&lt;/P&gt;&lt;SPAN&gt;&lt;o:p&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Code s&lt;/SPAN&gt;ample:&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/o:p&gt;&lt;/SPAN&gt;
&lt;P class=MsoNormal&gt;&amp;nbsp;&lt;/P&gt;
&lt;BLOCKQUOTE dir=ltr&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;&lt;o:p&gt;&lt;FONT face="Courier New" color=#0000ff size=2&gt;DO LOCFILE&lt;/FONT&gt;&lt;FONT size=2&gt;&lt;FONT face="Courier New"&gt;&lt;FONT color=#000000&gt;("System.app")&lt;/FONT&gt;&lt;FONT color=#0000ff&gt; &lt;BR&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;BR&gt;&lt;FONT face="Courier New" color=#0000ff size=2&gt;WITH _Screen&lt;/FONT&gt;&lt;FONT size=2&gt;&lt;FONT face="Courier New" color=#000000&gt;.&lt;/FONT&gt;&lt;FONT face="Courier New" color=#0000ff&gt;System&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Courier New"&gt;&lt;FONT size=2&gt;&lt;FONT color=#000000&gt;.Drawing &lt;/FONT&gt;&lt;BR&gt;&lt;FONT color=#000000&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Courier New" color=#0000ff&gt;&lt;BR&gt;&lt;FONT size=2&gt;&amp;nbsp;&amp;nbsp; LOCAL &lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;&lt;FONT face="Courier New" color=#000000&gt;loBmp &lt;/FONT&gt;&lt;FONT face="Courier New" color=#0000ff&gt;as &lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;&lt;FONT face="Courier New"&gt;&lt;FONT color=#000000&gt;xfcBitmap&lt;/FONT&gt;&lt;FONT color=#0000ff&gt; &lt;BR&gt;&amp;nbsp;&amp;nbsp; &lt;/FONT&gt;&lt;FONT color=#000000&gt;loBmp = .&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Courier New" color=#0000ff&gt;Bitmap&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;&lt;FONT color=#0000ff&gt;&lt;FONT face="Courier New" color=#000000&gt;.FromClipboard() &lt;BR&gt;&amp;nbsp;&amp;nbsp; loBmp.&lt;/FONT&gt;&lt;FONT face="Courier New"&gt;Save&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Courier New" color=#0000ff size=2&gt;&lt;FONT color=#000000&gt;("c:\FromClip.png", .Imaging.ImageFormat.Png)&lt;/FONT&gt; &lt;BR&gt;&lt;/FONT&gt;&lt;FONT face="Courier New"&gt;&lt;BR&gt;&lt;FONT color=#0000ff size=2&gt;ENDWITH&lt;/FONT&gt;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/BLOCKQUOTE&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&amp;nbsp;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&amp;nbsp;&lt;/P&gt;&lt;SPAN&gt;&lt;o:p&gt;
&lt;DIV&gt;&lt;FONT face=Arial size=2&gt;&lt;/FONT&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;&lt;FONT face=Arial size=2&gt;
&lt;HR&gt;
&lt;/FONT&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;FONT face=Arial size=2&gt;&lt;/FONT&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;P class=MsoNormal&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;SPAN&gt;&lt;STRONG&gt;FromVarbinary&lt;o:p&gt;&lt;/o:p&gt;&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;&lt;/SPAN&gt;&amp;nbsp;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN&gt;Creates an Image object from the specified VarBinary string. Useful to start manipulating an image directly without having to convert the binaries from the image to a file.&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;&lt;SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&amp;nbsp;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;Parameters: tcBinary&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;&lt;SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&amp;nbsp;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;Returns: GdiPlusX Bitmap object&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;&lt;/SPAN&gt;&amp;nbsp;&lt;/P&gt;&lt;SPAN&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Code s&lt;/SPAN&gt;ample:&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/SPAN&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;&lt;/SPAN&gt;&amp;nbsp;&lt;/P&gt;
&lt;BLOCKQUOTE dir=ltr&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;&lt;BR&gt;&lt;FONT face="Courier New" color=#0000ff size=2&gt;DO LOCFILE&lt;/FONT&gt;&lt;FONT size=2&gt;&lt;FONT face="Courier New"&gt;&lt;FONT color=#000000&gt;("System.app")&lt;/FONT&gt;&lt;FONT color=#0000ff&gt; &lt;BR&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;BR&gt;&lt;FONT face="Courier New" color=#0000ff size=2&gt;WITH _Screen&lt;/FONT&gt;&lt;FONT size=2&gt;&lt;FONT face="Courier New" color=#000000&gt;.&lt;/FONT&gt;&lt;FONT face="Courier New" color=#0000ff&gt;System&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Courier New"&gt;&lt;FONT size=2&gt;&lt;FONT color=#000000&gt;.Drawing &lt;/FONT&gt;&lt;BR&gt;&lt;FONT color=#000000&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Courier New" color=#0000ff&gt;&lt;BR&gt;&lt;FONT size=2&gt;&amp;nbsp;&amp;nbsp; LOCAL &lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;&lt;FONT face="Courier New"&gt;&lt;FONT color=#000000&gt;lcBinary&lt;/FONT&gt;&lt;FONT color=#0000ff&gt; &lt;BR&gt;&amp;nbsp;&amp;nbsp;&lt;FONT color=#000000&gt; lcBinary =&lt;/FONT&gt; &lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff&gt;&lt;FONT face="Courier New"&gt;FILETOSTR&lt;/FONT&gt;&lt;FONT face="Courier New"&gt;(&lt;/FONT&gt;&lt;FONT face="Courier New"&gt;GETPICT&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Courier New" color=#0000ff size=2&gt;()) &lt;BR&gt;&lt;/FONT&gt;&lt;FONT face="Courier New"&gt;&lt;BR&gt;&lt;FONT color=#0000ff size=2&gt;&amp;nbsp;&amp;nbsp; LOCAL &lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;&lt;FONT face="Courier New" color=#000000&gt;loBmp &lt;/FONT&gt;&lt;FONT face="Courier New" color=#0000ff&gt;as &lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;&lt;FONT face="Courier New"&gt;&lt;FONT color=#000000&gt;xfcBitmap&lt;/FONT&gt;&lt;FONT color=#0000ff&gt; &lt;BR&gt;&amp;nbsp;&amp;nbsp; &lt;FONT color=#000000&gt;loBmp =&lt;/FONT&gt; .&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Courier New" color=#0000ff&gt;Bitmap&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;&lt;FONT color=#0000ff&gt;&lt;FONT face="Courier New"&gt;&lt;FONT color=#000000&gt;.FromVarBinary(lcBinary)&lt;/FONT&gt; &lt;BR&gt;&amp;nbsp;&amp;nbsp; &lt;FONT color=#000000&gt;loBmp.&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Courier New"&gt;Save&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Courier New" color=#0000ff size=2&gt;&lt;FONT color=#000000&gt;("c:\FromVarBinary.png", .Imaging.ImageFormat.Png)&lt;/FONT&gt; &lt;BR&gt;&lt;/FONT&gt;&lt;FONT face="Courier New"&gt;&lt;BR&gt;&lt;FONT color=#0000ff size=2&gt;ENDWITH &lt;BR&gt;&lt;BR&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/BLOCKQUOTE&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;&lt;/SPAN&gt;&amp;nbsp;&lt;/P&gt;&lt;SPAN&gt;&lt;/SPAN&gt;&lt;SPAN&gt;&lt;/SPAN&gt;&lt;SPAN&gt;&lt;/SPAN&gt;&lt;SPAN&gt;
&lt;DIV&gt;&lt;FONT face=Arial size=2&gt;&lt;/FONT&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;&lt;FONT face=Arial size=2&gt;
&lt;HR&gt;
&lt;/FONT&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;FONT face=Arial size=2&gt;&lt;/FONT&gt;&amp;nbsp;&lt;/DIV&gt;&lt;/SPAN&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;&lt;STRONG&gt;FromScreen&lt;o:p&gt;&lt;/o:p&gt;&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;&lt;SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&amp;nbsp;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;Captures the specified window or object image to a new GDI+ bitmap object&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;Parameters:&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;tHWnd, &lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;tiX, tiY, tiWidth, tiHeight, tlEnsureVisible&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;toForm [, tiX, tiY, tiWidth, tiHeight [, tlEnsureVisible]]&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN&gt;toControl [, tlEnsureVisible]&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;Returns: Gdi+ bitmap object&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;See also: &lt;/SPAN&gt;&lt;A href="/vfpimaging/archive/2007/01/17/3145.aspx"&gt;&lt;SPAN&gt;Capture Screens with GdiPlus-X&lt;/SPAN&gt;&lt;/A&gt;&lt;SPAN&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&amp;nbsp;&lt;/P&gt;&lt;SPAN&gt;&lt;o:p&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Code s&lt;/SPAN&gt;ample:&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;SPAN&gt;
&lt;BLOCKQUOTE dir=ltr&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;&lt;o:p&gt;&amp;nbsp;&lt;FONT face="Courier New" color=#0000ff size=2&gt; &lt;BR&gt;DO LOCFILE&lt;/FONT&gt;&lt;FONT face="Courier New" size=2&gt;&lt;FONT color=#000000&gt;("System.app")&lt;/FONT&gt; &lt;BR&gt;&lt;FONT color=#000000&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Courier New" color=#0000ff size=2&gt;&lt;BR&gt;WITH _Screen&lt;/FONT&gt;&lt;FONT face="Courier New" color=#000000 size=2&gt;.&lt;/FONT&gt;&lt;FONT face="Courier New" color=#0000ff size=2&gt;System&lt;/FONT&gt;&lt;FONT face="Courier New" size=2&gt;&lt;FONT color=#000000&gt;.Drawing &lt;/FONT&gt;&lt;BR&gt;&lt;FONT color=#000000&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Courier New" color=#0000ff size=2&gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp; LOCAL &lt;/FONT&gt;&lt;FONT face="Courier New" color=#000000 size=2&gt;loBmp &lt;/FONT&gt;&lt;FONT face="Courier New" color=#0000ff size=2&gt;as &lt;/FONT&gt;&lt;FONT face="Courier New" size=2&gt;&lt;FONT color=#000000&gt;xfcBitmap&lt;/FONT&gt; &lt;BR&gt;&lt;FONT color=#000000&gt;&amp;nbsp;&amp;nbsp; loBmp =&lt;/FONT&gt; .&lt;/FONT&gt;&lt;FONT face="Courier New" color=#0000ff size=2&gt;Bitmap&lt;/FONT&gt;&lt;FONT face="Courier New" color=#000000 size=2&gt;.FromScreen() &lt;BR&gt;&amp;nbsp;&amp;nbsp; loBmp.&lt;/FONT&gt;&lt;FONT face="Courier New" color=#0000ff size=2&gt;Save&lt;/FONT&gt;&lt;FONT face="Courier New" color=#000000 size=2&gt;("c:\FromScreen.png", .Imaging.ImageFormat.Png) &lt;BR&gt;&lt;/FONT&gt;&lt;FONT face="Courier New" color=#0000ff size=2&gt;&lt;BR&gt;ENDWITH &lt;BR&gt;&lt;BR&gt;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/BLOCKQUOTE&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&amp;nbsp;&lt;/P&gt;
&lt;DIV&gt;&lt;FONT face=Arial size=2&gt;&lt;/FONT&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;&lt;FONT face=Arial size=2&gt;
&lt;HR&gt;
&lt;/FONT&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;FONT face=Arial size=2&gt;&lt;/FONT&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;P class=MsoNormal&gt;&lt;/SPAN&gt;&lt;SPAN&gt;&lt;STRONG&gt;GetMonochrome&lt;o:p&gt;&lt;/o:p&gt;&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;&lt;SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&amp;nbsp;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;Returns a monochrome GDI+ bitmap (1bpp) of this Image object.&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;The image must be saved in the BMP Image Format in order to keep the 1bpp format. Because the resulting bitmap is in an indexed pixel format, GDI+ cannot create a xfcGraphics object in order to draw on it. This function is recommended to be used immediately before saving to a file, in order to obtain the minimum file size. For some specific TIFF compression types, a monochrome image of 1bpp is required too, see more details in these articles:&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;SPAN&gt;&lt;SPAN&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;Parameters: None&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;&lt;SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&amp;nbsp;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;Returns: Gdi+ bitmap object&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;See also: &lt;/SPAN&gt;&lt;A href="/vfpimaging/archive/2007/05/26/3857.aspx"&gt;&lt;SPAN&gt;Convert Images to Monochrome with GdiPlus X&lt;/SPAN&gt;&lt;/A&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;A href="/vfpimaging/archive/2006/09/17/2481.aspx"&gt;&lt;SPAN&gt;Using TIFFs with the new GDI+ classes - UPDATE&lt;/SPAN&gt;&lt;/A&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;A href="/vfpimaging/archive/2007/11/06/5338.aspx"&gt;&lt;SPAN&gt;TIFFS and the latest release of GdiPlusX&lt;/SPAN&gt;&lt;/A&gt;&lt;SPAN&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;SPAN&gt;&lt;o:p&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Code s&lt;/SPAN&gt;ample:&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/o:p&gt;&lt;/SPAN&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&amp;nbsp;&lt;/P&gt;
&lt;BLOCKQUOTE dir=ltr&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;&lt;o:p&gt;&lt;BR&gt;&lt;FONT face="Courier New" color=#0000ff size=2&gt;DO LOCFILE&lt;/FONT&gt;&lt;FONT face="Courier New" size=2&gt;("System.app") &lt;BR&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff&gt;&lt;BR&gt;&lt;FONT face="Courier New" size=2&gt;WITH _Screen&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;&lt;FONT face="Courier New"&gt;.&lt;/FONT&gt;&lt;FONT face="Courier New" color=#0000ff&gt;System&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Courier New" size=2&gt;.Drawing &lt;BR&gt;&lt;/FONT&gt;&lt;FONT face="Courier New" color=#0000ff&gt;&lt;BR&gt;&lt;FONT size=2&gt;&amp;nbsp;&amp;nbsp; LOCAL &lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;&lt;FONT face="Courier New"&gt;loBmp &lt;/FONT&gt;&lt;FONT face="Courier New" color=#0000ff&gt;as &lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;&lt;FONT face="Courier New"&gt;xfcBitmap &lt;BR&gt;&amp;nbsp;&amp;nbsp; loBmp = .&lt;/FONT&gt;&lt;FONT face="Courier New" color=#0000ff&gt;Bitmap&lt;/FONT&gt;&lt;FONT face="Courier New"&gt;.FromFile(&lt;/FONT&gt;&lt;FONT face="Courier New" color=#0000ff&gt;GETPICT&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Courier New" size=2&gt;()) &lt;BR&gt;&lt;/FONT&gt;&lt;FONT face="Courier New" color=#0000ff&gt;&lt;BR&gt;&lt;FONT size=2&gt;&amp;nbsp;&amp;nbsp; LOCAL &lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;&lt;FONT face="Courier New"&gt;loMonoch &lt;/FONT&gt;&lt;FONT face="Courier New" color=#0000ff&gt;as &lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;&lt;FONT face="Courier New"&gt;xfcBitmap &lt;BR&gt;&amp;nbsp;&amp;nbsp; loMonoch = loBmp.GetMonochrome() &lt;BR&gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp; loMonoch.&lt;/FONT&gt;&lt;FONT face="Courier New" color=#0000ff&gt;Save&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Courier New" size=2&gt;("c:\Monoch.bmp", .Imaging.ImageFormat.Bmp) &lt;BR&gt;&lt;/FONT&gt;&lt;FONT face="Courier New" color=#0000ff&gt;&lt;BR&gt;&lt;FONT size=2&gt;ENDWITH&lt;/FONT&gt;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/BLOCKQUOTE&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&amp;nbsp;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&amp;nbsp;&lt;/P&gt;
&lt;DIV&gt;&lt;FONT face=Arial size=2&gt;&lt;/FONT&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;&lt;FONT face=Arial size=2&gt;
&lt;HR&gt;
&lt;/FONT&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;FONT face=Arial size=2&gt;&lt;/FONT&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;&lt;STRONG&gt;GetPictureVal&lt;o:p&gt;&lt;/o:p&gt;&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;Returns a String containing the PictureVal of this Image object, according to the ImageFormat passed. You can retrieve the binaries of the image with NO disk access, in any Image format supported by GDI+&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;Parameters: ImageFormat Object&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;EncoderParameter Object (optional)&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;Returns: String&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;See also: &lt;A href="/vfpimaging/archive/2007/11/07/5352.aspx"&gt;Manipulate images with no disk access with GdiPlusX&lt;/A&gt; &lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;&lt;SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&amp;nbsp;&lt;/P&gt;&lt;SPAN&gt;&lt;SPAN&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Code s&lt;/SPAN&gt;ample:&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;&lt;SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&amp;nbsp;&lt;/P&gt;&lt;SPAN&gt;&lt;SPAN&gt;
&lt;BLOCKQUOTE dir=ltr&gt;
&lt;P class=MsoNormal&gt;&lt;BR&gt;&lt;FONT size=2&gt;&lt;FONT face="Courier New"&gt;&lt;FONT color=#0000ff&gt;DO LOCFILE&lt;/FONT&gt;&lt;FONT color=#000000&gt;("System.App")&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;/BLOCKQUOTE&gt;&lt;FONT size=2&gt;&lt;FONT face="Courier New"&gt;&lt;FONT color=#000000&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff&gt;
&lt;BLOCKQUOTE dir=ltr&gt;
&lt;P class=MsoNormal&gt;&lt;FONT face="Courier New" size=2&gt;LOCAL &lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;&lt;FONT face="Courier New" color=#000000&gt;loBmp &lt;/FONT&gt;&lt;FONT face="Courier New" color=#0000ff&gt;as &lt;/FONT&gt;&lt;FONT face="Courier New"&gt;&lt;FONT color=#000000&gt;xfcBitmap &lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Courier New" color=#008000&gt;&lt;BR&gt;&lt;/FONT&gt;&lt;FONT face="Courier New" color=#008000&gt;&lt;FONT size=2&gt;* Obtaining the PictureVal directly&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;&lt;FONT face="Courier New" color=#0000ff&gt; &lt;BR&gt;WITH _Screen&lt;/FONT&gt;&lt;FONT face="Courier New" color=#000000&gt;.&lt;/FONT&gt;&lt;FONT face="Courier New" color=#0000ff&gt;System&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;&lt;FONT face="Courier New"&gt;&lt;FONT color=#000000&gt;.Drawing&amp;nbsp;&lt;/FONT&gt;&lt;BR&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;&lt;FONT face="Courier New"&gt;&lt;FONT color=#0000ff&gt;&lt;FONT color=#000000&gt;&amp;nbsp;&amp;nbsp; loBmp&lt;/FONT&gt; = .&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff&gt;&lt;FONT face="Courier New"&gt;Bitmap&lt;/FONT&gt;&lt;FONT face="Courier New"&gt;.&lt;FONT color=#000000&gt;FromFile&lt;/FONT&gt;(&lt;/FONT&gt;&lt;FONT face="Courier New"&gt;GETPICT&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;&lt;FONT color=#0000ff&gt;&lt;FONT face="Courier New"&gt;()) &lt;BR&gt;&lt;/FONT&gt;&lt;FONT face="Courier New"&gt;&amp;nbsp;&amp;nbsp; Thisform&lt;/FONT&gt;&lt;FONT face="Courier New" color=#000000&gt;.Image1.&lt;/FONT&gt;&lt;FONT face="Courier New"&gt;PictureVal &lt;/FONT&gt;&lt;FONT face="Courier New"&gt;= &lt;FONT color=#000000&gt;loBmp.GetPictureVal (.Imaging.ImageFormat.Bmp) &lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Courier New"&gt;&lt;BR&gt;&lt;/FONT&gt;&lt;FONT face="Courier New"&gt;&lt;FONT color=#0000ff size=2&gt;ENDWITH&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/BLOCKQUOTE&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;&lt;SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&amp;nbsp;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;&lt;SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&amp;nbsp;&lt;/P&gt;&lt;SPAN&gt;&lt;SPAN&gt;
&lt;DIV&gt;&lt;FONT face=Arial size=2&gt;&lt;/FONT&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;&lt;FONT face=Arial size=2&gt;
&lt;HR&gt;
&lt;/FONT&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;FONT face=Arial size=2&gt;&lt;/FONT&gt;&amp;nbsp;&lt;/DIV&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;&lt;STRONG&gt;GetPictureValFromHBitmap&lt;o:p&gt;&lt;/o:p&gt;&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;&lt;/SPAN&gt;&amp;nbsp;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN&gt;Returns a String containing the PictureVal of this Image object using the HBitmap GDI technique. The binaries retrieved are always in BMP format, what makes it a big string in most times. But, in most cases, this technique runs about 40% faster than using GetPictureVal() function shown above. The ImageCanvas objects uses this function to obtain the binaries from the images drawn.&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;Parameters: None&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;&lt;SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&amp;nbsp;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;Returns: String&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;&lt;SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&amp;nbsp;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;See also: &lt;A href="/vfpimaging/archive/2007/11/07/5352.aspx"&gt;Manipulate images with no disk access with GdiPlusX&lt;/A&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;&lt;/SPAN&gt;&amp;nbsp;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;&lt;/SPAN&gt;&amp;nbsp;&lt;/P&gt;&lt;SPAN&gt;
&lt;BLOCKQUOTE dir=ltr&gt;
&lt;P class=MsoNormal&gt;&lt;BR&gt;&lt;FONT size=2&gt;&lt;FONT face="Courier New"&gt;&lt;FONT color=#0000ff&gt;DO LOCFILE&lt;/FONT&gt;&lt;FONT color=#000000&gt;("System.App") &lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff&gt;&lt;BR&gt;&lt;FONT face="Courier New" size=2&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;FONT color=#0000ff&gt;&lt;FONT face="Courier New" size=2&gt;LOCAL &lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;&lt;FONT face="Courier New" color=#000000&gt;loBmp &lt;/FONT&gt;&lt;FONT face="Courier New" color=#0000ff&gt;as &lt;/FONT&gt;&lt;FONT face="Courier New"&gt;&lt;FONT color=#000000&gt;xfcBitmap &lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Courier New" color=#008000&gt;&lt;BR&gt;&lt;/P&gt;&lt;FONT size=2&gt;&lt;/FONT&gt;&lt;/FONT&gt;
&lt;P class=MsoNormal&gt;&lt;FONT face="Courier New" color=#008000&gt;&lt;FONT size=2&gt;* Obtaining the PictureVal directly&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;&lt;FONT face="Courier New" color=#0000ff&gt; &lt;BR&gt;WITH _Screen&lt;/FONT&gt;&lt;FONT face="Courier New" color=#000000&gt;.&lt;/FONT&gt;&lt;FONT face="Courier New" color=#0000ff&gt;System&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;&lt;FONT face="Courier New"&gt;&lt;FONT color=#000000&gt;.Drawing &lt;/FONT&gt;&lt;BR&gt;&lt;FONT color=#0000ff&gt;&lt;FONT color=#000000&gt;&amp;nbsp;&amp;nbsp; loBmp&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#000000&gt; = .&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff&gt;&lt;FONT face="Courier New"&gt;Bitmap&lt;/FONT&gt;&lt;FONT face="Courier New"&gt;&lt;FONT color=#000000&gt;.FromFile&lt;/FONT&gt;(&lt;/FONT&gt;&lt;FONT face="Courier New"&gt;GETPICT&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;&lt;FONT color=#0000ff&gt;&lt;FONT face="Courier New"&gt;()) &lt;BR&gt;&lt;/FONT&gt;&lt;FONT face="Courier New"&gt;&amp;nbsp;&amp;nbsp; Thisform&lt;/FONT&gt;&lt;FONT face="Courier New" color=#000000&gt;.Image1.&lt;/FONT&gt;&lt;FONT face="Courier New"&gt;PictureVal &lt;/FONT&gt;&lt;FONT face="Courier New"&gt;=&lt;FONT color=#000000&gt; loBmp.GetPictureValFromHBitmap()&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;FONT face="Courier New"&gt;&lt;FONT color=#0000ff size=2&gt;ENDWITH&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/BLOCKQUOTE&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;&lt;/SPAN&gt;&amp;nbsp;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;&lt;/SPAN&gt;&amp;nbsp;&lt;/P&gt;&lt;SPAN&gt;
&lt;DIV&gt;&lt;FONT face=Arial size=2&gt;&lt;/FONT&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;&lt;FONT face=Arial size=2&gt;
&lt;HR&gt;
&lt;/FONT&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;FONT face=Arial size=2&gt;&lt;/FONT&gt;&amp;nbsp;&lt;/DIV&gt;&lt;/SPAN&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;&lt;STRONG&gt;ApplyColorMatrix&lt;o:p&gt;&lt;/o:p&gt;&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;&lt;SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&amp;nbsp;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;Applies the received color matrix to the current bitmap object&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;This is very useful, and provides an easy and quick way to apply image transformations in just one step, without having to use the ImageAttributes class.&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;Parameters: &lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;toColorMatrix&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;Returns: NULL&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;See also: &lt;/SPAN&gt;&lt;A title="Special effects on images with new GDIPlus-X classes - Part 1: Cesar Chalom (August 2006)" href="http://www.utmag.com/ViewPageArticle.aspx?Session=53765263314B62777A61493D2049536458442F42433865523147482B42487A4B514E673D3D"&gt;&lt;SPAN&gt;&lt;FONT color=#0000ff&gt;Special effects on images with GdiPlusX- Part1&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/A&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;A title="Special effects on images with new GDIPlus-X classes - Part 2: Cesar Chalom (October 2006)" href="http://www.utmag.com/ViewPageArticle.aspx?Session=76616B4D7A654864476D593D204E7834377858773754753374697357646432567761773D3D"&gt;&lt;SPAN&gt;&lt;FONT color=#0000ff&gt;Special effects on images with GdiPlusX – Part2&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/A&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;SPAN&gt;&lt;A href="/vfpimaging/archive/2007/07/27/4338.aspx"&gt;&lt;SPAN&gt;Draw Logos in your images with GdiPlusX - Part 2&lt;/SPAN&gt;&lt;/A&gt;&lt;/SPAN&gt;&lt;SPAN&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;SPAN&gt;&lt;o:p&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Code s&lt;/SPAN&gt;ample:&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/o:p&gt;&lt;/SPAN&gt;
&lt;P class=MsoNormal&gt;&amp;nbsp;&lt;/P&gt;&lt;SPAN&gt;&lt;o:p&gt;
&lt;BLOCKQUOTE dir=ltr&gt;
&lt;P class=MsoNormal&gt;&lt;BR&gt;&lt;FONT face="Courier New"&gt;&lt;FONT color=#0000ff&gt;DO LOCFILE&lt;/FONT&gt;&lt;FONT size=2&gt;("System.app")&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;/BLOCKQUOTE&gt;&lt;FONT face="Courier New"&gt;&lt;FONT color=#0000ff size=2&gt;
&lt;BLOCKQUOTE dir=ltr&gt;
&lt;P class=MsoNormal&gt;WITH _Screen&lt;/FONT&gt;&lt;FONT size=2&gt;.&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;System&lt;/FONT&gt;&lt;FONT size=2&gt;.Drawing&amp;nbsp;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;BR&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT face="Courier New"&gt;&amp;nbsp;&amp;nbsp; LOCAL &lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Courier New"&gt;&lt;FONT size=2&gt;loBmp &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;as &lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Courier New"&gt;&lt;FONT size=2&gt;xfcBitmap &lt;BR&gt;&amp;nbsp;&amp;nbsp; loBmp = .&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;Bitmap&lt;/FONT&gt;&lt;FONT size=2&gt;.FromFile(&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;GETPICT&lt;/FONT&gt;&lt;FONT size=2&gt;())&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Courier New"&gt;&lt;FONT color=#0000ff size=2&gt;&amp;nbsp;&lt;BR&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Courier New"&gt;&lt;FONT color=#0000ff size=2&gt;&amp;nbsp;&amp;nbsp; LOCAL &lt;/FONT&gt;&lt;FONT size=2&gt;loClrMatrix &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;as &lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Courier New"&gt;&lt;FONT size=2&gt;xfcColorMAtrix &lt;BR&gt;&amp;nbsp;&amp;nbsp; loClrMatrix = .Imaging.ColorMatrix.New(; &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0.33, 0.33, 0.33, 0, 0, ; &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0.33, 0.33, 0.33, 0, 0, ; &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0.33, 0.33, 0.33, 0, 0, ; &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0, 0, 0, 1, 0, ; &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0, 0, 0, 0, 1)&amp;nbsp;&lt;BR&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Courier New"&gt;&lt;FONT size=2&gt;&amp;nbsp;&amp;nbsp; loBmp.ApplyColorMatrix(loClrMatrix) &lt;BR&gt;&amp;nbsp;&amp;nbsp; loBmp.&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;Save&lt;/FONT&gt;&lt;FONT size=2&gt;("c:\ClrMatrix.Png", .Imaging.ImageFormat.Png)&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Courier New" color=#0000ff size=2&gt; &lt;BR&gt;&lt;/FONT&gt;&lt;FONT face="Courier New" color=#0000ff size=2&gt;ENDWITH&lt;/FONT&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/BLOCKQUOTE&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&amp;nbsp;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&amp;nbsp;&lt;/P&gt;&lt;SPAN&gt;&lt;o:p&gt;
&lt;DIV&gt;&lt;FONT face=Arial size=2&gt;&lt;/FONT&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;&lt;FONT face=Arial size=2&gt;
&lt;HR&gt;
&lt;/FONT&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;FONT face=Arial size=2&gt;&lt;/FONT&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;P class=MsoNormal&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;&lt;STRONG&gt;GetMask&lt;o:p&gt;&lt;/o:p&gt;&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;&lt;SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&amp;nbsp;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;Returns a Bitmap object with the mask from the current bitmap&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;In fact this function returns a bitmap with all the transparent parts of the image. Useful when you need to convert a PNG image that contains transparencies to be used in the BMP image format.&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;Parameters: None&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;Returns: Gdi+ bitmap object&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;See also: &lt;/SPAN&gt;&lt;A href="/vfpimaging/archive/2007/11/14/5404.aspx"&gt;&lt;SPAN&gt;Convert your buttons to BMPs keeping transparency with GdiPlusX&lt;/SPAN&gt;&lt;/A&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;SPAN&gt;&lt;o:p&gt;
&lt;DIV&gt;&lt;FONT face=Arial size=2&gt;&lt;/FONT&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;&lt;FONT face=Arial size=2&gt;
&lt;HR&gt;
&lt;/FONT&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;FONT face=Arial size=2&gt;&lt;/FONT&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;P class=MsoNormal&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;&lt;STRONG&gt;ToPrinter&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;&lt;STRONG&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/STRONG&gt;&lt;/SPAN&gt;&amp;nbsp;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;Sends the image object to the Printer&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;Parameters: tnStretch, tcPrinterName, tnOrientation, tnAlignment&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;tnStretch&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;*&lt;SPAN&gt;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;Specifies how an image is sized to fit inside a control.&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;*&lt;SPAN&gt;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;0 - Clip. The image is clipped to fit the page. (Default)&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;*&lt;SPAN&gt;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;1 - Isometric. The image resizes to fit the page while maintaining its original proportions.&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;*&lt;SPAN&gt;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;2 - Stretch. The image resizes to fit the page, but does not maintain its original proportions.&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;tcPrinterName&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;*&lt;SPAN&gt;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;Specifies the name of the printer, the same of GETPRINTER()&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;tnOrientation:&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;*&lt;SPAN&gt;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;0 - Portrait&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;*&lt;SPAN&gt;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;1 - Landscape&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;tnAlignment&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;*&lt;SPAN&gt;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;Specifies a numerical value representing the alignment of the image in the page.&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;*&lt;SPAN&gt;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;0 - Vertically Centered Left.&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;*&lt;SPAN&gt;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;1 - Vertically Centered Right.&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;*&lt;SPAN&gt;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;2 - Centered. Centers image vertically and horizontally.&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;*&lt;SPAN&gt;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;4 - Top Left. Aligns image in top left corner of the page.&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;*&lt;SPAN&gt;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;5 - Top Right. Aligns image in top right corner of the page.&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;*&lt;SPAN&gt;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;6 - Top Center. Aligns image at the top and horizontally centered on the page.&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;*&lt;SPAN&gt;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;7 - Bottom Left. Aligns image in the bottom left corner of the page.&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;*&lt;SPAN&gt;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;8 - Bottom Right. Aligns image in bottom right corner of the page.&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;*&lt;SPAN&gt;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;9 - Bottom Center. Aligns image at the bottom and vertically centered on the page.&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;Returns: Nothing&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&amp;nbsp;&lt;/P&gt;&lt;SPAN&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Code s&lt;/SPAN&gt;ample:&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&amp;nbsp;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&amp;nbsp;&lt;/P&gt;
&lt;BLOCKQUOTE dir=ltr&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;&lt;o:p&gt;&lt;FONT size=2&gt;&lt;FONT face="Courier New"&gt;&lt;FONT color=#0000ff&gt;DO LOCFILE&lt;/FONT&gt;("System.app")&lt;/FONT&gt;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;&lt;o:p&gt;&lt;FONT size=2&gt;&lt;FONT face="Courier New" color=#0000ff&gt;&amp;nbsp;&lt;BR&gt;WITH _Screen&lt;/FONT&gt;&lt;FONT face="Courier New"&gt;.&lt;/FONT&gt;&lt;FONT face="Courier New" color=#0000ff&gt;System&lt;/FONT&gt;&lt;FONT face="Courier New"&gt;.Drawing &lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Courier New" color=#0000ff&gt;&lt;BR&gt;&lt;FONT size=2&gt;&amp;nbsp;&amp;nbsp; LOCAL &lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;&lt;FONT face="Courier New"&gt;loBmp &lt;/FONT&gt;&lt;FONT face="Courier New" color=#0000ff&gt;as &lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;&lt;FONT face="Courier New"&gt;xfcBitmap &lt;BR&gt;&amp;nbsp;&amp;nbsp; loBmp = .&lt;/FONT&gt;&lt;FONT face="Courier New" color=#0000ff&gt;Bitmap&lt;/FONT&gt;&lt;FONT face="Courier New"&gt;.FromFile(&lt;/FONT&gt;&lt;FONT face="Courier New" color=#0000ff&gt;GETPICT&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Courier New" size=2&gt;()) &lt;BR&gt;&amp;nbsp;&amp;nbsp; loBmp.ToPrinter() &lt;BR&gt;&lt;/FONT&gt;&lt;FONT face="Courier New" color=#0000ff&gt;&lt;FONT size=2&gt;ENDWITH &lt;/FONT&gt;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/BLOCKQUOTE&gt;
&lt;P class=MsoNormal&gt;&amp;nbsp;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;SPAN&gt;&lt;o:p&gt;
&lt;DIV&gt;&lt;FONT face=Arial size=2&gt;&lt;/FONT&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;&lt;FONT face=Arial size=2&gt;&lt;/FONT&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;&lt;FONT face=Arial size=2&gt;
&lt;HR&gt;
&lt;/FONT&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;FONT face=Arial size=2&gt;&lt;/FONT&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;P class=MsoNormal&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&amp;nbsp;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;B&gt;&lt;SPAN&gt;&lt;FONT size=4&gt;&lt;FONT color=#800080&gt;xfcColorMatrix class&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/B&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;&lt;STRONG&gt;MatrixMultiply&lt;o:p&gt;&lt;/o:p&gt;&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;Returns a new Color Matrix object resulting of the multiplication of two color matrices. This is very useful when more than one color matrix is needed to be applied to an image. Multiplying the color matrices before they are applied to the image will bring a HUGE gain of performance.&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;Parameters: toColorMatrixOne, ;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;toColorMatrixTwo&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN&gt;Returns: a new color matrix containing the resultant matrix&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;&lt;/SPAN&gt;&amp;nbsp;&lt;/P&gt;&lt;SPAN&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Code s&lt;/SPAN&gt;ample:&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/SPAN&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;&lt;/SPAN&gt;&amp;nbsp;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;&lt;/SPAN&gt;&amp;nbsp;&lt;/P&gt;
&lt;BLOCKQUOTE dir=ltr&gt;
&lt;P class=MsoNormal&gt;&lt;FONT face="Courier New" color=#0000ff size=2&gt;DO LOCFILE&lt;/FONT&gt;&lt;FONT face="Courier New" size=2&gt;("System.app")&lt;/FONT&gt;&lt;/P&gt;&lt;/BLOCKQUOTE&gt;&lt;FONT face="Courier New" color=#0000ff size=2&gt;
&lt;BLOCKQUOTE dir=ltr&gt;
&lt;P class=MsoNormal&gt;&lt;BR&gt;WITH _Screen&lt;/FONT&gt;&lt;FONT face="Courier New" size=2&gt;.&lt;/FONT&gt;&lt;FONT face="Courier New" color=#0000ff size=2&gt;System&lt;/FONT&gt;&lt;FONT face="Courier New" size=2&gt;.Drawing&lt;/FONT&gt;&lt;/P&gt;&lt;FONT face="Courier New" size=2&gt;&lt;/FONT&gt;&lt;FONT face="Courier New" color=#0000ff size=2&gt;
&lt;P class=MsoNormal&gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp; LOCAL &lt;/FONT&gt;&lt;FONT face="Courier New" size=2&gt;loBmp &lt;/FONT&gt;&lt;FONT face="Courier New" color=#0000ff size=2&gt;as &lt;/FONT&gt;&lt;FONT face="Courier New" size=2&gt;xfcBitmap &lt;BR&gt;&amp;nbsp;&amp;nbsp; loBmp = .&lt;/FONT&gt;&lt;FONT face="Courier New" color=#0000ff size=2&gt;Bitmap&lt;/FONT&gt;&lt;FONT face="Courier New" size=2&gt;.FromFile(&lt;/FONT&gt;&lt;FONT face="Courier New" color=#0000ff size=2&gt;GETPICT&lt;/FONT&gt;&lt;FONT face="Courier New" size=2&gt;())&lt;/FONT&gt;&lt;FONT face="Courier New" color=#0000ff size=2&gt; &lt;BR&gt;&lt;/P&gt;&lt;/BLOCKQUOTE&gt;&lt;/FONT&gt;
&lt;BLOCKQUOTE dir=ltr&gt;
&lt;P class=MsoNormal&gt;&lt;FONT face="Courier New" color=#0000ff size=2&gt;&amp;nbsp;&amp;nbsp; LOCAL &lt;/FONT&gt;&lt;FONT face="Courier New" size=2&gt;loClrMatrix1 &lt;/FONT&gt;&lt;FONT face="Courier New" color=#0000ff size=2&gt;as &lt;/FONT&gt;&lt;FONT face="Courier New" size=2&gt;xfcColorMatrix &lt;/FONT&gt;&lt;FONT face="Courier New" color=#008000 size=2&gt;&amp;amp;&amp;amp; GreyScale matrix&lt;/FONT&gt;&lt;FONT face="Courier New" size=2&gt;&amp;nbsp;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;loClrMatrix1 = .Imaging.ColorMatrix.New(; &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0.33, 0.33, 0.33, 0, 0, ; &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0.33, 0.33, 0.33, 0, 0, ; &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0.33, 0.33, 0.33, 0, 0, ; &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0, 0, 0, 1, 0, ; &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0, 0, 0, 0, 1)&lt;/FONT&gt;&lt;FONT face="Courier New" color=#0000ff size=2&gt; &lt;BR&gt;&lt;/P&gt;&lt;/FONT&gt;
&lt;P class=MsoNormal&gt;&lt;FONT face="Courier New" color=#0000ff size=2&gt;&amp;nbsp;&amp;nbsp; LOCAL &lt;/FONT&gt;&lt;FONT face="Courier New" size=2&gt;loClrMatrix2 &lt;/FONT&gt;&lt;FONT face="Courier New" color=#0000ff size=2&gt;as &lt;/FONT&gt;&lt;FONT face="Courier New" size=2&gt;xfcColorMatrix &lt;/FONT&gt;&lt;FONT face="Courier New" color=#008000 size=2&gt;&amp;amp;&amp;amp; Half Brightness Matrix&lt;/FONT&gt;&lt;FONT face="Courier New" size=2&gt; &lt;BR&gt;&amp;nbsp;&amp;nbsp; loClrMatrix2 = .Imaging.ColorMatrix.New(; &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0.5, 0, 0, 0, 0, ; &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0, 0.5, 0, 0, 0, ; &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0, 0, 0.5, 0, 0, ; &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0, 0, 0, 1, 0, ; &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0, 0, 0, 0, 1)&lt;/FONT&gt;&lt;FONT face="Courier New" color=#0000ff size=2&gt; &lt;BR&gt;&lt;/P&gt;&lt;/FONT&gt;
&lt;P class=MsoNormal&gt;&lt;FONT face="Courier New" color=#0000ff size=2&gt;&amp;nbsp;&amp;nbsp; LOCAL &lt;/FONT&gt;&lt;FONT face="Courier New" size=2&gt;loNewClrMatrix &lt;/FONT&gt;&lt;FONT face="Courier New" color=#0000ff size=2&gt;as &lt;/FONT&gt;&lt;FONT face="Courier New" size=2&gt;xfcColorMatrix &lt;BR&gt;&amp;nbsp;&amp;nbsp; loNewClrMatrix = loClrMatrix1.Multiply(loClrMatrix1, loClrMatrix2) &lt;BR&gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp; loBmp.ApplyColorMatrix(loNewClrMatrix) &lt;BR&gt;&amp;nbsp;&amp;nbsp; loBmp.&lt;/FONT&gt;&lt;FONT face="Courier New" color=#0000ff size=2&gt;Save&lt;/FONT&gt;&lt;FONT face="Courier New" size=2&gt;("c:\MultClrMatrix.Png", .Imaging.ImageFormat.Png) &lt;BR&gt;&lt;/FONT&gt;&lt;FONT face="Courier New" color=#0000ff size=2&gt;&lt;BR&gt;ENDWITH &lt;/FONT&gt;&lt;/P&gt;&lt;/BLOCKQUOTE&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;&lt;/SPAN&gt;&amp;nbsp;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;&lt;/SPAN&gt;&lt;SPAN&gt;&lt;/SPAN&gt;&lt;SPAN&gt;&lt;/SPAN&gt;&amp;nbsp;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;&lt;/SPAN&gt;&lt;SPAN&gt;&lt;/SPAN&gt;&amp;nbsp;&lt;/P&gt;&lt;SPAN&gt;
&lt;DIV&gt;&lt;FONT face=Arial size=2&gt;&lt;/FONT&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;&lt;FONT face=Arial size=2&gt;
&lt;HR&gt;
&lt;/FONT&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;FONT face=Arial size=2&gt;&lt;/FONT&gt;&amp;nbsp;&lt;/DIV&gt;&lt;/SPAN&gt;
&lt;P class=MsoNormal&gt;&lt;B&gt;&lt;SPAN&gt;&lt;FONT color=#800080&gt;&lt;FONT size=4&gt;xfcSize class&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/B&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;&lt;STRONG&gt;ToRectangle&lt;o:p&gt;&lt;/o:p&gt;&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;Returns a xfcRectangle object from the current xfcSizeF object&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&amp;nbsp;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&amp;nbsp;&lt;/P&gt;&lt;SPAN&gt;&lt;o:p&gt;
&lt;DIV&gt;&lt;FONT face=Arial size=2&gt;&lt;/FONT&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;&lt;FONT face=Arial size=2&gt;
&lt;HR&gt;
&lt;/FONT&gt;&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;P class=MsoNormal&gt;&lt;B&gt;&lt;SPAN&gt;&lt;FONT color=#800080&gt;&lt;FONT size=4&gt;xfcSizef class&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/B&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;&lt;STRONG&gt;ToRectanglef&lt;o:p&gt;&lt;/o:p&gt;&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;Returns a xfcRectangleF object from the current xfcSizeF object&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;img src="http://weblogs.foxite.com/aggbug.aspx?PostID=6108" width="1" height="1"&gt;</description><category domain="http://weblogs.foxite.com/vfpimaging/archive/category/187.aspx">GDI+ AND IMAGES</category></item><item><title>FoxCharts 0.20 Alpha</title><link>http://weblogs.foxite.com/vfpimaging/archive/2008/05/21/6080.aspx</link><pubDate>Wed, 21 May 2008 03:18:00 GMT</pubDate><guid isPermaLink="false">8827bd1c-7596-4a8f-b0de-f59ce9ede522:6080</guid><dc:creator>cesarchalom</dc:creator><slash:comments>7</slash:comments><comments>http://weblogs.foxite.com/vfpimaging/comments/6080.aspx</comments><wfw:commentRss>http://weblogs.foxite.com/vfpimaging/commentrss.aspx?PostID=6080</wfw:commentRss><wfw:comment>http://weblogs.foxite.com/rsscomments/6080.aspx</wfw:comment><description>&lt;P&gt;Here's a new release of FoxCharts &lt;/P&gt;
&lt;P&gt;&lt;A href="https://www.codeplex.com/Release/ProjectReleases.aspx?ProjectName=VFPX&amp;amp;ReleaseId=13477"&gt;https://www.codeplex.com/Release/ProjectReleases.aspx?ProjectName=VFPX&amp;amp;ReleaseId=13477&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Prerequisites&lt;/STRONG&gt;:&lt;BR&gt;Visual FoxPro 9 and the GdiPlusX library from VFPX&amp;nbsp;&lt;IMG src="http://www.codeplex.com/VFPX/Project/FileDownload.aspx?DownloadId=3280"&gt; &lt;BR&gt;&lt;/P&gt;
&lt;P&gt;&lt;BR&gt;&lt;IMG src="/files/vfpimaging/foxcharts/CYL1.PNG"&gt; &lt;BR&gt;&lt;IMG src="/files/vfpimaging/foxcharts/CYL2.PNG"&gt; &lt;BR&gt;&lt;IMG src="/files/vfpimaging/foxcharts/CYLMONOCH.PNG"&gt; &lt;BR&gt;&lt;IMG src="/files/vfpimaging/foxcharts/CYLMULTI.PNG"&gt; &lt;BR&gt;&lt;IMG src="/files/vfpimaging/foxcharts/CYLSTACK1.PNG"&gt; &lt;BR&gt;&lt;IMG src="/files/vfpimaging/foxcharts/STACKAREA1.PNG"&gt; &lt;BR&gt;&lt;IMG src="/files/vfpimaging/foxcharts/STACKAREA2.PNG"&gt; &lt;BR&gt;&lt;IMG src="/files/vfpimaging/foxcharts/STACKAREA3.PNG"&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;As you can see, 2 new charts are now available:&lt;/P&gt;
&lt;P&gt;- Stacked Area&lt;/P&gt;
&lt;P&gt;- Cylinder &lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;The &lt;STRONG&gt;StackedArea&lt;/STRONG&gt; chart can be defined using the "ChartType" property, that must be set to the numeric 10&lt;/LI&gt;
&lt;LI&gt;The &lt;STRONG&gt;Cylinder&lt;/STRONG&gt; chart is derived from the original Bars chart. To have it, select ChartType for the bar option, and then set the BarType property to numeric 1 (0 = Bar Default; 1 = Cylinder)&lt;BR&gt;&lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Apart from this, many other important modifications were applied:&lt;/P&gt;
&lt;P&gt;The main difference is that now FoxCharts' base class is a Container, that contains the GdiPlusX ImageCanvas, and the legend objects, responsible for drawing all the text needed.&lt;BR&gt;&lt;BR&gt;Now we can customize any of those labels in lots of ways. Every piece of text, legend in the chart now has the following properties:&lt;BR&gt;&lt;/P&gt;
&lt;BLOCKQUOTE dir=ltr&gt;
&lt;P&gt;&lt;BR&gt;Alignment - 0 Left; 1 Right; 2 Center&lt;BR&gt;BackColor&lt;BR&gt;BackColorAlpha - this is cool, (0-255) determines the transparency of the background of the label&lt;BR&gt;Caption&lt;BR&gt;FontBold&lt;BR&gt;FontItalic&lt;BR&gt;FontName&lt;BR&gt;FontSize&lt;BR&gt;FontStrikethru&lt;BR&gt;FontUnderline&lt;BR&gt;ForeColor&lt;BR&gt;ForeColorAlpha - determines the transparency of the label&lt;BR&gt;&lt;/P&gt;&lt;/BLOCKQUOTE&gt;
&lt;P&gt;&lt;BR&gt;The legends are represented by the following objects:&lt;BR&gt;&lt;/P&gt;
&lt;BLOCKQUOTE dir=ltr&gt;
&lt;P&gt;Title&lt;BR&gt;SubTitle&lt;BR&gt;XAxis&lt;BR&gt;XAxisLegend2&lt;BR&gt;YAxis&lt;BR&gt;ShapeLegend&lt;BR&gt;ScaleLegend&lt;BR&gt;SideLegend&lt;BR&gt;&lt;/P&gt;&lt;/BLOCKQUOTE&gt;
&lt;P&gt;This way, every piece of text in the chart can be fully customized, not only the font, but the backcolor and the alpha (transparency). Now you can also change the alignment of the text, for example, to set the title to Right Alignment, all you have to do is to:&lt;/P&gt;
&lt;P&gt;Thisform.FoxCharts1.Title.Alignment = 1 &amp;amp;&amp;amp; Right&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;&lt;FONT color=#ff0000&gt;I still need to remind you that this is still&amp;nbsp;a preview version, destined for people that are interested in helping testing this tool.&lt;BR&gt;&lt;/FONT&gt;&lt;/STRONG&gt;&lt;BR&gt;&lt;BR&gt;&lt;BR&gt;&lt;B&gt;Please continue sending your suggestions and feedback!&lt;/B&gt; &lt;BR&gt;It is really very appreciated&lt;BR&gt;&lt;BR&gt;&lt;/P&gt;
&lt;P&gt;&lt;A href="https://www.codeplex.com/Release/ProjectReleases.aspx?ProjectName=VFPX&amp;amp;ReleaseId=13477"&gt;https://www.codeplex.com/Release/ProjectReleases.aspx?ProjectName=VFPX&amp;amp;ReleaseId=13477&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&lt;BR&gt;&lt;BR&gt;Contains the ALPHA version of the FoxCharts project.&lt;BR&gt;&lt;BR&gt;Unzip the file and run the form ChartsSample to see how it works.&lt;BR&gt;&lt;BR&gt;This version also distributes the two main files from GdiPlusX - System.app and GdiPlusX.vcx.&lt;BR&gt;If you are already a GdiPlusX user, you can use your own GdiPlusX version.&lt;BR&gt;Just make sure to be using the latest GdiPlusX version.&lt;BR&gt;&lt;BR&gt;GdiPlusX is also a VFPX project. For more information, please visit the GdiPlusX page at VFPX.&lt;BR&gt;&lt;BR&gt;&lt;BR&gt;More information and pictures about this project can be obtained at the VFPIMAGING weblog:&lt;BR&gt;&lt;BR&gt;&lt;A class=externalLink href="/vfpimaging/archive/2008/04/04/5919.aspx"&gt;http://weblogs.foxite.com/vfpimaging/archive/2008/04/04/5919.aspx&lt;SPAN class=externalLinkIcon&gt;&lt;/SPAN&gt;&lt;/A&gt;&lt;BR&gt;&lt;BR&gt;&lt;A class=externalLink href="/vfpimaging/archive/2008/04/24/6040.aspx"&gt;http://weblogs.foxite.com/vfpimaging/archive/2008/04/24/6040.aspx&lt;SPAN class=externalLinkIcon&gt;&lt;/SPAN&gt;&lt;/A&gt;&lt;BR&gt;&lt;BR&gt;&lt;BR&gt;This new release contains lots of enhancements:&lt;BR&gt;&lt;BR&gt;Chart Types&lt;BR&gt;- Bar charts&lt;BR&gt;- Multiple bars&lt;BR&gt;- Stacked bars&lt;BR&gt;&lt;BR&gt;- Pie&lt;BR&gt;- Doughnut&lt;BR&gt;&lt;BR&gt;- Lines&lt;BR&gt;- Area&lt;BR&gt;- Stacked Area&lt;BR&gt;- Points and Shapes&lt;BR&gt;&lt;BR&gt;&lt;BR&gt;Color variations:&lt;BR&gt;- Basic colors&lt;BR&gt;- Custom colors&lt;BR&gt;- Gradient colors&lt;BR&gt;- Random colors&lt;BR&gt;- Monochrome&lt;BR&gt;- Gradient or solid colors&lt;BR&gt;&lt;BR&gt;&lt;BR&gt;Legends in many places: Axys, shapes, side legends&lt;BR&gt;&lt;BR&gt;Scales&lt;BR&gt;&lt;BR&gt;Customize:&lt;BR&gt;- Titles&lt;BR&gt;- Subtitles&lt;BR&gt;- Backgrounds (solid or gradient)&lt;BR&gt;- Fonts&lt;BR&gt;- Colors&lt;/P&gt;&lt;img src="http://weblogs.foxite.com/aggbug.aspx?PostID=6080" width="1" height="1"&gt;</description><category domain="http://weblogs.foxite.com/vfpimaging/archive/category/187.aspx">GDI+ AND IMAGES</category></item></channel></rss>