freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

mfc基礎(chǔ)介紹-在線瀏覽

2024-09-11 17:20本頁面
  

【正文】 硬盤上至少要留有 5MB的剩余空間。為了這么小的程序來建立一個(gè)項(xiàng)目可能有點(diǎn)小題大作,但是,在任何實(shí)際的程序中,項(xiàng)目的概念是非常有用的。在這個(gè)簡單的例子中,文件 是唯一的源文件,但是在一個(gè)大型的應(yīng)用程序中,為了便于管理和維護(hù),你可以會(huì)有許多個(gè)不同的源文件。 2022/8/20 27 接器選項(xiàng)。 : 一個(gè)控制臺(tái)應(yīng)用程序,或一個(gè)窗口應(yīng)用程序等等?,F(xiàn)在,我們來建立一個(gè)簡單的項(xiàng)目,并用它來編譯 。在 “ Projects”標(biāo)簽中,加單擊 “ Win32 Application”。在 “ Project name”中輸入 “ hello”作為項(xiàng)目名稱。單擊 “ OK”按鈕。如果你退出,以后再重新打開該項(xiàng)目,則可選擇 。 InfoView 標(biāo)簽仍然在,又新出現(xiàn)了 ClassView 和 FileView 標(biāo)簽。 2022/8/20 29 現(xiàn)在可以輸入程序的代碼了。在出現(xiàn)的對(duì)話框中,選擇 “ Files”標(biāo)簽和 “ Text File”。輸入代碼時(shí),你會(huì)發(fā)現(xiàn)編輯器會(huì)自動(dòng)把不同類型的文本變成不同的顏色,如注釋、關(guān)鍵字字符串等的顏色都不同。 輸入完代碼后,選擇 “ File”菜單中的 “ Save”選項(xiàng)來保存。 2022/8/20 30 現(xiàn)在選擇在 “ Project”菜單中選擇 “ Add To Project”選項(xiàng),再選 “ Files...”。在本例子中,選擇 文件。你會(huì)看到名為 的文件。任何時(shí)候你都可以使用 FileView 來刪除項(xiàng)目的文件,你只要單擊該文件,然后按鍵盤上的 delete 鍵。 如果你忽略了這一步,則項(xiàng)目在連接時(shí)會(huì)出錯(cuò),而出錯(cuò)信息對(duì)你毫無幫助。 在出現(xiàn)的對(duì)話框中選擇“ General”標(biāo)簽。 然后關(guān)閉對(duì)話框。在“ Build”菜單中,你會(huì)發(fā)現(xiàn)有三個(gè)不同的編譯選項(xiàng): 1. Compile (只有當(dāng)含有 的窗口處于激活狀態(tài)時(shí)才可 ) 2. Build 3. Rebuild All 2022/8/20 32 第一個(gè)選項(xiàng)只是編譯源文件并形成它們的目標(biāo)文件。第二個(gè)選項(xiàng)編譯自上次編譯后所修改的所有源文件,并連接形成可執(zhí)行文件。 我們可以選擇 “ Build ”來編譯和連接代碼。該子目錄的文件都是可以再產(chǎn)生的,所以你可以任意刪除它們。這時(shí)編輯器會(huì)把你帶到出錯(cuò)的位置處。如果你看到大量的連接錯(cuò)誤,則可能你在建立項(xiàng)目對(duì)話框中所指定的項(xiàng)目類型不對(duì)。 為了執(zhí)行該程序,你可選則 “ Build”菜單中的“ Execute ”選項(xiàng)。該窗口本身帶有:標(biāo)題欄、尺寸縮放區(qū)、最大和最小按鈕等等。 請(qǐng)注意,該程序是完整的。你只使用了很少的代碼就完成了一個(gè)完整的 Window 應(yīng)用程序。所有的細(xì)節(jié)問題都有 MFC來處理。你將來會(huì)用類似的步驟來建立的應(yīng)用程序。 在下一節(jié)中,我們將仔細(xì)研究該程序,你會(huì)更完整的理解它的結(jié)構(gòu)。我們將先介紹 MFC, 然后在介紹如何用 MFC 來建立應(yīng)用程序。 MFC 是在整個(gè) Windows 家族中都是兼容的,也就是說,無論是 、 Windows95 還是 Windows NT,所使用的 MFC 是兼容的。 MFC也會(huì)得到擴(kuò)展,添加新的特性 ,變得更加容易建立應(yīng)用程序。因此用 MFC 編寫的程序要比用 C語言編寫的程序小得多。必要時(shí),你也可以直接調(diào)用標(biāo)準(zhǔn) C 函數(shù),因?yàn)? MFC 不修改也不隱藏 Windows 程序的基本結(jié)構(gòu)。 MFC 中包含了上成千上萬行正確、優(yōu)化和功能強(qiáng)大的 Windows 代碼。從這點(diǎn)上講, MFC 極大地加快了你的程序開發(fā)速度。例如,版本 約 200個(gè)不同的類。事實(shí)上,你可能 只需要使用其中的十多個(gè) MFC 中的不同類就可以建立一個(gè)非常漂亮的程序 。下面的列表給出了部分類: ? CObject ? CCmdTarget ? CWinThread ? CWinApp ? CWnd ? CFrameWnd ? CDialog ? CView ? CStatic ? CButton ? CListBox ? CComboBox ? CEdit ? CScrollBar 2022/8/20 39 在上面的列表中,有幾點(diǎn)需要注意。該類包含有大部分 MFC類所通用的數(shù)據(jù)成員和成員函數(shù)。 CWinApp 類是在你建立應(yīng)用程序是要用到的,并且任何程序中都只用一次。 CFrameWnd 類是從 CWnd 繼承來的,并實(shí)現(xiàn)了標(biāo)準(zhǔn)的框架應(yīng)用程序。 CView 是用于讓用戶通過窗口來訪問文檔。一旦你理解了這些,你也就能更好的理解 MFC 了。 2022/8/20 40 為了建立一個(gè) MFC應(yīng)用程序,你既要會(huì)直接使用這些類,而通常你需要從這些類中繼承新的類。前面的簡單例子中已經(jīng)看到了這種繼承過程,下面會(huì)詳細(xì)介紹。 2022/8/20 41 設(shè)計(jì)一個(gè)程序 在討論代碼本身之前,我們需要花些工夫來簡單介紹一下 MFC 中程序設(shè)計(jì)的過程。這當(dāng)然是很簡單的,但仍需要一些考慮。 然后需要實(shí)際把 “ hello world”放到窗口上。該應(yīng)用程序?qū)ο筇幚硭械牡图?jí)事件。 3. 一個(gè) 靜態(tài)文本對(duì)象 ,用來顯示 “ hello world”。第三個(gè)對(duì)象是針對(duì)該應(yīng)用程序的。 一旦你完成了界面的設(shè)計(jì),并決定實(shí)現(xiàn)該界面所需要的控制,你就需要編寫代碼來在屏幕上建立這些控制。在 “ hello world”應(yīng)用程序中,只有一個(gè)控制。 復(fù)雜的程序可能在其主窗口和對(duì)話框中需要上百個(gè)控制。這里所介紹的是用 C++ 代碼方式來建立控制。因此,在通常情況下要使用資源文件的圖形編輯器來建立控制。 2022/8/20 43 理解 “ hello world”的代碼 下面列出了你在上一講中已經(jīng)輸入、編譯和運(yùn)行的 “ hello world”程序的代碼。我們來一行行地研究它,你會(huì)更好的理解 MFC 建立應(yīng)用程序的方式。 1 // 2 include 3 // Declare the application class 4 class CHelloApp : public CWinApp 5 { 6 public: 7 virtual BOOL InitInstance()。 2022/8/20 44 9 // Create an instance of the application class 10 CHelloApp HelloApp。 15 public: 16 CHelloWindow()。 18 // The InitInstance function is called each 19 // time the application first executes. 20 BOOL CHelloApp::InitInstance() 21 { 22 m_pMainWnd = new CHelloWindow()。 24 m_pMainWndUpdateWindow()。 26 } 2022/8/20 45 27 // The constructor for the window class 28 CHelloWindow::CHelloWindow() 29 { 30 // Create the window itself 31 Create(NULL, 32 Hello World!, 33 WS_OVERLAPPEDWINDOW, 34 CRect(0,0,200,200))。 37 csCreate(hello world, 38 WS_CHILD|WS_VISIBLE|SS_CENTER, 39 CRect(50,80,150,150), 40 this)。該程序由六小部分組成,每一部分都起到很重要的作用。該頭文件包含有 MFC 中所使用的所有的類型、類、函數(shù)和變量。 第 3 至 8 行從 MFC 說明的標(biāo)準(zhǔn)應(yīng)用程序類 CWinApp 繼承出了新的應(yīng)用程序類 CHelloApp。 InitInstance 是一個(gè)應(yīng)用程序開始執(zhí)行時(shí)要調(diào)用的可重載函數(shù)。該實(shí)例是很重要的,因?yàn)樗绊懙匠绦虻膱?zhí)行。該構(gòu)造函數(shù)會(huì)自動(dòng)調(diào)用在 18至 26行定義的 InitInstance 函數(shù)。 CHelloWindow 是作為應(yīng)用程序在屏幕上的窗口。 第 18至 26行實(shí)現(xiàn)了 InitInstance 函數(shù)。它也會(huì)把新窗口放到屏幕上。該構(gòu)造函數(shù)實(shí)際是建立了窗口,然后在其中建立一個(gè)靜態(tài)文本控制。然而我們從上一講在執(zhí)行中知道它也處理了事件。所有這些操作都隱藏在主應(yīng)用程序類 CWinApp 中,并且我們不必為它的事件處理而操心,它都是自動(dòng)執(zhí)行、在 MFC 中不可見的。你可能不能馬上全都理解得很好 : 但你最好先讀完它以獲得第一印象。 2022/8/20 49 程序?qū)ο? 用 MFC 建立的每個(gè)應(yīng)用程序都要包括一個(gè)單一從 CWinApp 類繼承來的應(yīng)用程序?qū)ο蟆? 從 CWinApp 類繼承的對(duì)象主要是處理應(yīng)用程序的初始化,同時(shí)也處理應(yīng)用程序主事件循環(huán)。在上面的程序中,我們只重載了一個(gè) CWinApp 中的虛擬函數(shù) InitInstance。因?yàn)? Windows 允許同一個(gè)應(yīng)用程序的多個(gè)事例在同時(shí)執(zhí)行,因此 MFC 把初始化過程分成兩部分并使用兩個(gè)函數(shù) InitApplication 和 InitInstance 來處理它。當(dāng)每次調(diào)用應(yīng)用程序時(shí)都會(huì)調(diào)用一個(gè)新的事例。它包含一個(gè)新的 InitInstance 函數(shù),是從 CWinApp 中已存在的函數(shù) (不做任何事情 )重載來的 : 3 // Declare the application class 4 class CHelloApp : public CWinApp 5 { 6 public: 7 virtual BOOL InitInstance()。 2022/8/20 51 在重載的 InitInstance 函數(shù)內(nèi)部,第 18至 26行,程序使用 CHelloApp 的數(shù)據(jù)成員 m_pMainWnd 來建立并顯示窗口 : 18 // The InitInstance function is called each 19 // time the application first executes. 20 BOOL CHelloApp::InitInstance() 21 { 22 m_pMainWnd = new CHelloWindow()。 24 m_pMainWndUpdateWindow()。 26 } InitInstance 函數(shù)返回 TRUE 表示初始化已成功的完成。在下一節(jié)中我們將會(huì)看到窗口初始化的詳細(xì)過程。例如, m_pszAppName、 m_lpCmdLine 和 m_nCmdShow 都包含有適當(dāng)?shù)某跏蓟?。我們將使用這些變量中的一個(gè)。 2) 對(duì)話框窗口,它不能改變大小。 在下面的代碼中,從 CFrameWnd 中繼承了一個(gè)新的類 CHelloWindow: 11 // Declare the main window class 12 class CHelloWindow : public CFrameWnd 13 { 14 CStatic* cs。 17 }。你多建立的每個(gè)應(yīng)用程序在主窗口中都會(huì)有唯一的一組控制。典型情況下,該類會(huì)包含有一個(gè)析構(gòu)函數(shù)以便在窗口關(guān)閉時(shí)來刪除他們。在第四講中,我們將會(huì)看到繼承窗口類也會(huì)說明一個(gè)消息處理函數(shù)來處理這些控制在響應(yīng)用戶事件所產(chǎn)生的消息。因此, CHelloApp 應(yīng)用程序類定義了一個(gè)名為 m_pMainWnd 成員變量來指向主窗口。我們的 CHelloWindow 對(duì)象是在第 22行建立的 : 18 // The InitInstance function is called each 19 // time the application first executes. 20 BOOL CHelloApp::InitInstance() 21 { 22 m_pMainWnd = new CHelloWindow()。 24 m_pMainWndUpdateWindow()。 26 } 2022/8/20 56 只建立一個(gè)簡單的框架窗口是不夠的。首先,代碼必須要調(diào)用窗口的 ShowWindow 函數(shù)以使窗口出現(xiàn)在屏幕上 (第 23行 )。 你可能奇怪, ShowWindow 和 UpdateWindow 函數(shù)是在哪兒定義的。但是 CFrameWnd 中并不包含有這些成員函數(shù)。你可以查看 MFC 文檔中的 CWnd, 你會(huì)發(fā)現(xiàn)它包含有 200多個(gè)不同的成員函數(shù)。 2022/8/20 57 現(xiàn)在讓我們花幾分鐘來看一下 MFC 幫助文件中的 CWnd::ShowWindow 函數(shù)。 找到后,你會(huì)
點(diǎn)擊復(fù)制文檔內(nèi)容
研究報(bào)告相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1