版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、1,第三章Windows 編程基礎(chǔ),4學(xué)時(shí) 要求了解和掌握: Windows編程基礎(chǔ)知識(shí) 熟悉和熟練Windows圖形編程環(huán)境 Windows應(yīng)用程序常用消息 典型事件驅(qū)動(dòng)的Windows程序設(shè)計(jì) Windows應(yīng)用程序的基本結(jié)構(gòu),2,3.1 基礎(chǔ)知識(shí),1. Windows 應(yīng)用程序特點(diǎn) 圖形用戶界面,易學(xué)易用 以虛擬內(nèi)存為核心的內(nèi)存管理 多任務(wù)運(yùn)行環(huán)境 虛擬化設(shè)備接口,例如GDI的設(shè)備無(wú)關(guān)性 網(wǎng)絡(luò),多媒體開發(fā) 功能豐富的管理工具和實(shí)用軟件,3,3.1 基礎(chǔ)知識(shí),2.可視化的開化平臺(tái) 集成編輯、編譯、調(diào)試運(yùn)行和資源管理 3.豐富的開發(fā)語(yǔ)言 VC+, VB, Delphi,Java等,4,3.1
2、 基礎(chǔ)知識(shí),4.使用VC+開發(fā)windows應(yīng)用程序的基本方式 利用windows API(Application Program Interface)函數(shù)進(jìn)行,也即SDK. 利用MFC (Microsoft Foundation Class).,5,3.2 windows 編程基本概念,windows 編程的基本概念 窗口 事件驅(qū)動(dòng) 句柄和Windows消息 Windows程序設(shè)計(jì) 匈牙利表示法,6,3.2 windows 編程基本概念,windows 編程的基本概念 窗口 事件驅(qū)動(dòng) 句柄和Windows消息 Windows程序設(shè)計(jì) 匈牙利表示法,7,窗口,定義(描述) 是應(yīng)用程序的基本操作
3、單元; 是應(yīng)用程序與用戶之間的接口環(huán)境; 是系統(tǒng)管理應(yīng)用程序的基本單位,8,窗口設(shè)計(jì),典型Windows應(yīng)用程序設(shè)計(jì) 首先創(chuàng)建一個(gè)或多個(gè)窗口; 在應(yīng)用程序內(nèi)部,不同的窗口之間的信息交換; 窗口與應(yīng)用程序之間進(jìn)行數(shù)據(jù)處理與數(shù)交換; 用戶信息通過系統(tǒng),再由系統(tǒng)通過應(yīng)用程序,最后到達(dá)窗口的信息傳輸。,9,3.2 windows 編程基本概念,windows 編程的基本概念 窗口 事件驅(qū)動(dòng) 句柄和Windows消息 Windows程序設(shè)計(jì) 匈牙利表示法,10,事件驅(qū)動(dòng),定義 以事件或消息為中心,驅(qū)動(dòng)程序或過程的調(diào)用和處理; 事件處理面向交互; 消息是對(duì)事件發(fā)生的描述; 原則上消息的處理是順序的.,11
4、,3.2 windows 編程基本概念,windows 編程的基本概念 窗口 事件驅(qū)動(dòng) 句柄和Windows消息 Windows程序設(shè)計(jì) 匈牙利表示法,12,句柄,定義 Windows API編程的基礎(chǔ) 4字節(jié)長(zhǎng)的整數(shù) 不同對(duì)象實(shí)例在系統(tǒng)中的唯一標(biāo)識(shí) 應(yīng)用程序可通過句柄訪問對(duì)象的信息,13,句柄,句柄可理解為指向?qū)ο髢?nèi)存地址的指針 對(duì)象數(shù)據(jù)在內(nèi)存中是不穩(wěn)定的 HANDLE的位置卻相對(duì)穩(wěn)定 通過HANDLE的值可以獲取對(duì)象在內(nèi)存中的實(shí)際位置,進(jìn)而對(duì)對(duì)象進(jìn)行訪問. P65 表3-1 常見句柄類型及說(shuō)明,14,消息 Message,定義(描述) 消息是對(duì)事件的描述 由三個(gè)基本部分組成,15,消息 M
5、essage 結(jié)構(gòu)體,Typedef struct tagMSG HWND hwnd; UINT message; WPARAM wParam; LPARAM lParam; DWORD time; POINT pt; MSG /better see MSDN,16,消息 Message 簡(jiǎn)單劃分,P66 VC+中幾種系統(tǒng)定義的消息分類 P67 不同Windows消息類型及取值范圍,17,Windows 常用消息,1 WM_ BUTTON消息: P67 2 WM_ KEY消息: P67 3 WM_CHAR消息: P68 4 WM_CREAT: P68 5 WM_CLOSE: P68 6 WM_
6、DESTROY: P68 7 WM_QUIT: P68 8 WM_PAINT: P68,18,3.2 windows 編程基本概念,windows 編程的基本概念 窗口 事件驅(qū)動(dòng) 句柄和Windows消息 Windows程序設(shè)計(jì) 匈牙利表示法,19,Windows 程序設(shè)計(jì)(事件驅(qū)動(dòng)),面向過程的結(jié)構(gòu)化處理程序,20,Windows 程序設(shè)計(jì)(事件驅(qū)動(dòng)),事件驅(qū)動(dòng)的處理程序,21,Windows 程序設(shè)計(jì)(事件驅(qū)動(dòng)),Windows面向消息的機(jī)制,22,Windows 本身與應(yīng)用程序交互,23,Windows 程序設(shè)計(jì),Windows程序的事件驅(qū)動(dòng)特性: 消息的產(chǎn)生 消息的獲得 消息的分派 消
7、息的判斷 消息的處理 C+多態(tài)Polymorphism,24,Windows 程序設(shè)計(jì),Windows API 編程示例 (1) 應(yīng)用程序的組成 .c 或.cpp .h .rc (2) 函數(shù)庫(kù) LIBC.LIB : C Runtime函數(shù)庫(kù)的靜態(tài)鏈接版本 MSVCRT.LIB: C Runtime函數(shù)庫(kù)的動(dòng)態(tài)鏈接版本(MSVCRT40.DLL) USER32.DLL, KERNEL32.DLL, GDI32.DLL,25,Windows 程序設(shè)計(jì),Eg1: Simple Hello Windows Program 一個(gè)過程型的Windows應(yīng)用程序 Source Code:,26,Eg1: S
8、ource Code,#include Windows.h #include WINNT.h #include stdio.h int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR loCmdLine, int nShowCmd) /printf(HELLOn); int iresult; char strStoreArray100; iresult = MessageBox(NULL, TEXT(HELLO WINDOWS), TEXT(HELLO MSG), MB_OK|MB_DEFBUTTON2);
9、int a = PlaySound (TEXT (123.wav), NULL, SND_FILENAME | SND_ASYNC); sprintf(strStoreArray, Chosen Button is %2d, iresult); MessageBox(NULL, TEXT(strStoreArray), TEXT(CHOICE PROMPT), MB_OK); return 0; ,27,MessageBox 函數(shù)(1),/1 The returned value denote your choince /2 You can use the next BUTTON to spe
10、cify BUTTON type /#define MB_OK 0 x00000000L /#define MB_OKCANCEL 0 x00000001L /#define MB_ABORTRETRYIGNORE 0 x00000002L /#define MB_YESNOCANCEL 0 x00000003L /#define MB_YESNO 0 x00000004L /#define MB_RETRYCANCEL 0 x00000005L,28,MessageBox 函數(shù)(2),/3 Also you can specify the default button selected /#
11、define MB_DEFBUTTON1 0 x00000000L /#define MB_DEFBUTTON2 0 x00000100L /#define MB_DEFBUTTON3 0 x00000200L /#define MB_DEFBUTTON4 0 x00000300L /4 Followed are the ICON in the MessageBox /#define MB_ICONHAND 0 x00000010L /#define MB_ICONQUESTION 0 x00000020L /#define MB_ICONEXCLAMATION 0 x00000030L /#
12、define MB_ICONASTERISK 0 x00000040L,29,Windows 程序設(shè)計(jì),Eg2: Typical Windows Program 窗口Windows應(yīng)用程序 Source Code:,30,Eg2: Source Code(1),/Hello.cpp = / Hello - A simple application for Windows / Written for the book Programming Windows CE / Copyright (C) 2003 Douglas Boling /= #include / For all that Wind
13、ows stuff LRESULT CALLBACK MainWndProc ( HWND, UINT, WPARAM, LPARAM); / Program entry point / int WINAPI WinMain (HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow) ,31,Eg2: Source Code(2),WNDCLASS wc; HWND hWnd; MSG msg; / Register application main window class. wc.style =
14、 0; / Window style wc.lpfnWndProc = MainWndProc; / Callback function wc.cbClsExtra = 0; / Extra class data wc.cbWndExtra = 0; / Extra window data wc.hInstance = hInstance; / Owner handle wc.hIcon = NULL, / Application icon wc.hCursor = LoadCursor (NULL, IDC_ARROW); / Default cursor wc.hbrBackground
15、= (HBRUSH) GetStockObject (WHITE_BRUSH); wc.lpszMenuName = NULL; / Menu name wc.lpszClassName = TEXT(MyClass); / Window class name if (RegisterClass (,32,Eg2: Source Code(3),hWnd = CreateWindowEx( / Create main window. WS_EX_NODRAG, / Ex style flags TEXT(MyClass), / Window class TEXT(Hello), / Windo
16、w title / Style flags WS_VISIBLE | WS_CAPTION | WS_SYSMENU, CW_USEDEFAULT, / x position CW_USEDEFAULT, / y position CW_USEDEFAULT, / Initial width CW_USEDEFAULT, / Initial height NULL, / Parent NULL, / Menu, must be null hInstance, / Application instance NULL); / Pointer to create if (!IsWindow (hWn
17、d) return -2; / Fail code if not created.,33,Eg2: Source Code(3),/ Standard show and update calls ShowWindow (hWnd, nCmdShow); UpdateWindow (hWnd); / Application message loop while (GetMessage ( / End of WinMain Proc,34,Eg2: Source Code(4),/ MainWndProc - Callback function for application window LRE
18、SULT CALLBACK MainWndProc (HWND hWnd, UINT wMsg, WPARAM wParam, LPARAM lParam) PAINTSTRUCT ps; RECT rect; HDC hdc; switch (wMsg) case WM_PAINT: / Get the size of the client rectangle GetClientRect (hWnd, ,35,Eg2:說(shuō)明,MainWndProc函數(shù)由一個(gè)或多個(gè)switch語(yǔ)句組成。 每一case語(yǔ)句對(duì)應(yīng)一種消息,當(dāng)應(yīng)用程序接收到一個(gè)消息時(shí),相應(yīng)的case語(yǔ)句被激活并執(zhí)行相應(yīng)的響應(yīng)程序模塊。
19、,36,Eg2:說(shuō)明,LRESULT CALLBACK MainWndProc (HWND hWnd, UINT wMsg, WPARAM wParam, LPARAM lParam) switch (wMsg) case WM_PAINT: break; case WM_DESTROY: PostQuitMessage (0); break; default: break; ,WM_DESTROY,該消息在關(guān)閉窗口時(shí)發(fā)出。 此時(shí),它向應(yīng)用程序發(fā)出WM_QUIT消息: void PostQuitMessage(int nExitCode) /nExitCode為應(yīng)用程序的退出代碼,為未定義處理過程的消息提供缺省處理,37,Windows 程序設(shè)計(jì),windows 編程的基本概念 窗口 事件驅(qū)動(dòng) 句柄和Windows消息 Windows程序設(shè)計(jì) 匈牙利表示法,
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025中鐵建昆侖高速公路運(yùn)營(yíng)管理有限公司招聘12人筆試參考題庫(kù)附帶答案詳解(3卷)
- 2025中國(guó)航材招聘集團(tuán)公司財(cái)務(wù)管理部籌融資及司庫(kù)管理崗1人筆試參考題庫(kù)附帶答案詳解(3卷)
- 贛州銀行資金營(yíng)運(yùn)中心總經(jīng)理招聘筆試歷年典型考題及考點(diǎn)剖析附帶答案詳解
- 2026年馬鞍山市人民醫(yī)院博望分院(博望區(qū)人民醫(yī)院)招聘派遣制工作人員5人備考題庫(kù)及完整答案詳解一套
- 2026山東濰坊銀行招聘筆試歷年典型考題及考點(diǎn)剖析附帶答案詳解
- 2026年淄博市體育幼兒園招聘勞務(wù)派遣教師備考題庫(kù)及答案詳解1套
- 2026年茂名高嶺科技有限公司面向社會(huì)公開招聘?jìng)淇碱}庫(kù)含答案詳解
- 2025年甘肅省隴南市消防救援支隊(duì)招聘政府專職消防員、戰(zhàn)勤保障隊(duì)員及消防文員33人筆試歷年題庫(kù)附答案解析
- 2025年舟山市普陀區(qū)醫(yī)共體公開招聘事業(yè)單位衛(wèi)生專業(yè)技術(shù)人員33人參考試題附答案解析
- 2025湖南郴州市資興市第二次招聘城市社區(qū)專職工作者33人參考試題附答案解析
- 器官移植術(shù)后排斥反應(yīng)的風(fēng)險(xiǎn)分層管理
- 事業(yè)單位清算及財(cái)務(wù)報(bào)告編寫范本
- 護(hù)坡綠化勞務(wù)合同范本
- 臨床績(jī)效的DRG與CMI雙指標(biāo)調(diào)控
- 2026年湛江日?qǐng)?bào)社公開招聘事業(yè)編制工作人員備考題庫(kù)及完整答案詳解
- 2025-2026學(xué)年人教版數(shù)學(xué)三年級(jí)上學(xué)期期末仿真模擬試卷一(含答案)
- 2025年涼山教師業(yè)務(wù)素質(zhì)測(cè)試題及答案
- 2026年昭通市威信縣公安局第一季度輔警招聘(14人)筆試模擬試題及答案解析
- 氫能技術(shù)研發(fā)協(xié)議
- 2025交管12123學(xué)法減分整套試題帶答案解析(全國(guó)適用)
- 經(jīng)皮內(nèi)鏡下胃造瘺術(shù)護(hù)理配合
評(píng)論
0/150
提交評(píng)論