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

正文內(nèi)容

windowsapi編程(更新版)

2025-09-09 17:21上一頁面

下一頁面
  

【正文】 為一個(gè) WINAPI類型 ( 在頭文件中定義的所有 Windows函數(shù)都被指定這種類型 ) , 而 WndProc函數(shù)被指定為一個(gè) CALLBACK類型 。 有時(shí)這些新的數(shù)據(jù)類型只是為了方便起見的一個(gè)縮寫 。 2. 大寫的標(biāo)識符 大家可能注意到 , 在 IIELIDWIN. C中有很多大寫 的標(biāo)識符 , 這些標(biāo)識符都是在 Windows的頭文件 中定義的 。 當(dāng)然 , 我們首先要從整體上看一下 。 那不完全正確 。ps) 。 return 0 。msg) 。 if (!RegisterClass (amp。 = 0 。 程序 HELLOWIN程序就是一個(gè)包括這段固定代碼的簡單程序 。 Windows程序開始執(zhí)行后 , Windows為該 程序創(chuàng)建一個(gè) “ 消息隊(duì)列 ” 。 這個(gè)窗口類與一個(gè)位于Windows動態(tài)鏈接庫 ( 處理所有的按鈕窗口消息 ) 的窗口過程相聯(lián)系 。 程序創(chuàng)建的每一個(gè)窗口都有相關(guān)的窗口過程 。 “ Windows給程序發(fā)送消息 。 也就是說 , 您能夠通過鼠標(biāo)拖動窗口的邊框來改變窗口的大小 。 裝飾對話框表面的還有各式各樣的按鈕 、 單選鈕 、復(fù)選框 、 列表框 、 滾動條和文本輸 入?yún)^(qū)域 。雖然創(chuàng)建窗口的函數(shù)確實(shí)被命名為 CreateWindow, 但您將發(fā)現(xiàn) CreateWindow的第一個(gè)參數(shù)就是所謂的“窗口類名稱”,并且該窗口類連接所謂的“窗口過程”。 ? 項(xiàng)目框架建立起來后 , 需要向其中加入相關(guān)的文件 , 這些文件可能是已經(jīng)存在的 , 也可能是需要重新編輯建立的 。 啟動 Visual C++編譯器后 , 選擇 File菜單下的 New菜單項(xiàng) , 在列表框中選擇 Win32 Application項(xiàng) 。 好的命名方法使變量易于記憶且程序可讀性大大提高 。 為了對同一程序的多個(gè)副本進(jìn)行管理 , Windows引入了實(shí)例句柄 。 ? 該工具包的最新版本就是我們正在使用的 Win32 SDK。 兩者在很多方面非常相像 , 但是 Win32 API除了幾乎包括了 Winl6 API中的所有內(nèi)容以外 , 還包括很多的其他內(nèi)容 。 Windows 操作系統(tǒng)包括 3個(gè)內(nèi)核基本元件: GDI, KERNEL, USER。 Windows程序在處理消息時(shí)使用了一種叫作回調(diào)函數(shù) ( Callback Function) 的特殊函數(shù) 。 Windows 應(yīng)用程序的消息來源有以下 4種: ( l) 輸入消息:包括鍵盤和鼠標(biāo)的輸入 。 在這樣的一個(gè)操作系統(tǒng)中 , 不可能像過去的 DOS那樣 , 由一個(gè)應(yīng)用程序來享用所有的系統(tǒng)資源 , 這些資源是由 Windows統(tǒng)一管理的 。 吉林大學(xué)遠(yuǎn)程教育課件 Windows A P I編 程 主講人 : 翟慧杰 學(xué) 時(shí): 48 (第二講 ) 第三節(jié) Windows 應(yīng)用程序設(shè)計(jì)特點(diǎn) ? 在過去,進(jìn)行 Windows程序設(shè)計(jì)是一件痛苦異常的事情,原因是那時(shí)候還沒有現(xiàn)在這些設(shè)計(jì)精美的應(yīng)用程序開發(fā)工具。 下面的偽代碼演示了消息循環(huán)的用法: While( 1) { id= getMessage( … ) ; if( id==quit) break。 // 在窗口需要重新繪制時(shí)進(jìn)行輸出 ? break 。 例如你希望對菜單選擇進(jìn)行處理 , 那么你可以定義對 WM_ COMMAND消息進(jìn)行處理的代碼;如果希望在窗口中進(jìn)行圖形輸出 , 就必須對 WM_PAINT消息進(jìn)行處理 。 一般的程序流程如圖 l- l所示。本課件將結(jié)合 Windows 98系統(tǒng)平臺,全面介紹 Windows API程序設(shè)計(jì)。 第一節(jié) Windows發(fā)展歷程 Microsoft Windows是一個(gè)應(yīng)用于微型計(jì)算機(jī)上的基于圖形用戶界面的操作系統(tǒng) 。 Windows對于程序員的優(yōu)越性: Windows中許多對用戶的優(yōu)越性也是對程序員的優(yōu)越性 , 例如一致的用戶界面 。 ? 對用戶的另一個(gè)好處是使用了基于圖形的圖標(biāo)來代表應(yīng)用程序和數(shù)據(jù) 。 前 言 (三 ) ? Windows API也是認(rèn)識 Windows操作系統(tǒng)的一面鏡子 , 通過它 , 用戶可以深入系統(tǒng)地掌握 Windows的方方面面 。 計(jì)算機(jī)業(yè)界對基于 Windows應(yīng)用軟件的巨大需求刺激了 Windows本身不斷更新 ,同時(shí)也刺激了開發(fā) Windows應(yīng)用軟件的程序員隊(duì)伍不斷壯大 。 讀者不僅可以通過函數(shù)的分析說明來認(rèn)識 Windows API, 而且還可以通過編程實(shí)踐來認(rèn)識Windows API。例如 , 對用戶來說 , 雙擊一個(gè)代表某一應(yīng)用程序的圖標(biāo)比起在DOS中進(jìn)入相應(yīng)的目錄 , 并鍵人相應(yīng)的應(yīng)用程序名來使之執(zhí)行要容易得多 。 程序員可以很容易地設(shè)計(jì)出代表諸如文件和目錄物理結(jié)構(gòu)的圖形表示 , 并能提供這些元素所具有的特性 。 多任務(wù) Windows系統(tǒng)的好處在于允許同時(shí)運(yùn)行幾個(gè)應(yīng)用程序 , 特別是運(yùn)行幾個(gè)專為 Windows環(huán)境而創(chuàng)建的應(yīng)用程序 。 用戶從所有可能的操作中任意選擇 , 被選擇的操作會產(chǎn)生某些特定的事件 , 這些事件發(fā)生后的結(jié)果是向程序中的某些對象發(fā)出消息 , 然后這些對象調(diào)用相應(yīng)的消息處理函數(shù)來完成特定的操作 。 ? 當(dāng)用戶進(jìn)行了輸入或是窗口的狀態(tài)發(fā)生改變時(shí) , 系統(tǒng)都會發(fā)送消息到某一個(gè)窗口 。 例如窗口在被拖動時(shí)會發(fā)送很多消息 , 而我們都可以不予理睬 , 讓系統(tǒng)自己去處理 。 // 對于其他情況就讓系統(tǒng)自己處理 ? break。 這種多任務(wù)系統(tǒng)被稱為協(xié)同式多任務(wù)系統(tǒng) 。但是要知道,一個(gè)出色的 Windows的應(yīng)用程序并不僅在于在屏幕上繪出程序的各個(gè)窗口和在窗口中恰當(dāng)?shù)匕才琶恳粋€(gè)控件。應(yīng)用程序的任務(wù)就是不停地從它的消息隊(duì)列中獲取消息,分析和處理消息,直到接到一條叫作 WM_QUIT消息為止,這個(gè)過程通常是由一種叫作消息循環(huán)的程序結(jié)構(gòu)來實(shí)現(xiàn)的。 當(dāng)用戶在列表框中改動當(dāng)前選擇或改變了檢查框的狀態(tài)時(shí)發(fā)出此類消息 。 第四節(jié) Windows API和 SDK ? 一 、 Windows API ? 說到 Windows編程 , 就不能不談到 Windows API( Windows Application Programming Interface, Windows應(yīng)用程序編程接口 ) , 它是所有 Windows應(yīng)用程序的根本之所在 。 系統(tǒng)內(nèi)核 KERNEL支持與操作系統(tǒng)密切相關(guān)的功能:如進(jìn)程加載 , 文本切換 、 文件 I/O, 以及內(nèi)存管理 、 線程管理等 。其他一些非核心的 Windows API由其他組件所提供的 DLL來實(shí)現(xiàn),這些組件包括通用對話框、打印、文件壓縮、版本控制以及多媒體支持等。 而且 , 使用 MFC編寫的新風(fēng)格的 Windows應(yīng)用程序的工作方式基本上與使用 SDK編寫的程序一樣 , 它們往往有著很多的共同之處 , 只是使用 MFC更加方便 , 因?yàn)樗[藏了大量的復(fù)雜性 。 ? 一般情況下 , 我們應(yīng)該在 WinMain函數(shù)中完成下面的操作: ? ( l) 注冊窗口類 。西蒙尼在他的博士論文中提出來的 , 由于西蒙尼的國籍是匈牙利 , 所以這種命名法叫匈牙利命名法 。 ? . An empty project一個(gè)空項(xiàng)目; ? . A simpla Win32 application 一個(gè)簡單的 Win32應(yīng)用程序 ? . A typical Hello World”application一個(gè)典型的 “ Hello Word”應(yīng)用程序 。首先選中列表框中的 C++ Source File項(xiàng),然后在 File文本框中鍵入文件名,再單擊 OK按鈕。 這一點(diǎn)在Windows中使用得最多的對象身上表現(xiàn)最為明顯 。 作為對象 , 用戶會在屏幕上看到這些窗口 , 并通過鍵盤和鼠標(biāo)直接與它們進(jìn)行交互操 作 。 由于應(yīng)用程序能改變其顯示的格式 , 所以它也“ 知道 ” 窗口大小改變了 。 操作系統(tǒng)怎么給程序發(fā)送消息呢 ? 其實(shí) , 所謂 “ Windows給程序發(fā)送消息 ” , 是指Windows調(diào)用程序中的一個(gè)函數(shù) , 該函數(shù)的參數(shù)描述了這個(gè)特定消息 。 窗口過程根據(jù)此消息進(jìn)行處理 , 然后將控制返回給 Windows。 數(shù)據(jù)是窗口過程保存的信息 , 以及Windows為每個(gè)窗口系統(tǒng)中那個(gè)窗口類保存的信息 。 有些消息直接發(fā)送給窗口過程 , 不用放人消息隊(duì)列中 。 HWND hwnd 。 =LoadIcon(NULL, IDI_APPLICATION) 。 } hwnd = CreateWindow (szAppName, // window class name TEXT (The Hello Program), // window caption WS_OVERLAPPEDWINDOW, // window style CW_USEDEFAULT, // initial x position CW_USEDEFAULT, // initial y position CW_USEDEFAULT, // initial x size CW_USEDEFAULT, // initial y size NULL, // parent window handle NULL, // window menu handle hInstance, // program instance handle NULL) 。 } return 。 GetClientRect (hwnd, amp。 return 0 。 如果您認(rèn)真思考一下 , 將會發(fā)現(xiàn)雖然只有 80行代碼 , 這個(gè)窗口卻令人驚訝地具有許多功能 。 注意 , 在 HELLOWIN, C中沒有調(diào)用 WndProc的代碼 。 在編寫 Windows程序時(shí),不用去記這些數(shù)值常量。 其他數(shù)據(jù)類型的含義不太明顯 。 這些 數(shù)據(jù)結(jié)構(gòu)如表所示 。程序在其他 Window函數(shù)中使用這個(gè)句柄 , 以引用它代表的對象 。西蒙尼在他的博士論文中提出來的 , 由于西蒙尼的國籍是匈牙利 , 所以這種命名法叫匈牙利命名法 。 使用 Visual C++ Developer Studio 的 Edit 菜單中的 Find in Files 搜索這些頭文件非常方便 。 在為程序創(chuàng)建窗口之前 , 必須首先調(diào)用 RegisterClass注冊一個(gè)窗口類 。 // 窗體過程指針; int cbClsExtra。 // 窗體類名稱; HICON hIconSm。實(shí)際上,以這種方式分開這些風(fēng)格信息是非常方便的。 建立窗體函數(shù)用于建立平鋪式,彈出式或子窗體。 這是標(biāo)準(zhǔn)風(fēng)格的窗口 ,名為 WS_OVERLAPPEDWINDOW, 該參數(shù)按 “ 窗口風(fēng)格 ” 出現(xiàn)在CreateWindow中 。Windows中的每個(gè)窗口都有一個(gè)句柄 , 程序用句柄來引用窗口 。 ? 形參: ? 1. hWnd:窗體句柄; (是剛剛用 CreateWindow創(chuàng)建的窗口句柄 ) ? 2. nCmdShow:窗體顯示方式 , 與 WinMain函數(shù)定義的窗體顯示方式相同 。 它通過給窗口過程 ( 即 HELLOWIN. C中的WndProc函數(shù) ) 發(fā)送一個(gè) WM_PAINT消息來做到這一點(diǎn) 。msg)。 // 消息附加值; DWORD time。 第二 、 第三和第四個(gè)參數(shù)設(shè)置為 NULL或者 0, 表示程序接收它自己創(chuàng)建的所有窗口的所有消息 。msg) 將 msg結(jié)構(gòu)傳給 Windows, 語句DispatchMessage(amp。 在結(jié)束 DispatchMessage調(diào)用的處理之后 , Windows回到 HELLLWIN, 并且接著從下一個(gè) GetMessage調(diào)用開始消息循環(huán)
點(diǎn)擊復(fù)制文檔內(nèi)容
環(huán)評公示相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1