Windows SDK筆記(1~7)

Windows SDK筆記(1~7)

ID:37713817

大?。?7.38 KB

頁數(shù):13頁

時(shí)間:2019-05-29

Windows SDK筆記(1~7)_第1頁
Windows SDK筆記(1~7)_第2頁
Windows SDK筆記(1~7)_第3頁
Windows SDK筆記(1~7)_第4頁
Windows SDK筆記(1~7)_第5頁
資源描述:

《Windows SDK筆記(1~7)》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在教育資源-天天文庫

1、WindowsSDK筆記(一):Windows程序基本結(jié)構(gòu)一、概述Windows程序具有相對(duì)固定的結(jié)構(gòu),對(duì)編寫者而言,不需要書寫整個(gè)過程,大部分過程由系統(tǒng)完成。程序中只要按一定的格式填寫系統(tǒng)留給客戶的那一小部分。所需要完成的有:窗口類的定義、窗口的建立、消息函數(shù)的書寫、消息循環(huán)。二、消息處理函數(shù)Windows程序是事件驅(qū)動(dòng)的,對(duì)于一個(gè)窗口,它的大部分例行維護(hù)是由系統(tǒng)維護(hù)的。沒個(gè)窗口都有一個(gè)消息處理函數(shù)。在消息處理函數(shù)中,對(duì)傳入的消息進(jìn)行處理。系統(tǒng)內(nèi)還有它自己的缺省消息處理函數(shù)??蛻魧懸粋€(gè)消息處理函數(shù),在

2、窗口建立前,將消息處理函數(shù)與窗口關(guān)聯(lián)。這樣,每當(dāng)有消息產(chǎn)生時(shí),就會(huì)去調(diào)用這個(gè)消息處理函數(shù)。通常情況下,客戶都不會(huì)處理全部的消息,而是只處理自己感興趣的消息,其他的,則送回到系統(tǒng)的缺省消息處理函數(shù)中去。LRESULTCALLBACKWndProc(HWNDhwnd,UINTmessage,WPARAMwParam,LPARAMlParam){switch(message){case......case......}returnDefWindowProc(hwnd,message,wParam,lParam

3、);}三、窗口的建立客戶需要自己建立窗口,建立后會(huì)得到系統(tǒng)返回的窗口句柄(HWND),后繼的針對(duì)窗口的操作都針對(duì)句柄進(jìn)行。1.注冊(cè)窗口類建立窗口前,需要制定好這個(gè)窗口的相關(guān)屬性,最主要的就是將自己定義的消息處理函數(shù)與窗口關(guān)聯(lián),其他的屬性還包括:菜單、圖標(biāo)等等。這個(gè)屬性指定步驟是通過指定"窗口類"來完成的。對(duì)于自己建立的窗口,這個(gè)"窗口類"需要自己制定,也即自己填充一個(gè)WNDCLASS結(jié)構(gòu),然后向系統(tǒng)注冊(cè)。對(duì)于一些特殊窗口,如按鈕等控件,他們的行為是系統(tǒng)制定好了的,所以不需要自己注冊(cè),直接使用對(duì)應(yīng)的“窗口

4、類”名稱就行了。2.建立窗口建立窗口時(shí),注冊(cè)的"窗口類"名稱作為參數(shù)傳入。這樣,當(dāng)有針對(duì)該窗口的消息時(shí),將調(diào)用“窗口類”中指定的消息處理函數(shù),在其中得到處理。四、消息循環(huán)系統(tǒng)會(huì)將針對(duì)這個(gè)程序的消息依次放到程序的“消息隊(duì)列”中,由程序自己依次取出消息,在分發(fā)到對(duì)應(yīng)的窗口中去。因此,建立窗口后,將進(jìn)入一個(gè)循環(huán)。在循環(huán)中,取出消息、派發(fā)消息,循環(huán)往復(fù),直到取得的消息是退出消息。循環(huán)退出后,程序即結(jié)束。#include"stdafx.h"#include//一、消息處理函數(shù)//參數(shù):窗口句

5、柄,消息,消息參數(shù),消息參數(shù)LRESULTCALLBACKWndProc(HWNDhwnd,UINTmessage,WPARAMwParam,LPARAMlParam){//處理感興趣的消息switch(message){caseWM_DESTROY://當(dāng)用戶關(guān)閉窗口,窗口銷毀,程序需結(jié)束,發(fā)退出消息,以退出消息循環(huán)PostQuitMessage(0);return0;}//其他消息交給由系統(tǒng)提供的缺省處理函數(shù)return::DefWindowProc(hwnd,message,wParam,lPar

6、am);}//二、應(yīng)用程序主函數(shù)//參數(shù):實(shí)例句柄、前一個(gè)實(shí)例的句柄、命令行參數(shù)、窗口顯示方式intWINAPIWinMain(HINSTANCEhInstance,HINSTANCEhPrevInstance,PSTRszCmdLine,intiCmdShow){//1.注冊(cè)窗口類staticTCHARszAppName[]=TEXT("HelloWin");//窗口類名稱WNDCLASSwndclass;//定制"窗口類"結(jié)構(gòu)wndclass.style=CS_HREDRAW

7、CS_VREDRAW;

8、wndclass.lpfnWndProc=WndProc;//關(guān)聯(lián)消息處理函數(shù)wndclass.cbClsExtra=0;wndclass.cbWndExtra=0;wndclass.hInstance=hInstance;//實(shí)例句柄wndclass.hIcon=LoadIcon(NULL,IDI_APPLICATION);//圖標(biāo)wndclass.hCursor=LoadCursor(NULL,IDC_ARROW);//光標(biāo)wndclass.hbrBackground=(HBRUSH)GetStoc

9、kObject(WHITE_BRUSH);//畫刷wndclass.lpszMenuName=NULL;wndclass.lpszClassName=szAppName;//類名稱//注冊(cè)if(!RegisterClass(&wndclass)){MessageBox(NULL,TEXT("RegisterClassFail!"),szAppName,MB_ICONERROR);return0;}//建立窗口HWNDhwnd;hwnd=Cr

當(dāng)前文檔最多預(yù)覽五頁,下載文檔查看全文

此文檔下載收益歸作者所有

當(dāng)前文檔最多預(yù)覽五頁,下載文檔查看全文
溫馨提示:
1. 部分包含數(shù)學(xué)公式或PPT動(dòng)畫的文件,查看預(yù)覽時(shí)可能會(huì)顯示錯(cuò)亂或異常,文件下載后無此問題,請(qǐng)放心下載。
2. 本文檔由用戶上傳,版權(quán)歸屬用戶,天天文庫負(fù)責(zé)整理代發(fā)布。如果您對(duì)本文檔版權(quán)有爭(zhēng)議請(qǐng)及時(shí)聯(lián)系客服。
3. 下載前請(qǐng)仔細(xì)閱讀文檔內(nèi)容,確認(rèn)文檔內(nèi)容符合您的需求后進(jìn)行下載,若出現(xiàn)內(nèi)容與標(biāo)題不符可向本站投訴處理。
4. 下載文檔時(shí)可能由于網(wǎng)絡(luò)波動(dòng)等原因無法下載或下載錯(cuò)誤,付費(fèi)完成后未能成功下載的用戶請(qǐng)聯(lián)系客服處理。