日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 综合教程 >内容正文

综合教程

MFC编程基础

發(fā)布時間:2023/12/15 综合教程 33 生活家
生活随笔 收集整理的這篇文章主要介紹了 MFC编程基础 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

MFC編程基礎

一、MFC類庫概述

MFC(Microsoft Foundation class)微軟基本類(庫),有時候也有人叫做微軟基本類庫,因為它確實是一個類庫(物理上講),而且非常龐大;它也是一個面向?qū)ο蟮膽贸绦蚣軜嫞ㄟ壿嬌希绦騿T利用它可以很方便搭建應用程序框架。MFC結合了面向?qū)ο蟮木幊碳夹g和WINDOWS消息驅(qū)動的編程技術,并封裝了WIN32API,其設計好處:消除了WIN32API的復雜性,封裝了WIN32API,統(tǒng)一了程序的概念,而且可擴展。MFC由AFX項目小組進化而來,還有一些AFX代碼,如AfxMessageBox,AFxGetApp等。編寫MFC類庫的主要目的是為了軟件的復用。

查閱MSDN,簡單介紹CString類。

三、MFC基礎類簡介

MFC框架圖(太大,略,見MSDN)

1. 根類:CObject

是大多數(shù)MFC中大多數(shù)類和用戶自定義類的根類,為程序員提供了進入所編寫程序的許多公用操作如:對象的建立和刪除,序列化支持,對象的診斷輸出等。

2. 應用程序結構類:

命令發(fā)送類(CCmdTarget):該類是CObject類的子類,是MFC中具有消息映射屬性類的基類。當對象接收到消息以后,消息映射調(diào)用相關聯(lián)的函數(shù)對消息進行處理。從他派生的類有:窗口類(CWnd)、應用程序類(CWinApp)、文檔類(CDoc)、視圖類(CView)以及框架窗口類(CFrameWnd)。

窗口應用程序類(CWinApp):每個應用程序只有一個應用程序?qū)ο螅谶\行程序中該對象和其他對象相互協(xié)調(diào)。

文檔/視圖類:文檔對象由文檔模板創(chuàng)建,管理應用程序的數(shù)據(jù)。視窗對象表示一個窗口的客戶區(qū),顯示文檔數(shù)據(jù)并允許用戶與之交互。

文檔模板類(CDocTemplate):文檔模板協(xié)調(diào)文檔、視圖和框架窗口的創(chuàng)建。

線程支持類(CWinThread):所有線程的基類,可直接使用。應用程序類(CWinApp)就是由他派生來的。

3. 可視對象類

窗口類(CWnd):提供了MFC所有窗口類的基本功能。創(chuàng)建窗口要分兩部分進行:首先引入構造函數(shù),構造一個CWnd對象;調(diào)用Create函數(shù)建立Windows窗口并將它連接到CWnd對象上。由他派生的子類有:框架窗口類:SDI應用程序主框架的基類、多文檔框架窗口類(CMDIFrameWnd):MDI應用程序主框架的基類、多文檔子對象類(CMDIChildWnd):MDI應用程序框架的基類。

視圖類(CView):管理框架窗口客戶區(qū)和顯示文檔數(shù)據(jù)并接收輸入的客戶區(qū)。由他派生的子類有:CScrollView類:具有滾動功能的視圖類、 CFormView類 :在對話資源中定義的滾動視圖類、CEditView 類:具有文本編輯,查找,替換和滾動功能的視圖類、CListView類:包含Windows列表控件的視圖類、 CTreeView類:包含樹形察看控件的視圖類。

菜單類(CMenu):Cobject的子類,用于管理菜單。

對話框類(CDialog):因為對話框是一個特殊的窗口,所以該類是從CWnd的派生類。由他派生出來的子類有:CFileDialog類:提供打開或保存一個文件所使用的對話框;CColorDialog 類:提供選擇顏色的標準對話框;CFontDialog類:同樣,它是用來提供選擇一種字體的標準對話框;CPrintDialog 類:提供打印一個文件的標準對話框;CFindReplaceDialog類:提供查找或替換的標準對話框;

4. 控件類

包括如下類,使用這些類可建立靜態(tài)文本、命令按鈕、位圖按鈕、列表框等。

CStatic類:靜態(tài)文本空間窗口,用于標注、分隔對話框和窗口中的其他控件;

CButton類:按鈕空間窗口,為對話框或窗口中的按鈕、檢查框或者單選框提供接口;

CEdit類:文本編輯對話窗口,用于接受用戶的文本輸入;

CScrollBar類:滾動條控件窗口,提供控制條的功能,用于對話框或窗口中的一個控件,通過它實現(xiàn)在一定范圍內(nèi)定位;

CRichEditCtrl類:多信息編輯控件;

CProgressCtrl類:進程指示控件窗口;

CCombBox類:組合框,由一個文本編輯控件和一個列表框組成;

CBitmapButton類:帶有位圖而非文字標題的按鈕;

CSpinButtonCtrl類:帶有雙箭頭按鈕,點擊某個箭頭用于增大或減小某個值;

CAnimateCtrl類:動畫顯示,用于顯示簡單的video圖像;

CToolTip類:一個小的彈出式窗口,用于提示應用程序中某個工具的作用;

CHotKeyCtrl類:使用戶創(chuàng)建一熱鍵,迅速地執(zhí)行某項操作;

CTreeCtrl類:樹形察看控件;

CListCtrl類:管理由圖標和標簽組成的列表項;

CHeaderCtrl類:顯示列標題或標簽。

5. 控件條類

指的是連接在主窗口框架頂部或底部的小窗口。他有以下相關的派生類:

CStatusBar類:狀態(tài)條控件窗口的基類;

CToolBar類:包含非基于HWND的位圖式命令按鈕的工具條控件窗口;

CDialogBar類:控制條形式的非模式對話框。

6. 繪圖工具類CDdiObject

包括一下派生類:

CBitmap類:封裝一個GDI位圖,提供操作位圖的接口;

CBrush類:封裝一個GDI畫刷,可被選擇為設備描述表的當前畫刷;

CFont類:封裝一個GDI字體,可被設備描述表的當前字體;

CPalate類:封裝一個GDI調(diào)色板,可被設備描述表的當前調(diào)色表;

CPen類:封裝一個GDI畫筆,可被設備描述表的當前畫筆;

7. 設備情景對象類CDC

是Cobject類的子類,和它的派生類支持設備情景對象。它的子類有:

CPaintDC類:設備情景對象類;

CClientDC類:窗口客戶區(qū)設備情景對象類,如響應鼠標點擊進行繪圖等;

CWindowsDC類:整個窗口的設備情景對象類;

CMetaFileDC類:元文件設備情景對象類。

8. 數(shù)據(jù)類型類

CString類:字符串類;

CTime類:存放絕對日期時間類;

COleDateTime類:封裝OLE自動化中使用的DATE數(shù)據(jù)類型,包含日期和時間;

CPoint類:存放坐標(x,y);

CSize類:存放距離或者相對位置;

CRect類:存放矩形區(qū)域的坐標,類似與windows的RECT;

9. 通用類

文件輸入/輸出類:CFile類和CArchive類

CFile類:提供訪問磁盤二進制文件的接口;

CMemFile類:提供訪問內(nèi)存文件的接口;

CStudioFile類:提供訪問緩存磁盤文件的接口;

CArchive類:與CFile類一起通過序列化實現(xiàn)對象的永久存儲;

10. 模板集合類

CArray類:提供任意的類型數(shù)組的模板類;

CList類:任意類型的列表模板類;

CMap類:映射任意關系類型的模板類;

CTypedPtrList類:負責將對象指針存入列表中;

CTypedPtrArray類:負責將對象指針存入數(shù)組中;

11. 異常類

是所有異常子類的基類。派生類有:

CArchiveException類:表示文檔序列化異常;

CFileException類:有關文件的異常;

CMemException類:內(nèi)存不足產(chǎn)生的異常;

CNotSupportedException類:使用不支持特性產(chǎn)生的異常;

CUseException類:停止用戶初始化操作的異常;

COleException類:表示于OLE有關的異常;

12. 調(diào)試支持類

CDumpContext類:提供診斷轉(zhuǎn)儲(diagnostic dump)目標;

CMemoryState類:表示內(nèi)存的使用狀態(tài)。

13. ODBC數(shù)據(jù)庫類

包括以下子類:

CDatabase類:封裝與數(shù)據(jù)源的鏈接,通過此鏈接應用程序可以在數(shù)據(jù)源上進行操作;

CRecordSet類:封裝一組從數(shù)據(jù)源選出的記錄集;

CRecordView類:提供直接鏈接記錄集對象的格式視圖;

14. OLE

九個類組成層次結構分為三類

a、 OLE容器類

COleDocument類:用于實現(xiàn)復合文檔,是容器文檔的基類;

COleItem類:文檔項的基類;

COleException類:表示與OLE操作有關的異常情況;

COleClientDoc類和COleClientItem類為支持OLE的客戶類。

b、 OLE服務器類

COleServerDoc類:服務器應用程序文檔類基類;

COleServerItem類:表示與COleServerDoc類的接口;

COleTemplateServer類:創(chuàng)建由OLE可視編輯服務器、自動化服務器和鏈接容器使用的文檔。

c、 ActiveX控件類

COleControlModule類:用于開發(fā)ActiveX控件模塊對象,提供成員函數(shù)來初始化ActiveX控件模塊;

COleControl類:用于開發(fā)ActiveX控件;

CConnectionPoint類:用于定義與其它ActiveX對象通信的接口類型。

MFC的這些類本質(zhì)上都是對Win32對象的封裝,很多Win32對象都有對應的MFC類與之對應。如:

Win32對象

MFC類

Win32對象

MFC類

HWND

CWnd

HBRUSH

CBrush

RECT

CRect

HPEN

CPen

POINT

CPoint

HFONT

CFont

SIZE

CSize

HBITMAP

CBitmap

可以使用FromHandle函數(shù)將一個Win32對象轉(zhuǎn)換成MFC類對象。如:

static CWnd* PASCAL CWnd ::FromHandle( HWND hWnd );

static CDC* PASCAL CDC ::FromHandle( HDC hDC );

static CBrush* PASCAL CBrush::FromHandle( HBRUSH hBrush );

static CFont* PASCAL CFont::FromHandle(HFONT hFont);

Windows資源

凡是提供給Windows應用程序運行時,所使用到的東西統(tǒng)稱為資源。包括加速鍵、位圖、光標、對話框、圖標、菜單、字符串等等。在VC編寫相關Windows應用程序的時候在資源文件(Resource File)中都要對他們進行編輯,定義。

以下對四種比較常用的資源添加、使用舉例說明:

1、 加速鍵資源:也叫快捷鍵。方便用戶進行比較常見的應用程序操作。應用程序在進入消息循環(huán)之前調(diào)用LoadAccelerator(hInstance,(LPCTSTR)strTablename)加載加速鍵表(簡單的進行翻譯:某組合鍵在該應用程序中代表什么含義。)TranslateAccelerator(msg.hwnd, hAccelTable, &msg)

其中的ID代表某一個菜單的資源ID號,Key代表用戶自定義的組合鍵:Ctrl+?,Alt+?等。

2、 字符串資源:應用程序所使用到的字符串標識符,如對話框標題,提示給用戶的文本信息等等。使用方法:在字符串表(String Table)中定義相應的字符串資源,可以使用程序員需要的任何序言,在需要用到的時候使用LoadString加載他們既可。

3、 菜單資源:應用程序提供給用戶主要功能的體現(xiàn),也是應用程序窗口的重要組成部分。程序設計者可以根據(jù)需要進行訂制。使用方法:使用VC界面Resouce File界面中Menu項,進行菜單編輯并添加菜單處理函數(shù)。

4、 圖標資源:代表應用程序的位圖,可以進行繪制,在窗口的注冊函數(shù)中進行加載。

5、 對話框資源:特殊的窗口,放置控件等基本元素,方便用戶和應用程序進行交互。使用方法:添加對話框,放置控件以及編寫相關控件功能處理函數(shù)。

總結

以上是生活随笔為你收集整理的MFC编程基础的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。