|
|
Microsoft Windows NT Build 511 (SDK Final Release) 07-24-1993
=======================================================================
MICROSOFT (R) FOUNDATION CLASSES
=======================================================================
***********************************************************************
*** for Microsoft Windows (R) NT (tm) ***
***********************************************************************
-----------------------------------------------------------------------
This subdirectory contains the source code and example code for
the Microsoft Foundation Class (MFC) C++ library. The MFC library is
a C++ Application Framework designed primarily for use in developing
applications for Microsoft Windows. The MFC library is used in
conjunction with the tools provided with the NT beta release.
The MFC library consists of two groups of classes. One set is
designed for use with Microsoft Windows and includes classes
tailored for GUI application programming, such as classes for
windows, dialogs, controls, and menus. The other classes
are a set of lower level, non-graphical, general purpose classes
designed to make it easier to write the part of your application
that is independent of the user interface, and includes classes
supporting collections, files, memory management, and
runtime support. The Windows classes take advantage of the
features provided by these general purpose classes.
The MFC library is designed to be efficient in both space
and time. There is a minimal execution time overhead, and
the entire library, all 60 classes, is under 39K of executable code.
A complete introduction to the MFC library can be found in the
Overview section of the "Class Reference" book.
Windows Classes
---------------
Microsoft Windows and C++ are "object-oriented" and the MFC
library exploits the Windows operating environment. The Windows
C++ classes offer the following features:
o Robust Application Framework for Windows
o Tight coupling to the Windows API
o Significant reduction in API "surface area"
o Complete classes for nearly all Windows objects
o Efficient processing of Windows messages with message maps
o Customizable window classes using C++ inheritance
o Utility classes to make Windows programming easier
The Windows classes can be used in conjunction with all the standard
Windows APIs and can easily incorporate existing Windows code. In
addition, the MFC Windows classes provide a seamless migration to
the 32-bit Windows API.
General Purpose Classes
-----------------------
The general purpose classes are useful both with and without Windows.
If you are writing a program that does not use Windows, you can
still take advantage of the MFC library for your application's
user interface independent code. All of the features are optional
and will incur no runtime overhead if you choose not to use them. The
general purpose C++ classes include the following features:
o Common base class for many classes
o Runtime type and metaclass support
o Persistent objects
o Collection classes based on ANSI C++ template syntax
o String class
o Time and Date classes
o File classes
o Exception handling based on ANSI C++ syntax
o Diagnostic and debugging support
Support for Windows 3.1 features
--------------------------------
The Microsoft Foundation classes provide support for the
enhancements provided in Windows version 3.1. The following
features are described in technical notes in the
\MSTOOLS\MFC\DOC directory and demonstrated in sample programs in
\MSTOOLS\MFC\SAMPLES. These API functions are documented only in
the Help system. The following list describes the enhancements
that can be used to develop applications for both Windows 3.0
and Windows 3.1.
o The development and use of custom controls is supported. In
addition, owner draw controls and bitmap buttons are provided.
See TN014.TXT and the sample application CTRLTEST.
o Common dialog operations are now supported with easily
customized classes including CFileDialog (for both File Open
and File Save As), CFindReplaceDialog (to implement modeless
find and replace), CColorDialog (for color selection),
CPrintDialog (for both print setup and print), and
CFontDialog (for font selection). These new dialogs are
described in TN013.TXT.
o Dialog boxes now feature a gray background which is easily
customized.
o OLE servers now register themselves at startup so that
users do not need to use REGEDIT.EXE.
o Using multiple inheritance with Microsoft Foundation
classes is demonstrated in the sample application MINSVRMI,
a small OLE server that uses multiple inheritance.
o For applications that target Windows 3.1 only, the Microsoft
Foundation Class Library supports the most useful new Windows
3.1 API functions and messages.
Why use the Microsoft Foundation library instead of C and the SDK?
------------------------------------------------------------------
The MFC library has many advantages over using the traditional
C techniques in the Microsoft Software Development Kit for Windows.
Some of these advantages include:
o MFC decreases the API surface area; the SDK is a catalog of
hundreds of functions, whereas the MFC library takes advantage
of the inheritance and polymorphism supported by C++ to organize
the Windows APIs in a logical and manageable manner.
o MFC provides a standard Windows application startup; the
MFC class CWinApp implements the functionality normally provided
in WinMain.
o MFC encapsulates Windows behavior; the class structure
and data encapsulation supported by C++ safely hides many
of the details that programmers need not concern themselves
with.
o MFC handles many details of Windows programming; gone are
the days of registering Window classes or MakeProcInstance.
o MFC provides a object-oriented mechanism for routing
Windows messages; the message map supported by each window
C++ class provides a cleaner and less error prone mechanism for
handling the mapping of Windows messages to member functions.
Messages, commands, and notifications can be handled in this
object-oriented manner.
o MFC taps the power of C++. C++ supports many features that
make writing programs easier, such as type safety, encapsulation,
inheritance, and polymorphism, that when used in conjunction with
MFC provides the best technique for writing Windows programs
in C++.
Usage
-----
Source code is provided so that you can build the library target
that you require. The file SRC\README.TXT contains instructions for
building the library.
Before using the MFC library in your own code be sure that the
MFC\INCLUDE subdirectory is in your INCLUDE environment variable.
Subdirectories
--------------
The MFC subdirectory contains several subdirectories. Nearly every
subdirectory contains a README.TXT file that describes the
directory's contents. The following subdirectories are present:
DOC\ - MFC technical notes describing implementation details.
INCLUDE\ - MFC header files.
SRC\ - MFC source files and instructions for building a library.
LIB\ - MFC libraries in binary form.
SAMPLES\ - MFC sample applications.
Documentation
-------------
The NT release of the MFC library ships with both on-line WinHelp and
QuickHelp documentation only. No MFC printed documentation is available
with this release, but the printed MFC documentation provided with the
Microsoft C/C++ 7.0 compiler can be used 'as-is'.
If you have any comments or suggestions regarding the Microsoft
Foundation Classes, please let Microsoft know through the beta program
liaison.
NOTE
----
The Microsoft Foundation Classes (MFC) library source code is
shipped "as is" and is designed for your own use and modification.
Microsoft Product Support can only offer limited support regarding
the MFC source code because of this benefit.
Microsoft grants you a non-exclusive royalty-free right to use and
modify the source code contained in any Microsoft Foundation Classes
source code file for purposes of creating a software product.
However, you may not include this code in source form (or
any modified version of it) within any software product.
Notwithstanding the Microsoft End User License Agreement, THIS SOURCE
CODE IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND. YOU AGREE THAT
NEITHER MICROSOFT NOR ANYONE ELSE INVOLVED IN CREATING, PRODUCING OR
DELIVERING THE SOURCE CODE SHALL BE LIABLE FOR ANY DIRECT, INDIRECT,
CONSEQUENTIAL, OR INCIDENTAL DAMAGES RELATING TO THE SOURCE CODE.
Windows NT Release Notes:
-------------------------
-- This release is a strict superset of the Microsoft C/C++ 7.0 release
of MFC. Any applications written for the MFC C++ Windows API will
need only be recompiled using the 32 bit tools in this release in order
to run in full 32 bit mode. For those familiar with MFC, you will
note that the sample applications included in this release are
largely unchanged from the 16 bit release. This release of MFC can be
used interchangeably with the Microsoft C/C++ 7.0 release.
SAMPLES ARE NT VERSION BY DEFAULT: The makefiles for the sample
applications have been changed to build the NT VERSION BY DEFAULT.
If you wish to build a Windows version using these sources, you must
define WIN16MFC=1 when building.
-- In order to build the MFC sample applications you should have your
environment set as follows:
set LIB=c:\mstools\lib;c:\mstools\mfc\lib
set INCLUDE=c:\mstools\h;c:\mstools\mfc\include
These may also be set on the NMAKE command lines if you wish. If your
installation is on another drive or in another directory, then you
should change c:\mstools accordingly.
-- Your PATH must include the Windows SDK Tools and Microsoft C/C++.
-- Online documentation is available via WinHelp (MFC10WH.HLP) and is
installed by the SDK setup in MSTOOLS\BIN.
-- Do not use the /Zp switch for MFC applications. If you do some system
calls may not work (such as COMMDLG).
-- The LINK32 linker emits a warning when it does not extract any modules
from a .LIB. The MFC sample applications will emit this warning which can
be safely ignored.
-- The Find Next feature on the MULTIPAD sample does not scroll the window
vertically.
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.