tom@mims-iris.waterloo.edu (Tom Haapanen) (05/18/91)
8c8 < Summary: version 1.16 [last change: th/91-04-29 --- more changes than ever...] --- > Summary: version 1.16 [last change: th/91-05-14 --- tools, instances] 12d11 < (* changed items) 18c17 < 2. Windows development tools * --- > 2. Windows development tools 21c20 < 5. Windows RTF word processors * --- > 5. Windows RTF word processors 36a36 > 18. Program instance communication 68a69 > - Topspeed C # 73a75 > - Topspeed C++ # 82c84 < - Topspeed Modula-2 2.01+ --- > - Topspeed Pascal # 84a87 > - Topspeed Modula-2 2.01+ [ \tom haapanen --- university of waterloo --- tom@mims-iris.waterloo.edu ] [ "i don't even know what street canada is on" -- al capone ]
tom@mims-iris.waterloo.edu (Tom Haapanen) (06/05/91)
37a38,39 > 19. Windows programmer's bibliography > 61c63 < designed for Microsoft C 5.1/6.0 and Microsoft Macro Assembler 5.1, --- > designed for Microsoft C 5.1/6.0 and Microsoft Macro Assembler 5.1/6.0, 77a80,81 > - Microsoft Visual Basic 1.0 > 83c87 < - Stonybrook Modula-2 2.0+ --- > - Microsoft Pascal 5.0 84a89 > - Turbo Pascal for Windows 1.0 86c91 < - Microsoft Pascal 5.0 --- > - Stonybrook Modula-2 2.0+ 88,94c93,98 < - Turbo Pascal for Windows 1.0 < Of these, Borland C++ and Turbo Pascal for Windows include their < own Windows libraries, and do not require you to purchase a Windows < SDK (although you will need to buy the SDK documentation, which is < available separately). Applications written using Borland C++ will < not run in Windows 3.0 Real Mode, nor do they permit the use of < huge pointers. --- > Of these, Borland C++, Visual Basic and Turbo Pascal for Windows > include their own Windows libraries, and do not require you to > purchase a Windows SDK (although you will need to buy the SDK > documentation, which is available separately). Applications written > using Borland C++ will not run in Windows 3.0 Real Mode, nor do they > permit the use of huge pointers. 172,174c176,180 < CVW, which is similar to the DOS version of Codeview, requires a < secondary monitor; a serial terminal can not be used. CVW is < included with the Windows SDK; MultiScope is a separate product. --- > The CVW, which is similar to the DOS version of Codeview, included > with the SDK requires a secondary monitor; a serial terminal can > not be used (a single-monitor version, CVW 3.05, is included with > Microsoft C 6.0ax, and is also available separately from Microsoft). > CVW is included with the Windows SDK; MultiScope is a separate product. 199a206 > txt2rtf [shareware conversion tool] 210c217 < can also be found on cica). --- > and txt2rtf can also be found on cica). 374a382,401 > > > 18. What books are there that I should be using for Windows programming? > > >> First of all, if you don't have an SDK, you'll want the SDK docs: > SDK Reference -- Volume 1 > Microsoft Press, 1990, part no. 06856 > SDK Reference -- Volume 2 > Microsoft Press, 1990, part no. 06857 > SDK Guide to Programming > Microsoft Press, 1990, part no. 06854 > SDK Tools > Microsoft Press, 1990, part no. 06854 > SAA CUA Advanced Interface Design Guide > IBM, 1989, part no. SC26-4582-0 > Then you can get into the "aftermarket" books: > Charles Petzold: Programming Windows, 2e > Microsoft Press, 1990, ISBN 1-55615-264-7 > Jeffrey M. Richter: Windows 3: A Developer's Guide > M&T Books, 1991, ISBN 1-55851-164-4 [ \tom haapanen --- university of waterloo --- tom@mims-iris.waterloo.edu ] [ "i don't even know what street canada is on" -- al capone ]
tom@mims-iris.waterloo.edu (Tom Haapanen) (06/17/91)
8d7 < Summary: version 1.16 [last change: th/91-05-14 --- tools, instances] 21a21 > 7. Windows C++ class libraries 23,24c23,24 < 7. Windows extended memory handling < 8. Windows screen prints --- > 8. Windows extended memory handling > 9. Windows screen prints 26c26 < 9. Device driver development --- > 10. Device driver development 28,36c28,40 < 10. Hiding dialog box controls < 11. Adding controls to a non-dialog box window < 12. Using floating-point in Windows < 13. Changing button colors < 14. Programming using large model < 15. Linking .FON files < 16. Window background colors < 17. Subclassing control windows < 18. Program instance communication --- > 11. Hiding dialog box controls > 12. Adding controls to a non-dialog box window > 13. Using floating-point in Windows > 14. Changing button colors > 15. Programming using large model > 16. Linking .FON files > 17. Window background colors > 18. Subclassing control windows > 19. Changing the color palette in 16-color mode > 20. Allocating global memory in a DLL > 21. Determining the amount of physical memory > 22. Aligning columns in a listbox > 23. Keeping an application iconized or in a fixed-size window 92a97,100 > > - Microsoft COBOL 4.0 > - MicroFocus COBOL 2.4+ > 96,98c104,109 < documentation, which is available separately). Applications written < using Borland C++ will not run in Windows 3.0 Real Mode, nor do they < permit the use of huge pointers. --- > documentation, which is available separately). The Windows SDK > is also available in a bundle with Microsoft C 6.0ax, at a reduced > price. > > Applications written using Borland C++ will not run in Windows > 3.0 Real Mode, nor do they permit the use of huge pointers. 139c150 < g. Spinnaker Plus. ? list, ? runtime. --- > g. Spinnaker PLUS. ? list, ? runtime. 142,147c153,154 < 3. Use W:CASE or WindowsMAKER, both of which generate C code for < Windows. This will still require the use of the SDK. There is < also available a shareware code generator UCB/WordPlan (available < on cica.cica.indiana.edu), but it's considerably more limited in < functionality than the commercial products. No runtime license < fees. --- > h. Windowcraft. ? list, ? runtime. > [Does anyone have any details about this?] 148a156,162 > 3. Use W:CASE, WindowsMAKER, VZ Programmer, Winpro/3 or ProtoGen, all > of which generate C code for Windows. This will still require the > use of the SDK (or, in some cases, the use of BC++). There is also > available a shareware code generator UCB/WordPlan ,available on > cica.cica.indiana.edu, but it's considerably more limited in functio- > nality than the commercial products. No runtime license fees. > 156,159c170,174 < >> You can use link4, included on the Microsoft C 5.1/6.0 compiler disks, < and available separately with the Supplemental Compiler Utilities < diskette (free) from Microsoft. Other linkers that work for Windows < development are Optilink/Windows, Borland's tlink and Watcom's wlink. --- > >> You can use link 5.10 (or greater), included on the Microsoft C 5.1/6.0 > compiler disks, and available separately with the Supplemental Compiler > Utilities diskette (free) from Microsoft. Other linkers that work for > Windows development are Optilink/Windows, Borland's tlink and Watcom's > wlink. 189c204 < with the SDK, will work wither with a secondary monitor or a serial --- > with the SDK, will work either with a secondary monitor or a serial 235a251,261 > 8. What C++ class libraries are available for Windows programming? > > >> The following products provide C++ class libraries: > Commonview Glockenspiel Ltd. > C++/Views CNS, Inc. > XVT++ XVT Inc. [not released, beta test available] > Tier++ ? > JTW ? > Blaise Blaise Computing > > 239c265 < 7. What does Windows do with my extended memory? After I run Windows, --- > 8. What does Windows do with my extended memory? After I run Windows, 251c277 < 8. How can I take a snapshot of my Windows screen? --- > 9. How can I take a snapshot of my Windows screen? 261c287 < 9. What do I need to develop device drivers for Windows? --- > 10. What do I need to develop device drivers for Windows? 270c296 < 10. How can I hide dialog box controls? --- > 11. How can I hide dialog box controls? 277c303 < 11. How can I add pushbuttons and edit controls to a "normal" window which --- > 12. How can I add pushbuttons and edit controls to a "normal" window which 285c311 < 12. Why does compiling a Windows application with emulator floating-point --- > 13. Why does compiling a Windows application with emulator floating-point 293c319,320 < thing terrible must have happened to the code. --- > thing terrible must have happened to the code. [This problem affects > only Real mode, and Windows 2.x.] 308c335 < 13. How do I change the button colors? --- > 14. How do I change the button colors? 331c358 < 14. Why should I not use large model in my Windows application? Can I do --- > 15. Why should I not use large model in my Windows application? Can I do 352c379 < 15. I get errors linking fonts into a .FON file? What's the problem? --- > 16. I get errors linking fonts into a .FON file? What's the problem? 366c393 < 16. Should I use GetStockObject( GCW_WHITEBRUSH ) for my window background? --- > 17. Should I use GetStockObject( GCW_WHITEBRUSH ) for my window background? 373c400 < 17. The SDK Guide to Programming says that I shouldn't subclass standard --- > 18. The SDK Guide to Programming says that I shouldn't subclass standard 384c411,506 < 18. What books are there that I should be using for Windows programming? --- > 19. Is it possible to change the palette entries for a VGA running in > 16 color mode? > > >> If you are using a standard driver, you will need to bypass Windows > to do it. Microsoft will tell you to buy the DDK, but there is > another way. Now, the Windows system palette maps onto the VGA > 16-color palette as follows: > > VGAPAL SYSPAL VGAPAL SYSPAL > 00 00 08 07 > 01 01 09 13 > 02 02 10 14 > 03 03 11 15 > 04 04 12 16 > 05 05 13 17 > 06 06 14 18 > 07 12 15 19 > > #define syspal(n) (n<7 ? n : (n>8 ? n+4 : (n=7 ? 12 : 7))) > #define vgapal(n) (n<7 ? n : (n>12 ? n-4 : (n=7 ? 8 : 7))) > > When you get a WM_SETFOCUS event, save the current state of the > hardware colormap and installs the one you want. When you get a > WM_KILLFOCUS event, restore the original palette. Don't use the > pallette registers directly, though, just modify the color registers > that they point to. > > > 20. How can I allocate global memory that's owned by a DLL? > > >> Basically, if you use GlobalAlloc in a DLL, the application that > called the DLL will own the object. There is a way around this, > though: allocate the memory using the GMEM_DDESHARE flag; this > will make the allocating code segment (rather than the current task) > own the memory. > > > 21. How do I determine how much physical memory is installed, in order > not to cause swapping in 386 Enhanced mode? > > You need to make a DPMI call to obtain that piece of information. DPMI > call 0500h with ES:DI pointing to a 30h byte buffer returns the `Free > Memory Information': > > Offset Description > 00h Largest available free block in bytes > 04h Maximum unlocked page allocation > 08h Maximum locked page allocation > 0Ch Linear address space size in pages > 10h Total number of unlocked pages > 14h Number of free pages > 18h Total number of physical pages > 1Ch Free linear address space in pages > 20h Size of paging file/partition in pages > 24h-2Fh Reserved > > The size of one page in bytes can be determined by function 0604h, which > returns the page size in bytes in BX:CX. To call a DPMI function, invoke > the interrupt 31h. Carry bit will be clear if call was successful. > > The complete DPMI 0.9 specification is available free(!) at Intel Lite- > rature JP26, Santa Clara. It's also available on cica.cica.indiana.edu. > > > 22. How do I aling columns in a listbox? The proportional font causes the > columns to be badly misaligned. > > >> In the resource file make sure the list box has the LBS_USETABSTOPS style. > When you add the items to the listbox, separate the fields with tabs. > You can either use the default tab stops, or set your own by sending the > listboxI always used the LB_SETTABSTOPS message. For more information, > see SDK Reference vol.1, page 6-44, and SDK Reference vol.2, page 8-43. > > > 23. How can I force a window to stay iconic? or to make it non-resizable? > > >> In order to make your app stay as an icon, you must process the > WM_QUERYOPEN message. If you always return 0 for this message, you > indicate that the icon can not be opened into a ordinary window. > > To retain a fixed size, you must process the WM_GETMINMAXINFO message. > When you get it, modify the info pointed to by lParam: > LPPOINT lpSize = (LPPOINT)lParam; > lpSize[3].x = lpSize[4].x = theRightWidth; > lpSize[3].y = lpSize[4].y = theRightHeight; > If you don't want the window to be maximized or iconized, create it > with the ~WS_MAXIMIZEBOX and/or ~WS_MINIMIZEBOX styles, and disable > those items from the system menu, if there is one. Also, you can > alternately disable resizing by creating the windows with ~WS_THICKFRAME, > and disabling the Size... item on the system menu. > > > -------------------- > > > 24. What books are there that I should be using for Windows programming? [ \tom haapanen --- university of waterloo --- tom@mims-iris.waterloo.edu ] [ "i don't even know what street canada is on" -- al capone ]