home *** CD-ROM | disk | FTP | other *** search
/ Programming Languages Suite / ProgLangD.iso / C++-7 / DISK8 / MFC / README.TX$ / README
Encoding:
Text File  |  1992-03-18  |  10.0 KB  |  225 lines

  1. =======================================================================
  2.                    MICROSOFT (R) FOUNDATION CLASSES
  3. =======================================================================
  4.  
  5. This subdirectory contains the source code and example code for
  6. the Microsoft Foundation Class (MFC) C++ library.  The MFC library is
  7. a C++ Application Framework designed primarily for use in developing 
  8. applications for Microsoft Windows.  The MFC library is used in
  9. conjunction with the tools provided with the Microsoft C/C++
  10. Development System.
  11.  
  12. The MFC library consists of two groups of classes.  One set is
  13. designed for use with Microsoft Windows and includes classes
  14. tailored for GUI application programming, such as classes for
  15. windows, dialogs, controls, and menus.  The other classes
  16. are a set of lower level, non-graphical, general purpose classes
  17. designed to make it easier to write the part of your application 
  18. that is independent of the user interface, and includes classes 
  19. supporting collections, files, memory management, and 
  20. runtime support.  The Windows classes take advantage of the
  21. features provided by these general purpose classes.
  22.  
  23. The MFC library is designed to be efficient in both space
  24. and time.  There is a minimal execution time overhead, and
  25. the entire library, all 60 classes, is under 39K of executable code.
  26.  
  27. A complete introduction to the MFC library can be found in the
  28. Overview section of the "Class Reference" book.
  29.  
  30.  
  31. Windows Classes
  32. ---------------
  33. Microsoft Windows and C++ are "object-oriented" and the MFC
  34. library exploits the Windows operating environment.  The Windows
  35. C++ classes offer the following features:
  36.  
  37.     o  Robust Application Framework for Windows
  38.     o  Tight coupling to the Windows API
  39.     o  Significant reduction in API "surface area"
  40.     o  Complete classes for nearly all Windows objects
  41.     o  Efficient processing of Windows messages with message maps
  42.     o  Customizable window classes using C++ inheritance
  43.     o  Utility classes to make Windows programming easier
  44.  
  45. The Windows classes can be used in conjunction with all the standard
  46. Windows APIs and can easily incorporate existing Windows code.  In
  47. addition, the MFC Windows classes provide a seamless migration to
  48. the forthcoming 32-bit Windows API.
  49.  
  50.  
  51. General Purpose Classes
  52. -----------------------
  53. The general purpose classes are useful both with and without Windows.
  54. If you are writing a program that does not use Windows, you can
  55. still take advantage of the MFC library for your application's
  56. user interface independent code.  All of the features are optional
  57. and will incur no runtime overhead if you choose not to use them.  The
  58. general purpose C++ classes include the following features:
  59.  
  60.     o  Common base class for many classes
  61.     o  Runtime type and metaclass support
  62.     o  Persistent objects
  63.     o  Collection classes based on ANSI C++ template syntax
  64.     o  String class
  65.     o  Time and Date classes
  66.     o  File classes
  67.     o  Exception handling based on ANSI C++ syntax
  68.     o  Diagnostic and debugging support
  69.  
  70.  
  71. Support for Windows 3.1 features
  72. --------------------------------
  73.      The Microsoft Foundation classes provide support for the
  74.      enhancements provided in Windows version 3.1. The following
  75.      features are described in technical notes in the
  76.      \C700\MFC\DOC directory and demonstrated in sample programs in
  77.      \C700\MFC\SAMPLES. These API functions are documented only in 
  78.      the Help system. The following list describes the enhancements 
  79.      that can be used to develop applications for both Windows 3.0 
  80.      and Windows 3.1.
  81.  
  82.      o The development and use of custom controls is supported. In
  83.        addition, owner draw controls and bitmap buttons are provided. 
  84.        See TN014.TXT and the sample application CTRLTEST.
  85.  
  86.      o To improve robustness, the Microsoft Foundation Class Library 
  87.        fully supports the STRICT data types defined in the Windows 3.1 
  88.        interface file, WINDOWS.H.
  89.  
  90.      o Common dialog operations are now supported with easily
  91.        customized classes including CFileDialog (for both File Open
  92.        and File Save As), CFindReplaceDialog (to implement modeless
  93.        find and replace), CColorDialog (for color selection),
  94.        CPrintDialog (for both print setup and print), and
  95.        CFontDialog (for font selection). These new dialogs are
  96.        described in TN013.TXT.
  97.  
  98.      o Dialog boxes now feature a gray background which is easily 
  99.        customized.
  100.  
  101.      o OLE servers now register themselves at startup so that
  102.        users do not need to use REGEDIT.EXE.
  103.     
  104.      o The Microsoft Foundation Classes were designed and implemented
  105.        using the Windows 3.1 Debug Kernel.  If your application issues
  106.        any Debug Kernel warnings, they are most likely due to the way you 
  107.        structured your application code.  If you receive any Fatal Exit
  108.        messages, the cause is most likely a result of an incorrectly
  109.        used feature.  Some Debug Kernel warnings will be issued even
  110.        when features are used correctly (such as 'Invalidate with
  111.        fErase == FALSE prevents EraseBackground').
  112.  
  113.      o The Microsoft Foundation Classes support the Microsoft PenWindows
  114.        controls (see TN015.TXT). A sample application, SPEAKN.EXE,
  115.        is provided to demonstrate the use of Pen and MultiMedia. 
  116.        A pen palette and/or MultiMedia extensions are NOT required. 
  117.        Applications developed with the Microsoft Foundation classes 
  118.        are automatically "pen-aware."
  119.  
  120.      o Using multiple inheritance with Microsoft Foundation
  121.        classes is demonstrated in the sample application MINSVRMI,
  122.        a small OLE server that uses multiple inheritance.
  123.  
  124.      o For applications that target Windows 3.1 only, the Microsoft 
  125.        Foundation Class Library supports the most useful new Windows 
  126.        3.1 API functions and messages.
  127.  
  128.  
  129. Why use the Microsoft Foundation library instead of C and the SDK?
  130. ------------------------------------------------------------------
  131. The MFC library has many advantages over using the traditional
  132. C techniques in the Microsoft Software Development Kit for Windows.
  133. Some of these advantages include:
  134.  
  135.     o  MFC decreases the API surface area; the SDK is a catalog of
  136.     hundreds of functions, whereas the MFC library takes advantage
  137.     of the inheritance and polymorphism supported by C++ to organize
  138.     the Windows APIs in a logical and manageable manner.
  139.  
  140.     o  MFC provides a standard Windows application startup; the
  141.     MFC class CWinApp implements the functionality normally provided
  142.     in WinMain.
  143.  
  144.     o  MFC encapsulates Windows behavior; the class structure
  145.     and data encapsulation supported by C++ safely hides many
  146.     of the details that programmers need not concern themselves
  147.     with.
  148.  
  149.     o  MFC handles many details of Windows programming;  gone are
  150.     the days of registering Window classes or MakeProcInstance.
  151.  
  152.     o  MFC provides a object-oriented mechanism for routing
  153.     Windows messages;  the message map supported by each window
  154.     C++ class provides a cleaner and less error prone mechanism for
  155.     handling the mapping of Windows messages to member functions.
  156.     Messages, commands, and notifications can be handled in this
  157.     object-oriented manner.
  158.  
  159.     o  MFC taps the power of C++.  C++ supports many features that
  160.     make writing programs easier, such as type safety, encapsulation,
  161.     inheritance, and polymorphism, that when used in conjunction with
  162.     MFC provides the best technique for writing Windows programs
  163.     in C++.
  164.  
  165.  
  166. Usage
  167. -----
  168. Source code is provided so that you can build the library model
  169. and target that you require.  Most of the sample programs are small
  170. and medium model Windows examples.  Please see the file
  171. SAMPLES\README.TXT to determine each sample application's library
  172. requirements.
  173.  
  174. The file SRC\README.TXT contains instructions for building the library.
  175. Before using the MFC library be sure that the INCLUDE subdirectory is
  176. in your INCLUDE environment variable and that the LIB subdirectory is
  177. in your LIB environment variable so that your development tools can
  178. access MFC.
  179.  
  180.  
  181. Subdirectories
  182. --------------
  183. The MFC subdirectory contains several subdirectories.  Nearly every
  184. subdirectory contains a README.TXT file that describes the
  185. directory's contents.  The following subdirectories are present:
  186.  
  187.     DOC\        - MFC technical notes describing implementation details.
  188.     INCLUDE\    - MFC header files.
  189.     SRC\        - MFC source files and instructions for building a library.
  190.     LIB\        - MFC libraries in binary form.
  191.     SAMPLES\    - MFC sample applications.
  192.  
  193.  
  194. Documentation
  195. -------------
  196. The MFC library ships with both on-line and print documentation. 
  197. A complete API reference is included for the general-purpose and
  198. Windows classes, as well as a tutorial introduction to programming
  199. with MFC, and a cookbook for intermediate and advanced users.
  200.  
  201. If you have any comments or suggestions regarding the Microsoft
  202. Foundation Classes, please let Microsoft know.  Microsoft Product
  203. Support contact information is included with the C/C++ 7.0 product.
  204.  
  205.  
  206. NOTE
  207. ----
  208.  
  209. The Microsoft Foundation Classes (MFC) library source code is
  210. shipped "as is" and is designed for your own use and modification.
  211. Microsoft Product Support can only offer limited support regarding
  212. the MFC source code because of this benefit. 
  213.  
  214. Microsoft grants you a non-exclusive royalty-free right to use and 
  215. modify the source code contained in any Microsoft Foundation Classes 
  216. source code file for purposes of creating a software product.  
  217. However, you may not include this code in source form (or 
  218. any modified version of it) within any software product.   
  219.  
  220. Notwithstanding the Microsoft End User License Agreement, THIS SOURCE 
  221. CODE IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND.  YOU AGREE THAT 
  222. NEITHER MICROSOFT NOR ANYONE ELSE INVOLVED IN CREATING, PRODUCING OR 
  223. DELIVERING THE SOURCE CODE SHALL BE LIABLE FOR ANY DIRECT, INDIRECT, 
  224. CONSEQUENTIAL, OR INCIDENTAL DAMAGES RELATING TO THE SOURCE CODE.
  225.