New Features of EasyWin ======================= Turbo C++ for Windows provides EasyWin, a feature that lets you compile standard DOS applications which use traditional TTY style input and output so they can run as true Windows programs. With EasyWin, you do not need to change a DOS program to run it under Windows. EasyWin now has support for several new features: - Printing support lets you print the contents of the EasyWin window. - Viewable scrolling buffer stores either 100 or 400 lines of text (depending on the memory model). This buffer automatically scrolls as you move the vertical or horizontal scroll bar thumb tabs. - Redirects output to a file of your choice when the buffer runs out of space. - Full Windows Clipboard support, lets you paste to standard input and copying from the buffer onto the Clipboard, using either the keyboard or the mouse. For additional information about EasyWin, see: - Appendix A, "Using EasyWin" in the User's Guide - In the online help, Search for "EasyWin" or "DOS applications". Printing -------- Use the Print command on the system menu to print the contents of an EasyWin window. It activates the standard Print dialog from which you can specify printing options. By default, EasyWin prints 80 columns and approximately 54 lines on U.S. Letter size (8.5" x 11") paper. Note: The Print command is grayed if you do not have a default printer installed under Windows. If you have a printer installed but it is not the default, make it the default printer before attempting to print from an EasyWin application. Scrolling Buffer ---------------- EasyWin caches your screen output into a buffer of either: - 400 lines (for compact and large memory models) - 100 lines (for small and medium memory models) You can view the buffer any time by using the scroll bar or any of the standard window movement keys. You can change the buffer size of your EasyWin application by declaring the following global variable in your main source file with the appropriate initializer: POINT _BufferSize = { X, Y }; where: X is the number of columns you want. Setting X to a value other than 80 is not recommended as the results are unpredictable. Y is the number of lines you want. If you need to specify a value for Y greater than 100, use the compact or large memory model. The small and medium memory models have limited local heap space for the buffer. Autoscrolling ------------- If you click and drag either the vertical or horizontal scroll bar thumb tab, the text in the buffer automatically scrolls up and down or left and right. This is a useful feature when you want to quickly scan large amounts of data in the EasyWin window. Saving Text in an Output File ----------------------------- If you want to redirect the output of your program to a file, add the following global variable to your main source file: char *_OutputFileName = "C:\\myoutput.txt"; Make _OutputFileName the name of the file in which to store the redirected output. Note: If the output file you specified already exists, it is deleted without warning. Clipboard Support ----------------- EasyWin lets you to cut, copy, and paste text from an EasyWin application window. To select text, use the Edit command from the system menu and choose Mark. This puts you in Mark mode. You can use the mouse or the keyboard to select text. You can move the cursor and select text using the standard rules and keystrokes for this feature. Action Explanation ------ ----------- Enter Exits Mark mode. Any marked text is copied to the Clipboard. Escape Exits Mark mode. No text is selected. Right mouse button same as Enter. Edit|Copy same as Enter. Edit|Paste pastes text into stdin, receiving the contents of the Clipboard as input to your program, merging it with any keyboard input. Example ------- If you are writing a program that requests its data from the keyboard via scanf, cin, or other similar stdio/conio functions: 1. Write a data file that contains your entire input. 2. Load that file into NotePad, select it, and copy it to the Clipboard. 3. Run your program, go to the system edit menu, and choose Paste. Your program accepts the contents of Clipboard as input. Notes: - The Paste command is grayed if the Clipboard contains no objects of type CF_TEXT or if your program has terminated. - The Copy command is grayed if you have not selected a block of text.