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

正文內(nèi)容

windowsapi編程-預(yù)覽頁

2025-08-25 17:21 上一頁面

下一頁面
 

【正文】 循環(huán)的程序結(jié)構(gòu)來實(shí)現(xiàn)的。 事件驅(qū) 動(dòng)是靠消息循環(huán)機(jī)制來實(shí)現(xiàn)的 。 當(dāng)用戶在列表框中改動(dòng)當(dāng)前選擇或改變了檢查框的狀態(tài)時(shí)發(fā)出此類消息 。 ( 4) 用戶消息:這是程序員自己定義并在應(yīng)用程序中主動(dòng)發(fā)出的 , 一般由應(yīng)用程序的某一部分內(nèi)部處理 。 第四節(jié) Windows API和 SDK ? 一 、 Windows API ? 說到 Windows編程 , 就不能不談到 Windows API( Windows Application Programming Interface, Windows應(yīng)用程序編程接口 ) , 它是所有 Windows應(yīng)用程序的根本之所在 。 而在 Windows下 , 由于允許多個(gè)任務(wù)同時(shí)運(yùn)行 , 應(yīng)用程序的輸入輸出是由 Windows來統(tǒng)一管理的 。 系統(tǒng)內(nèi)核 KERNEL支持與操作系統(tǒng)密切相關(guān)的功能:如進(jìn)程加載 , 文本切換 、 文件 I/O, 以及內(nèi)存管理 、 線程管理等 。 ? Windows API具有兩種基本類型: Winl6 API和 Win32 API。其他一些非核心的 Windows API由其他組件所提供的 DLL來實(shí)現(xiàn),這些組件包括通用對(duì)話框、打印、文件壓縮、版本控制以及多媒體支持等。 ? . 使用 C語言編寫的示例程序 。 而且 , 使用 MFC編寫的新風(fēng)格的 Windows應(yīng)用程序的工作方式基本上與使用 SDK編寫的程序一樣 , 它們往往有著很多的共同之處 , 只是使用 MFC更加方便 , 因?yàn)樗[藏了大量的復(fù)雜性 。 其聲明是這樣的: typedef void *HANDLE ? Windows是一個(gè)多任務(wù)操作系統(tǒng) , 它可以同時(shí)運(yùn)行多個(gè)程序或一個(gè)程序的多個(gè)副本 。 ? 一般情況下 , 我們應(yīng)該在 WinMain函數(shù)中完成下面的操作: ? ( l) 注冊窗口類 。 ? 在編程時(shí) , 變量 、 函數(shù)的命名是一個(gè)極其重要的問題 。西蒙尼在他的博士論文中提出來的 , 由于西蒙尼的國籍是匈牙利 , 所以這種命名法叫匈牙利命名法 。比如,m_szStudentName表示一個(gè)學(xué)生名字的類成員變量,數(shù)據(jù)類型是字符串型 ? 第六節(jié) Windows API程序的開發(fā)步驟 ? 開發(fā)基于 Windows API的應(yīng)用程序一般可以參考下面的步驟 。 ? . An empty project一個(gè)空項(xiàng)目; ? . A simpla Win32 application 一個(gè)簡單的 Win32應(yīng)用程序 ? . A typical Hello World”application一個(gè)典型的 “ Hello Word”應(yīng)用程序 。 如果希望直接鍵人源程序 , 可以選擇 An empty project這一項(xiàng) 。首先選中列表框中的 C++ Source File項(xiàng),然后在 File文本框中鍵入文件名,再單擊 OK按鈕。 但實(shí)際上并非真得這么簡單。 這一點(diǎn)在Windows中使用得最多的對(duì)象身上表現(xiàn)最為明顯 。 另一類窗口是對(duì)話框 , 它可以有標(biāo)題欄也可以沒有標(biāo)題欄 。 作為對(duì)象 , 用戶會(huì)在屏幕上看到這些窗口 , 并通過鍵盤和鼠標(biāo)直接與它們進(jìn)行交互操 作 。 這有一個(gè) windows的消息示例:我們知道 , 大多數(shù)的 windows程序都有大小合適的應(yīng)用程序窗口 。 由于應(yīng)用程序能改變其顯示的格式 , 所以它也“ 知道 ” 窗口大小改變了 。 然后程序就可以調(diào)整窗口中的內(nèi) 容 , 以反映大小的變化 。 操作系統(tǒng)怎么給程序發(fā)送消息呢 ? 其實(shí) , 所謂 “ Windows給程序發(fā)送消息 ” , 是指Windows調(diào)用程序中的一個(gè)函數(shù) , 該函數(shù)的參數(shù)描述了這個(gè)特定消息 。 讀者所不習(xí)慣的 , 可能是操作系統(tǒng)調(diào)用程序 , 而這正是 Windows面向?qū)ο篌w系結(jié)構(gòu)的基礎(chǔ) 。 窗口過程根據(jù)此消息進(jìn)行處理 , 然后將控制返回給 Windows。 例如 , 所有 Windows程序中的所有按鈕均基于同一個(gè)窗口類 。 數(shù)據(jù)是窗口過程保存的信息 , 以及Windows為每個(gè)窗口系統(tǒng)中那個(gè)窗口類保存的信息 。 在窗口大小改變或窗口表面需要重畫時(shí) , 由其他消息通知窗口 。 有些消息直接發(fā)送給窗口過程 , 不用放人消息隊(duì)列中 。 這包 括一段幾乎出現(xiàn)在每一個(gè) Window程序中的固定代碼 。 HWND hwnd 。 = WndProc 。 =LoadIcon(NULL, IDI_APPLICATION) 。 = szAppName 。 } 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) 。msg, NULL, 0, 0)) { TranslateMessage (amp。 } return 。 switch (message) { case WM_CREATE: PlaySound (TEXT (), NULL, SND_FILENAME | SND_ASYNC) 。 GetClientRect (hwnd, amp。 EndPaint (hwnd, amp。 return 0 。 上面提到 , HELLOWIN將在其窗口的中央顯示文本串 。 如果您認(rèn)真思考一下 , 將會(huì)發(fā)現(xiàn)雖然只有 80行代碼 , 這個(gè)窗口卻令人驚訝地具有許多功能 。 您可以從系統(tǒng)菜單 ( 標(biāo)題欄最左端的小圖際 ) 中 執(zhí)行所有選項(xiàng);也可以通過從系統(tǒng)萊單中選擇 Close選項(xiàng) , 或者通過單未標(biāo)題欄最右端的關(guān)閉 按鈕 , 或者通過雙擊標(biāo)題欄最左端的圖標(biāo)來關(guān)閉 窗口以終止程序的執(zhí)行 。 注意 , 在 HELLOWIN, C中沒有調(diào)用 WndProc的代碼 。 這些函數(shù)均在平臺(tái) SDK文檔中說明 , 并在不同的頭文件中聲明 , 其中絕大多數(shù)在 WINUSER. H中聲明 。 在編寫 Windows程序時(shí),不用去記這些數(shù)值常量。 這種作法并不如當(dāng)時(shí)每個(gè)人想象的那樣順利 , 但是這種概念基本上是正確的 。 其他數(shù)據(jù)類型的含義不太明顯 。 WndProc函數(shù)返回一個(gè)類型為 LRESULT的值 , 該值簡單地被定義為一個(gè) LONG。 這些 數(shù)據(jù)結(jié)構(gòu)如表所示 。 在本章結(jié)束之前 , 我們將遇到 HICON( 圖標(biāo)句柄 ) 、 HCURSOR鼠標(biāo)指針句柄 ) 和 HBRUSH( 圖形刷句 柄 ) 。程序在其他 Window函數(shù)中使用這個(gè)句柄 , 以引用它代表的對(duì)象 。 在編程時(shí) , 變量 、 函數(shù)的命名是一個(gè)極其重要 的問題 。西蒙尼在他的博士論文中提出來的 , 由于西蒙尼的國籍是匈牙利 , 所以這種命名法叫匈牙利命名法 。比如,m_szStudentName表示一個(gè)學(xué)生名字的類成員變量,數(shù)據(jù)類型是字符串型。 使用 Visual C++ Developer Studio 的 Edit 菜單中的 Find in Files 搜索這些頭文件非常方便 。 例如 ,Windows中的所有按鈕窗口 —包括下壓按鈕 。 在為程序創(chuàng)建窗口之前 , 必須首先調(diào)用 RegisterClass注冊一個(gè)窗口類 。 二 . 形參 lpwcx 是一個(gè)指向窗體類結(jié)構(gòu)類型的指針變量 。 // 窗體過程指針; int cbClsExtra。 // 窗體圖標(biāo); HCURSOR hCursor。 // 窗體類名稱; HICON hIconSm。 CS_BYTEALIGNCLIENT CS_BYTEALIGNWINDOW CS_CLASSDC CS_DBLCLKS CS_GLOBALCLASS CS_HREDRAW CS_NOCLOSE CS_OWNDC CS_PARENTDC CS_SAVEBITS CS_VREDRAW 2. 窗體客戶區(qū)背景色選項(xiàng): COLOR_ACTIVEBORDER COLOR_ACTIVECAPTION COLOR_APPWORKSPACE COLOR_BACKGROUND COLOR_BTNFACE COLOR_BTNSHADOW COLOR_BTNTEXT COLOR_CAPTIONTEXT COLOR_GRAYTEXT COLOR_HIGHLIGHT COLOR_HIGHLIGHTTEXT COLOR_INACTIVEBORDER COLOR_INACTIVECAPTION COLOR_MENU COLOR_MENUTEXT COLOR_SCROLLBAR COLOR_WINDOW COLOR_WINDOWFRAME COLOR_WINDOWTEXT 三 . 返回值 如果成功返回非 0值 , 否則返回 0。實(shí)際上,以這種方式分開這些風(fēng)格信息是非常方便的。從這一點(diǎn)看來,所有的按鈕都是以同樣的方式工作的。 建立窗體函數(shù)用于建立平鋪式,彈出式或子窗體。 返回值 如果成功返回新窗體句柄 , 否則返回 NULL。 這是標(biāo)準(zhǔn)風(fēng)格的窗口 ,名為 WS_OVERLAPPEDWINDOW, 該參數(shù)按 “ 窗口風(fēng)格 ” 出現(xiàn)在CreateWindow中 。 因?yàn)榇翱跊]有菜單 , 所以 “ 窗口菜單句柄 ” 也設(shè)置為 NULL。Windows中的每個(gè)窗口都有一個(gè)句柄 , 程序用句柄來引用窗口 。 第四節(jié) 顯示和更新窗體函數(shù) ? 在 CreateWindow調(diào)用返回之后 , Window內(nèi)部已經(jīng) ? 創(chuàng)建了這個(gè)窗口 。 ? 形參: ? 1. hWnd:窗體句柄; (是剛剛用 CreateWindow創(chuàng)建的窗口句柄 ) ? 2. nCmdShow:窗體顯示方式 , 與 WinMain函數(shù)定義的窗體顯示方式相同 。 形參: hWnd:窗體句柄; Handle to the window to be updated. 返回值:如果成功返回 TRUE, 否則返回 FALSE。 它通過給窗口過程 ( 即 HELLOWIN. C中的WndProc函數(shù) ) 發(fā)送一個(gè) WM_PAINT消息來做到這一點(diǎn) 。 Windows為當(dāng)前運(yùn)行的每個(gè) Windows程序維護(hù)一個(gè) “ 消息隊(duì)列 ” 。msg)。 其定義如下: typedef struct tagMSG { HWND hwnd。 // 消息附加值; DWORD time。 // 光標(biāo)在屏幕上的 X坐標(biāo); LONG y。 第二 、 第三和第四個(gè)參數(shù)設(shè)置為 NULL或者 0, 表示程序接收它自己創(chuàng)建的所有窗口的所有消息 。 只要從消息隊(duì)列中取出消息的 message域不為 WM_QUIT。msg) 將 msg結(jié)構(gòu)傳給 Windows, 語句DispatchMessage(amp。 這也就是說 , Windows將調(diào)用窗口過程 。 在結(jié)束 DispatchMessage調(diào)用的處理之后 , Windows回到 HELLLWIN, 并且接著從下一個(gè) GetMessage調(diào)用開始消息循環(huán) 。 四 . 發(fā)送消息函數(shù) 1. 發(fā)送消息函數(shù)聲明 發(fā)送消息函數(shù)用于把消息發(fā)送窗體過程 , 其聲明如下: LONG DispatchMessage (CONST MSG *lpmsg)
點(diǎn)擊復(fù)制文檔內(nèi)容
環(huán)評(píng)公示相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1