MFC Visual C++6编程技术内幕

2018-11-16   阅读:194

  Introduction Foreword About the Author Core MFC The MFC Architecture A Brief History of MFC The MFC Class Hierarchy CObject CCmdTarget CWinThread CWinApp CWnd CFrameWnd CView CDocument Summary MFC Dialogs, Controls, and Data Interaction Creating an Application Starting and Using MFC AppWizard The AppWizard-Generated Code Modifying the Application Adding Dialog Controls Adding Initialization Using Dialog Controls ToolTips Enabling ToolTips Displaying Text Dialog Data Exchange Standard DDX UpdateData Using Standard Dialog Boxes File Open/Save Color Selector Font Selector Print Dialog Summary The Windows Common Controls Initializing and Using the Common Controls Notifications for Windows Common Controls The Notification Message Structure Overview of the Notification Process A Better Notification Handling Scheme Specifying Notification Ranges with ON_NOTIFY_RANGE Hot Key Controls: Class CHotKeyCtrl CHotKeyCtrl Class Methods Creating and Initializing a CHotKeyCtrl Object Using a Hot Key Control Spin Controls: Class CSpinButtonCtrl Spin Control Styles CSpinButtonCtrl Messages CSpinButtonCtrl Class Methods Creating and Initializing a Spin Control Sample Program: SPIN1 Slider Controls: Class CSliderCtrl Slider Control Styles CSliderCtrl Messages CSliderCtrl Class Methods Creating and Initializing a Slider Control Sample Program: Slider Controls (SLIDER1) Sample Program: SLIDER1 Progress Bar Controls: Class CProgressCtrl CProgressCtrl Class Methods Creating and Initializing a CProgressCtrl Object Using a Progress Control Image Lists: Class CImageList CImageList Class Methods Creating and Initializing a CImageList Control List View Controls: Class CListCtrl List View Control Styles Image Lists and the List View Control List View Items and Subitems List View Notification Messages Creating and Initializing a CListCtrl Object Using the List View Control Tree View Controls: Class CTreeCtrl Tree View Control Styles Tree View Notification Messages CTreeCtrl Class Methods Creating and Initializing a Tree View Control Using a CTreeCtrl Object Sample Program: TREELIST.EXE Tab Controls: Class CTabCtrl Tab Control Styles Tab Control Notification Messages CTabCtrl Class Methods The Tab Item Structure (TC_ITEM) Creating and Initializing a Tab Control Using a Tab Control Animate Controls: Class CAnimateCtrl Animate Control Styles Animate Control Notification Messages CAnimateCtrl Class Methods Creating and Initializing an Animate Control Using an Animate Control Rich Edit Controls: Class CRichEditCtrl Rich Edit Control Window Styles The Character Format Structure (CHARFORMAT) The Paragraph Format Structure (PARAFORMAT) CRichEditCtrl Class Methods CRichEditCtrl Line-Related Methods CRichEditCtrl Text-Selection Methods CRichEditCtrl Formatting Methods CRichEditCtrl Editing Methods CRichEditCtrl Clipboard Methods CRichEditCtrl General-Purpose Methods Creating and Initializing a Rich Edit Control Using a Rich Edit Control Summary Painting, Device Contexts, Bitmaps, and Fonts Device Contexts The Graphics Device Interface MFC Wrapping MFC Device Context Classes The Base Class: CDC Painting with Class CPaintDC Managing Client Areas with Class CClientDC Managing Frame Windows with Class CWindowDC Windows Graphic Objects Pens: Class CPen Brushes: Class CBrush Fonts: Class CFont Bitmaps: Class CBitmap Palettes: Class CPalette Regions: Class CRgn GDI Coordinate Systems Logical Mapping Modes Vector Graphics Drawing Modes Lines and Polylines Rectangles Regions Polygons Ellipses Bezier Curves Fonts and Text Font Characteristics The TEXTMETRIC Structure The LOGFONT Structure Font Creation Drawing Text Sample Program: Vector Graphics and Text Methods (VECTEXT1.EXE) Raster Graphics Named Raster Operations (ROPs) Bitmaps Device-Dependent Bitmaps Device-Independent Bitmaps (DIBs) The CBitmap Class Transferring and Contorting Bitmaps Bitmap Resources Tacking Resources onto an Executable File Getting Image Resources out of an Executable File Sample Program: Exploring Bitmap Resources (BITMAP1) Summary Custom Control Development Window Classes Versus C++ Classes A Validating Edit Control The Clock Static Control Control Metrics Painting the Face Locating the Hands Painting the Hands Setting the Time Pitfalls of Subclassing Standard Controls The Hyperlink Control Implementation Strategy Font Processing Painting the Window Controlling the Cursor Mouse Input Keyboard Input Launching the Link Advanced Custom Control Topics Subclassing Limitations Notifications Using the Resource Editor with Custom Classes Summary The MFC Application Object, Message Routing, and Idle Processing The MFC Application Object CWinApp and Application Lifetime The CWinApp Data Members The CWinApp Member Functions Application-Specific Initialization Functionality in InitInstance OLE Container Support 3D Look for Windows NT 3.5x Registry Usage Most Recently Used Files List SDI and MDI Document/View Main Frame Window Creation Automation Support Rich Edit Control Support Command-Line Handling Message Routing, Message Maps, and Message Categories Message Routing PreTranslateMessage Message Maps Idle Processing OnIdle Idle Processing for Dialogs The Splash Screen Component Summary Documents, Views, and Applications That Use Them The Document/View Architecture Documents, Frames, and Views Document Templates Creating New Documents Opening New Files Single Versus Multiple Document Templates Views The CView Class The CScrollView Class The CFormView Class The Database View Classes The Control Views Changing Views in an SDI Using the MDI Summary Extending the User Interface Responding to the User Keyboard Messaging Handling Keyboard Messages Mouse Messaging Handling Mouse Messages User Interfaces and AppWizard Extending Menus Obtaining Menus and Pop-up Menus Adding Menu Items Using Floating Pop-up Menus Putting Control Bars to Use Using Toolbars and Rebars Using Status Bars Showing and Hiding Control Bars Supporting ToolTips Updating the User Interface Property Sheets and Wizards MFCs Support for Property Sheets and Wizards Creating a Simple Wizard Splitting a View Summary Printing Printing Fundamentals Printing with MFC Printing in the View The PrintInfo Object Printing Menu Commands Printing and GDI Mapping Modes WYSIWYG Printing Application Resources The Application Class The View Class Pagination Printing with a Known Page Count Printing with an Unknown Page Count Printing Page Numbers Stopping and Aborting Print Jobs Halting a Print Job in OnPrepareDC() Halting a Print Job in OnPrint() Summary MFC and COM Programming COM A Little History Interfaces, Objects, and Methods Some Terminology A Real-World View The IUnknown Interface Servers, Clients, and Classes The COM Runtime Environment Defining the Class Factory How Are COM Objects Reused? Marshaling and Threading Marshaling Threading COM, OLE, and Automation IDispatch Automation Servers, Objects, and Controllers Supporting Both IDispatch and IUnknown Persisting COM Data Structured Storage Identifying COM Data (Monikers) Transferring Data Uniform Data Transfer Connectable Objects DCOM Object Creation Invoking Methods Security Issues Some Important Information BSTR SAFEARRAY HRESULT VARIANT Further Reading Summary COM and MFC Understanding the Afx Global Functions Application Lifetime Control Client Control Management Connection Point Management Control Registration Exceptions Initialization Licensing Type Information Reviewing the OLE Macros Class Factories Client/Container Common Commands Control Property Persistence Dialog Data Exchange Dispatch Maps Event Maps Property Page Data Mapping Property Pages Type Library Access MFC and the OLE Class Categories Active Document Automation Common Dialogs for OLE Container Control Drag and Drop (Universal Data Transfer) Document Servers Support Summary MFC OLE Servers Document Servers Server Types Full Server Active Document Container/Server Mini-Server Document Server Design OLE Documents Active Documents Building an Active Document Server Persistence Rendering the View Automation Servers IDispatch GetIDsOfNames GetTypeInfo GetTypeInfoCount Invoke IDispatch-Derived Interface in ODL Calling Methods Through IDispatch GetIDsOfNames Type Information Methods Invoke Dispinterfaces Differ from Interfaces Calling Methods Through IDispatch Dual Interfaces The Variant An Automation Server Using MFC Server Type Declaring and Defining Additional Dispinterfaces Adding Methods and Properties Summary MFC OLE Clients IDispatch and Its Place in Automation Interface Definition for Automation Servers IDL and ATL ODL and MFC Dual Interfaces MFC and Automation Controller Connecting to a Server Server Review Building a Controller Using COleDispatchDriver Using #import Remote Automation Summary MFC ActiveX Controls Development Strategy MFC ATL MFC and ATL Control Development Two Faces of a Control Runtime Design Time Subclassing a Control MFC ATL Component Categories ICatRegister ICatInformation Methods, Properties, and Events Properties Methods Events Property Pages Property Pages in ATL Property Pages in MFC Component Registration Registration Scripts Registration and Controls COM Object Subkeys Building an MFC Control Interface Definition A Quick ATL Port Summary MFC ActiveX Control Containers Active Document Container Storage Site Objects In-Place Activation Document Extensions Building the Simplest Active Document Container OLE Controls Adding Containment to an Existing Project ActiveX Container Control Containment and Events Summary Using MFC and ATL What Is ATL and Why Is It Important for Programming in MFC? Helpful ATL COM Support for MFC Applications COM Pointers the Smart Way Other ATL COM Support Advanced ATL Support for MFC Applications Begin with Your MFC Application Add the Required ATL Support Summary Scripting Your MFC Application Scripting Basics Scripting Interfaces Dual Interfaces Object Models Implementing a Scripted Application Object Implementation Summary MFC Database Programming MFC Database Processing Relational Database Concepts Tables Columns Records Cursors Transactions Storing and Retrieving Data SELECT INSERT DELETE UPDATE Database Communication Mechanisms ODBC DAO Which Methodology Should I Use? ODBC/MFC CDatabase CRecordset DAO CDaoWorkspace CDaoDatabase CDaoRecordset CDaoTableDef CDaoQueryDef Summary Advanced Database Support The COM Approach OLE DB ADO Which One Should I Use? OLE DB Consumers Using the ATL Wrapper Classes CDataSource CSession Accessors Rowsets Accessing Datasource Data Using the ADO C++ Interfaces ADOConnection ADORecordset ADOCommand ADOField ADOProperty ADOParameter ADOError Summary MFC Utility Classes Strings and Collections Strings and String Classes Inside the CString Class Practical CString Usage CString Summary Collections Inside Collection Classes Templated Collections The UNL_MultiEd Application Overview An STL Approach Summary File I/O and MFC The CFile Class Processing Files with CFile Inside the CFile Class The CStdioFile Class The CMemFile Class The CSharedFile Class The CFileDialog Class The User-Defined CFileDialog Class Practical Usage of CFile and CFileDialog Opening a File Reading Data from a File A Classical Approach What Are Streams? Summary Exceptions What Are They Good For? Types of Exceptions Structured Exception Handlers Nesting of Structured Exception Handlers Raising Structured Exceptions Cleaning Up After an Exception C++ Exceptions Defining a C++ Exception Class MFC Exceptions MFC CException-Derived Classes CMemoryException CNotSupportedException CArchiveException CFileException CResourceException COleException CDbException COleDispatchException CUserException CDaoException CInternetException Deriving Your Own MFC-Compliant Exception Objects Deleting Exceptions Using MFC Exception Macros Mixing Exceptions Summary MFC and the Web MFC and DHTML DHTML, MSIE, and the Internet Using the Internet Explorer Web ActiveX Control Internet Explorer ActiveX Control Basics CHtmlView CHtmlView and the Document/View Relationship CHtmlView and COM Using the Internet Explorer ActiveX Control in a Dialog Box Using DHTML The DHTML Object Model The Document Object Other DHTML Objects Collection Objects DHTML COM Interfaces Obtaining the Document DHTML Interface Obtaining the DHTML Collections Interfaces Using the DHTML Interface The DHTML Element Interface Methods Document Navigation Summary CSocket Programming How Do Network Communications Work? Sockets, Ports, and Addresses Winsock and MFC Initializing the Winsock Environment Creating a Socket Making a Connection Sending and Receiving Messages Closing the Connection Socket Events Controlling Event Triggering Detecting Errors Getting Socket Information Sockets and I/O Serialization Building a Networked Application Creating the Application Shell Window Layout and Startup Functionality Inheriting from the CAsyncSocket Class Connecting the Application Sending and Receiving Ending the Connection Summary WinInet Programming Web Application Protocols and WinInet Hypertext Transfer Protocol File Transfer Protocol Gopher Protocol WinInet API and MFC Internet Session Basics CInternetSession CInternetFile CInternetException CInternetConnection Building a Simple WinInet Application Application-Level Functionality HTTP Classes FTP Classes Gopher Classes Building a Simple FTP Client Summary ISAPI Extensions The Foundation From There to Here From GET to POST Adding Some Form Elements Change the Form Change the Parse Map Declare and Use the Handler Function Add a Radio Button Other Form Input Elements Change the Form Change the Parse Map Change the Handler Function Summary MAPI and MFC The Messaging Application Programming Interface Client Applications Two Higher-Level Alternatives: Simple MAPI and CMC Simple MAPI Common Messaging Calls The MapiMessage Structure The MapiFileDesc Structure Limited MAPI Functionality in MFC The CDocument Connection Doing MAPI the MFC Way The CDocument::OnFileSendMail() Method Sample Program: MAPI1.EXE Summary TAPE and MFC Overview Assisted Telephony Basic Telephony Service Supplemental Telephony Service Extended Telephony Service History of TAPI TAPI 1.3 TAPI 1.4 TAPI 1.5 TAPI 2 TAPI 2.1 TAPI 2.2 TAPI 3 Using Assisted Telephony Using Basic Telephony Configuring TAPI Connecting with TAPI Transmitting Data with TAPI Disconnection with TAPI Terminating a TAPI Session Summary MFC and Graphics Programming MFC and OpenGL What Is OpenGL? Graphics Boot Camp Core Terms and Key Concepts The Basic Mathematics of Graphics Programming OpenGL Boot Camp OpenGL Datatypes OpenGL Function Naming Conventions OpenGL Render Function Scoping The OpenGL Matrix Stack The OpenGL Rendering Context Minimal OpenGL Program and a Custom View Creating Your Basic MFC Application Adding the Custom OpenGL Base Class Integrate the Custom View Class into Your Application Build Your 3D Scene Add the OpenGL Libraries to Your Project抯 Link List 2D and 3D Models Basic Model Development Model Transformations Display Lists Light The Basics of Light in OpenGL Types of Light Object Material Properties Texture Mapping OpenGL Images and Windows Device-Independent Bitmaps Applying Texture Special Effects Blending Fog Summary MFC and DirectX What Is DirectX? DirectX in a Nutshell DirectX Components DirectX Basics Differences in COM Programming Style and DirectX DirectX Component Startup Sequence DirectDraw Basics Initializing DirectDraw DirectDraw and Palettes DirectDraw Surfaces DirectDraw Page Flipping DirectDraw from a Window Using DirectDraw in Practice Surfaces and Bitmaps Windowed Rendering Error Handling DirectDraw Shutdown Summary Multimedia and MFC Multimedia Fundamentals The DirectX Media Player Control Media Formats Supported by the Media Player Control Inside the Media Player Control The CMediaPlayer Class Using the Media Player Control Playing Sound Working with Waves Revisiting DirectSound Using DirectSound to Play Sound Effects Summary Advanced MFC Inside the Registry Registry Usage Configuration Services Information State User Preferences The Registry Structure Programmatic Control of the Registry The Registry API The Registry Sample Application The Registry Key Editor Dialog Creating a New Key Deleting a Key Deleting a Name/Value Pair A Word About Wrapping the Registry Functions A Word About Installation Summary Writing and Using DLLs Advantages of DLLs Code Elimination Modularity and Packaging Extensibility Inside an AFX DLL Exporting Classes, Functions, and Data The Big Deal About Exports Mangled Names Exporting Classes What Goes Around, Comes Around Exporting Explicit Functions Exporting Data Exporting MFC Data Exporting the Destructor Export Toolkit include Files What to Export Other DLL Issues AfxLoadLibrary and AfxFreeLibrary Designing for Extensibility and Reuse Resource Location Multiple Module Definition Files Load Addresses and the Linker Summary Creating Custom Wizards Property Sheets and Property Pages The CPropertySheet and CPropertyPage Classes The Wizard Walk and the Property Sheet Connection Creating a Wizard Setting the Wizard Mode Enabling the Wizard Buttons Displaying the Wizard Wizard Notification Messages Sample Program: Off to See the Wizard (WIZARD1.EXE) Creating Wizard Page Dialog Template Resources Create a Dialog Class for Each Dialog Resource Exploring the Welcome Page: Class CIntroPage Exploring the About You Page: Class CPage1 Updating Wizard Information for CPage2 and CPage3 Creating and Displaying the Wizard Summary Index

  

MFC Visual C++6编程技术内幕

新媒体

青少年编程科技专题讲座—编
小至日常糊口人人离不开的微信、办公软件、订票软件,大到它们侵入并倾覆了曾经成立起来的行业架构,如马云的无人超市

机器及编程技术pdf 4页
除了工业机械人程度不竭提高之外,各类用于非制制业的先辈机械人系统也有了 长脚的进展。出于拟 人化的考虑,常将机械

MFC Visual C++6编程技术内幕
Introduction Foreword About the Author Core MFC The MFC Architecture A Brief History of MFC The MFC Class Hierarchy CObject CCmdTarget CWinThread CWinApp CWnd CF

编程之路(各种技术的路线图
团队所需的人员职位形成包罗:(1)系统设想工程师 (2)硬件工程师 (3)底层驱动工程师 (4)Linux系统工程师 (5)使用