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

正文內(nèi)容

mfcc教程ppt課件(已修改)

2025-05-17 18:19 本頁(yè)面
 

【正文】 1 Windows編程機(jī)制( API) ? Windows是一個(gè)多進(jìn)程的圖形窗口操作系統(tǒng) ,Windows應(yīng)用程序與 DOS應(yīng)用程序有很大的區(qū)別 。DOS應(yīng)用程序采用順序執(zhí)行過(guò)程 , 而 Windows是一個(gè)基于事件的消息 ( Message) 驅(qū)動(dòng)系統(tǒng) 。 ? Windows應(yīng)用程序是按照 “ 事件 → 消息 → 處理 ”非順序的機(jī)制運(yùn)行 。 當(dāng)有某個(gè)事件 ( 如單擊鼠標(biāo) 、鍵盤(pán)輸入和執(zhí)行菜單命令等 ) 發(fā)生時(shí) , Windows會(huì)根據(jù)具體的事件產(chǎn)生對(duì)應(yīng)的消息 , 并發(fā)送到指定應(yīng)用程序的消息隊(duì)列;應(yīng)用程序從消息隊(duì)列中取出消息 , 并根據(jù)不同的消息進(jìn)行不同的處理 。 ? Windows API( Application Programming Interface) 是 Windows操作系統(tǒng)與應(yīng)用程序之間的標(biāo)準(zhǔn)接口 , 它提供了上千個(gè)標(biāo)準(zhǔn)函數(shù) 、 宏和數(shù)據(jù)結(jié)構(gòu)的定義 。 ? 在使用 Visual C++、 Visual Basic和 Delphi編程時(shí)都可以調(diào)用 Windows API函數(shù) , Windows應(yīng)用程序可通過(guò)調(diào)用標(biāo)準(zhǔn) Windows API函數(shù)使用系統(tǒng)提供的功能 。 ? Windows API函數(shù)定義在一些 DLL動(dòng)態(tài)鏈接庫(kù)中 ,其中最主要的 DLL 是 、 和 。 關(guān)于 API和 SDK ? 傳統(tǒng) SDK編程:程序員通過(guò)調(diào)用 API函數(shù) , 自己動(dòng)手 、 按部就班地實(shí)現(xiàn)程序各部分的功能 。SDK應(yīng)用程序的結(jié)構(gòu)比較清晰 , 但程序員必須編寫(xiě)所有的功能代碼 。 ? 利用 Visual C++編寫(xiě)一個(gè)類 SDK應(yīng)用程序:首先利用 Win32 Application向?qū)Ы⒁粋€(gè) Windows應(yīng)用程序框架 , 然后根據(jù)需要可以向程序項(xiàng)目中添加一些頭文件 、 實(shí)現(xiàn)源文件和資源文件 , 并編寫(xiě)具體的程序代碼 。 例 編寫(xiě)一個(gè)名為 Hello的 類 SDK應(yīng)用程序 , 當(dāng)單擊鼠標(biāo)時(shí)通過(guò)調(diào)用 API函數(shù) , 以彈出一個(gè)提示信息對(duì)話框 。 1. 執(zhí)行 “ File|New”菜單命令 , 在 New對(duì)話框的Project頁(yè)面中選擇 Win32 Application項(xiàng)目類型 , 輸入程序名 Hello。 在向?qū)У?1步選擇 “ A typital “Hello world!” application”項(xiàng) , 單擊 Finish按鈕 。 2. 在窗口函數(shù) WndProc()的消息處理分支 switchcase結(jié)構(gòu)中添加 WM_LBUTTONDOWN鼠標(biāo)單擊消息及其處理代碼: case WM_LBUTTONDOWN: MessageBox(NULL, You pressed the left button of mouse !,Message,NULL)。 break。 SDK應(yīng)用程序結(jié)構(gòu): ? 一個(gè)由 API函數(shù)構(gòu)造的 Windows程序的功能由三個(gè)部分組成: 入口函數(shù) 、 窗口函數(shù) 和 Windows系統(tǒng) 。 ? 每一個(gè)程序都有一個(gè)主函數(shù) , WinMain()函數(shù)就是 Windows程序的入口主函數(shù) 。 該函數(shù)的主要任務(wù)是完成一些初始化工作并維護(hù)一個(gè)消息循環(huán) 。當(dāng)消息循環(huán)結(jié)束后 , 就退出了 WinMain()函數(shù) ,也就退出了應(yīng)用程序 。 此外 , WinMain()函數(shù)還負(fù)責(zé)完成窗口的 注冊(cè) 、 創(chuàng)建 和 顯示 。 ? Windows程序以 窗口 的形式存在 , 在不同窗口之間傳遞消息是 Windows和應(yīng)用程序進(jìn)行交流的主要形式 。 程序具體功能由不同的窗口函數(shù)實(shí)現(xiàn) 。 句柄 ? 在 Windows中,用 句柄( Handle) 標(biāo)識(shí)應(yīng)用程序中不同的對(duì)象和同類對(duì)象中不同的實(shí)例,如一個(gè)具體的窗口、按鈕、輸出設(shè)備、畫(huà)筆和文件等。通過(guò)句柄可以獲得相應(yīng)的對(duì)象信息。常用的句柄類型有: HWND 、 HINSTANCE 、 HDC 、HCURSOR、 HICON、 HMENU等。 ? 句柄常作為 Windows消息和 API函數(shù)的參數(shù),在采用 API方法編寫(xiě) Windows應(yīng)用程序時(shí)要經(jīng)常使用句柄。而采用 MFC方法編寫(xiě) Windows應(yīng)用程序時(shí),由于對(duì)應(yīng)的 MFC類已對(duì)句柄進(jìn)行了封裝,大多數(shù)情況下不再需要訪問(wèn)句柄。 獲取 MFC類對(duì)象的句柄的兩種方法: ? 通過(guò)訪問(wèn)類的 public屬性成員變量 , 如類 CWnd的成員變量 m_hWnd就是一個(gè)窗口對(duì)象的句柄 。 ? 先定義一個(gè)句柄 , 然后調(diào)用 MFC類的成員函數(shù) Attach()將句柄與一個(gè) MFC類對(duì)象聯(lián)系在一起 , 此時(shí)的句柄就成為該 MFC類對(duì)象的句柄 。 在退出對(duì)象作用域之前 , 調(diào)用成員函數(shù) Detach()將句柄和對(duì)象進(jìn)行分離 。 如下所示: CWnd myWnd。 HWND hWnd。 (hWnd)。 . . . . . . ()。 ? 所謂 消息 就是用于描述某個(gè)事件發(fā)生的信息 , 而 事件 是對(duì)于 Windows的某種操作 。 ? 事件和消息密切相關(guān) , 事件是因 , 消息是果 , 事件產(chǎn)生消息 , 消息對(duì)應(yīng)事件 。 所謂消息的響應(yīng) , 其實(shí)質(zhì)就是事件的響應(yīng) 。 ? 消息驅(qū)動(dòng) 是 Windows應(yīng)用程序的核心 , 所有的外部響應(yīng) ( 如鍵盤(pán) 、 鼠標(biāo)和計(jì)時(shí)器等 ) 都被 Windows先攔截 , 轉(zhuǎn)換成消息后再發(fā)送到應(yīng)用程序中的目標(biāo)對(duì)象 , 應(yīng)用程序根據(jù)消息的具體內(nèi)容進(jìn)行處理 。 ? 消息不僅可由 Windows發(fā)出 , 它也可由應(yīng)用程序本身或其它程序產(chǎn)生 。 Windows為每一個(gè)應(yīng)用程序都維護(hù)一個(gè)或多個(gè) 消息隊(duì)列 , 發(fā)送到每個(gè)程序窗口的消息都排成一個(gè)隊(duì)列 。 事件和 消息 Windows消息 分為三種類型: ? 標(biāo)準(zhǔn) Windows 消息 :以 WM_ 前綴 ( 但 不 包 括WM_COMMAND) 開(kāi)始的消息 , 包括鼠標(biāo)消息 、 鍵盤(pán)消息和窗口消息 , 如 WM_MOVE 、 WM_PAINT等 。 ? 控件通知 ( Control Notification) 消息 :對(duì)控件操作引起的消息 , 是 控 件 和 子 窗 口 向 其 父 窗 口 發(fā) 出 的WM_COMMAND通知消息 。 例如 , 當(dāng)用戶修改了編輯控件中的文本后 , 編輯控件向其父窗口發(fā)送WM_COMMAND通知消息 。 ? 命令 ( Command) 消息 :由菜單項(xiàng) 、 工具欄按鈕 、 快捷鍵等用戶界面對(duì)象發(fā)出的 WM_COMMAND消息 。 命令消息與其它消息不同 , 它可被更廣泛的的對(duì)象如文檔 、 文檔模板 、 應(yīng)用程序?qū)ο?、 窗口和視圖等處理 。 typedef struct tagMSG { HWND hWnd。 // 目標(biāo)窗口句柄 UINT message。 // 消息標(biāo)識(shí) WPARAM wParam。 // 消息參數(shù) 1( 附加信息 , 16位 ) LPARAM lParam。 // 消息參數(shù) 2( 附加信息 , 32位 ) DWORD time。 // 消息發(fā)送時(shí)間 POINT pt。 // 消息發(fā)送時(shí)鼠標(biāo)的屏幕坐標(biāo) } MSG。 消息用 MSG結(jié)構(gòu)表示: 例 為程序 Hello添加鍵盤(pán)消息處理功能,判斷當(dāng)前按下的鍵是不是 A或 a鍵,并給出相應(yīng)的提示。 打開(kāi)程序項(xiàng)目 Hello, 在文件 數(shù) WndProc()的 switch消息處理分支中添加鍵盤(pán)消息的處理代碼: case WM_KEYDOWN: // 處理鍵盤(pán)消息 if(wParam==0x41) // A或 a鍵的虛鍵碼為 0x41H MessageBox(NULL, The key you pressed is A or a !,KEYDOWN,NULL)。 else MessageBox(NULL, The key you pressed is not A or a !,KEYDOWN,NULL)。 break。 利用 Windows API開(kāi)發(fā)程序的用戶有這樣的體會(huì) , 即使開(kāi)發(fā)一個(gè)簡(jiǎn)單的 Windows應(yīng)用程序也需要對(duì) Windows的編程原理有很深刻的認(rèn)識(shí) , 需要手工編寫(xiě)冗長(zhǎng)的代碼 。 由于程序的出錯(cuò)率是隨著代碼長(zhǎng)度的增加呈幾何級(jí)數(shù)增長(zhǎng)的 , 而且當(dāng)程序長(zhǎng)度逐漸膨脹時(shí) , 調(diào)試程序會(huì)變得越來(lái)越困難 。 因此 , 傳統(tǒng)的 Windows應(yīng)用程序設(shè)計(jì)需要程序員有極大的耐心和豐富的編程經(jīng)驗(yàn) 。 Visual C++捆綁了微軟的基礎(chǔ)類 MFC, 編程時(shí)我們就可以利用類的可重用性和可擴(kuò)充性 , 大大降低 Windows應(yīng)用程序設(shè)計(jì)的難度和工作量 。 2MFC的基本原理和使用方法 2節(jié)要點(diǎn) – MFC類 ( 對(duì)應(yīng)教材的第五章全部?jī)?nèi)容 ) – MFC應(yīng)用程序框架 – MFC消息管理 – MFC宏 一、 MFC概述(教材 1節(jié)) ? 類庫(kù)是一個(gè)可以在應(yīng)用程序中使用的相互關(guān)聯(lián)的C++類的集合 。 MFC作為一個(gè) Windows編程類庫(kù) , 它包含了 200多個(gè)類 , 封裝了 Windows的大部分編程對(duì)象以及與它們有關(guān)的操作 。 ? 雖然程序在功能上千差萬(wàn)別 , 但從本質(zhì)上看 , 都可以分為用戶界面設(shè)計(jì) 、 文件操作 、 數(shù)據(jù)庫(kù)訪問(wèn)及多媒體使用等幾部分 , 這些都可以通過(guò)一些類來(lái)實(shí)現(xiàn) 。 MFC提供了一個(gè)標(biāo)準(zhǔn)化的程序結(jié)構(gòu) , 使開(kāi)發(fā)人員不必從頭設(shè)計(jì)一個(gè) Windows應(yīng)用程序 。 ? MFC實(shí)際上是一個(gè)龐大的文件庫(kù) , 它由幾百個(gè)執(zhí)行文件和源代碼文件 ( 如 H文件 ) 組成 。 MFC類(對(duì)應(yīng)教材的第五章全部?jī)?nèi)容) 在 Microsoft推出 , Windows操作系統(tǒng)受到越來(lái)越多的人的青睞。因此當(dāng)時(shí)學(xué)習(xí)Windows程序設(shè)計(jì)便成為程序員的顯學(xué)。但是不久,開(kāi)發(fā)人員發(fā)現(xiàn)撰寫(xiě) Windows應(yīng)用程序是重復(fù)、厭煩的過(guò)程,而且效率極低。因?yàn)槊恳粋€(gè)窗口都需要在窗口函數(shù)中處理大量的消息,導(dǎo)致出現(xiàn)大量的重復(fù)代碼。 隨著 C++語(yǔ)言的盛行 , 開(kāi)發(fā)人員發(fā)現(xiàn)利用 C++語(yǔ)言的特性來(lái)封裝 Windows API和 Windows應(yīng)用程序的開(kāi)發(fā)可以明顯地提高程序的開(kāi)發(fā)效率 。 于是 , 人們對(duì)這種新的開(kāi)發(fā)模式有了強(qiáng)烈的需求 。 在這
點(diǎn)擊復(fù)制文檔內(nèi)容
教學(xué)課件相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
公安備案圖鄂ICP備17016276號(hào)-1