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

正文內(nèi)容

windows編程基礎(chǔ)新手入門(mén)資料(編輯修改稿)

2025-07-22 23:39 本頁(yè)面
 

【文章內(nèi)容簡(jiǎn)介】 NSTANCE hInstance。 // 指定窗口過(guò)程所對(duì)應(yīng)的實(shí)例句柄 HICON hIcon。 // 指定窗口的圖標(biāo) HCURSOR hCursor。 // 指定窗口的鼠標(biāo)指針 HBRUSH hbrBackground。 // 指定窗口的背景畫(huà)刷 LPCTSTR lpszMenuName。 // 窗口的菜單資源名稱(chēng) LPCTSTR lpszClassName。 // 該窗口類(lèi)的名稱(chēng)} WNDCLASS, *PWNDCLASS。從中可以看出:該結(jié)構(gòu)有10個(gè)域(成員),其中第一個(gè)域style表示窗口類(lèi)的風(fēng)格,它往往是由一些基本的預(yù)定義風(fēng)格通過(guò)位的“或”操作(操作符位“|”)組合而成的。例如,有:WNDCLASS wndclass 。 // 窗口類(lèi) = CS_HREDRAW | CS_VREDRAW 。 = WndProc 。 = 0 。 = 0 。 = hInstance 。 = LoadIcon (NULL, IDI_APPLICATION) 。 = LoadCursor (NULL, IDC_ARROW) 。 = GetStockObject (WHITE_BRUSH) 。 = NULL。 = HelloWin。 // 窗口類(lèi)名可以看到, | CS_HREDRAW,表示只要窗口的高度或?qū)挾劝l(fā)生變化,都會(huì)重畫(huà)整個(gè)窗口。第二個(gè)域lpfnWndProc的值為WndProc。表明該窗口類(lèi)的消息處理函數(shù)是WndProc函數(shù)。這里,可簡(jiǎn)單直接地輸入消息處理(窗口過(guò)程)函數(shù)的函數(shù)名即可。接下來(lái)的cbClsExtra和cbWndExtra在大多數(shù)情況下都會(huì)設(shè)為0。然后的hInstance成員,給它的值是由WinMain傳來(lái)的應(yīng)用程序的實(shí)例句柄,表明該窗口與該實(shí)例是相關(guān)聯(lián)的。事實(shí)上,只要是注冊(cè)窗口類(lèi),該成員的值始終是該程序的實(shí)例句柄。下面的hIcon,是要給這個(gè)窗口指定一個(gè)圖標(biāo),LoadIcon (NULL, IDI_APPLICATION)就是調(diào)用系統(tǒng)內(nèi)部預(yù)先定義好的標(biāo)識(shí)符為IDC_APPLICATION的圖標(biāo)作為該窗口的圖標(biāo)。同樣,LoadCursor (NULL, IDC_ARROW)就是調(diào)用預(yù)定義的箭型鼠標(biāo)指針。hbrBackground域用來(lái)定義窗口的背景畫(huà)刷顏色,也就是該窗口的背景色。調(diào)用GetStockObject (WHITE_BRUSH)可以獲得系統(tǒng)內(nèi)部預(yù)先定義好的白色畫(huà)刷作為窗口的背景色。這里L(fēng)oadIcon、LoadCursor、GetStockObject等都是Windows的API函數(shù),在程序中可直接 調(diào)用。lpszMenuName域的值若為NULL,則表示該窗口將沒(méi)有菜單。否則,需要指定表示菜單資源的字符串。 WNDCLASS結(jié)構(gòu)的最后一個(gè)域lpszClassName是要給這個(gè)窗口類(lèi)起一個(gè)唯一的名稱(chēng),因?yàn)閃indows操作系統(tǒng)中有許許多多的窗口類(lèi),必須用一個(gè)獨(dú)一無(wú)二的名稱(chēng)來(lái)代表它們。通常,可以用程序名來(lái)直接作為這個(gè)窗口類(lèi)的名稱(chēng),它在創(chuàng)建窗口的CreateWindow函數(shù)中用到。 創(chuàng)建和顯示窗口當(dāng)窗口類(lèi)注冊(cè)完畢之后,并不會(huì)有窗口顯示出來(lái),因?yàn)樽?cè)的過(guò)程僅僅是為創(chuàng)建窗口所做的準(zhǔn)備工作。實(shí)際創(chuàng)建一個(gè)窗口是通過(guò)調(diào)用CreateWindow函數(shù)完成的。窗口類(lèi)中已經(jīng)預(yù)先定義了窗口的一般屬性,而CreateWindow中的參數(shù)可以進(jìn)一步指定一個(gè)窗口的更具體的屬性,是用下列調(diào)用CreateWindow函數(shù)的代碼來(lái)創(chuàng)建窗 口的: hwnd = CreateWindow (HelloWin, // 窗口類(lèi)名,要與注冊(cè)時(shí)指定的相同 我的窗口, // 窗口標(biāo)題 WS_OVERLAPPEDWINDOW, // 窗口樣式 CW_USEDEFAULT, // 窗口最初的 x 位置 CW_USEDEFAULT, // 窗口最初的 y 位置 480, // 窗口最初的 x 大小 320, // 窗口最初的 y 大小 NULL, // 父窗口句柄 NULL, // 窗口菜單句柄 hInstance, // 應(yīng)用程序?qū)嵗浔? NULL) 。 // 創(chuàng)建窗口的參數(shù)CreateWindow函數(shù)的第一個(gè)參數(shù)是創(chuàng)建該窗口所使用的窗口類(lèi)的名稱(chēng),注意這個(gè)名稱(chēng)應(yīng)與前面所注冊(cè)的窗口類(lèi)的名稱(chēng)一致。第三個(gè)參數(shù)為創(chuàng)建的窗口的風(fēng)格,它們通常是一些預(yù)定義風(fēng)格的“|”組合。其中,WS_OVERLAPPEDWINDOW表示創(chuàng)建一個(gè)層疊式窗口,有邊框、標(biāo)題欄、系統(tǒng)菜單、最大化和最小化按鈕等。CreateWindow函數(shù)后面的參數(shù)中,仍用到了該應(yīng)用程序的實(shí)例句柄hInstance。如果窗口創(chuàng)建成功,返回值是新窗口的句柄,否則返回NULL。窗口創(chuàng)建后,并不會(huì)在屏幕上顯示出來(lái)。要能真正把窗口顯示在屏幕上,還得使用ShowWindow函數(shù),其原型如下: BOOL ShowWindow( HWND hWnd, int nCmdShow )。 其中,參數(shù)hWnd指定要顯示得窗口的句柄,nCmdShow表示窗口的顯示方式,這里指定為從WinMain函數(shù)的nCmdShow所傳遞而來(lái)的值。由于ShowWindow函數(shù)的執(zhí)行優(yōu)先級(jí)不高,所以當(dāng)系統(tǒng)正忙著執(zhí)行其他的任務(wù)時(shí),窗口不會(huì)立即顯示出來(lái),此時(shí),調(diào)用UpdateWindow函數(shù)以可以立即顯示窗口。同時(shí),它將會(huì)給窗口過(guò)程發(fā)出WM_PAINT消息。 消息和消息處理1.消息循環(huán)在Win32編程中,消息循環(huán)是相當(dāng)重要的一個(gè)概念,看似很難,但使用起來(lái)卻是非常簡(jiǎn)單。在WinMain函數(shù)的最后,有下列代碼:while (GetMessage (amp。msg, NULL, 0, 0)) { TranslateMessage (amp。msg) 。 // 轉(zhuǎn)換某些鍵盤(pán)消息 DispatchMessage (amp。msg) 。 // 將消息發(fā)送給窗口過(guò)程,這里是WndProc}Windows應(yīng)用程序可以接收以各種形式輸入的信息,這包括鍵盤(pán)、鼠標(biāo)動(dòng)作、計(jì)時(shí)器產(chǎn)生的消息,也可以是其他應(yīng)用程序發(fā)來(lái)的消息等。Windows系統(tǒng)自動(dòng)監(jiān)控所有的輸入設(shè)備,并將其消息放入該應(yīng)用程序的消息隊(duì)列中。GetMessage函數(shù)就是用來(lái)從應(yīng)用程序的消息隊(duì)列中按照先進(jìn)先出的原則將這些消息一個(gè)個(gè)地取出來(lái),放進(jìn)一個(gè)MSG結(jié)構(gòu)中去。它的原型如下:BOOL GetMessage( LPMSG lpMsg, // 指向一個(gè)MSG結(jié)構(gòu)的指針,用來(lái)保存消息 HWND hWnd, // 指定哪個(gè)窗口的消息將被獲取 UINT wMsgFilterMin, // 指定獲取的主消息值的最小值 UINT wMsgFilterMax // 指定獲取的主消息值的最大值)。GetMessage函數(shù)用來(lái)將獲取的消息復(fù)制到一個(gè)MSG結(jié)構(gòu)中。如果隊(duì)列中沒(méi)有任何消息,該函數(shù)將一直空閑直到隊(duì)列中又有消息時(shí)再返回。如果隊(duì)列中已有消息,它將取出一個(gè)后返回。MSG結(jié)構(gòu)包含Windows消息的完整信息,其定義如下:typedef struct { HWND hwnd。 // 消息發(fā)向的窗口的句柄 UINT message。 // 主消息的標(biāo)識(shí)值 WPARAM wParam。 // 附消息值,其具體含義依賴(lài)于主消息值 LPARAM lParam。 // 附消息值,其具體含義依賴(lài)于主消息值 DWORD time。 // 消息放入消息隊(duì)列中的時(shí)間 POINT pt。 // 消息放入消息隊(duì)列時(shí)的鼠標(biāo)坐標(biāo)} MSG, *PMSG。上述結(jié)構(gòu)中的主消息表明了消息的類(lèi)型,例如,是鍵盤(pán)消息還是鼠標(biāo)消息等,附消息的含義則依賴(lài)于主消息值,例如,如果主消息是鍵盤(pán)消息,那么附消息中則存儲(chǔ)了是鍵盤(pán)的哪個(gè)具體鍵的信息。事實(shí)上,GetMessage函數(shù)還可以過(guò)濾消息,它的第二個(gè)參數(shù)是用來(lái)指定從哪個(gè)窗口的消息隊(duì)列中獲取消息,其他窗口的消息將被過(guò)濾掉。如果該參數(shù)為NULL,則GetMessage從該應(yīng)用程序線程的所有窗口的消息隊(duì)列中獲取消息。第三個(gè)和第四個(gè)參數(shù)是用來(lái)過(guò)濾MSG結(jié)構(gòu)中主消息值的,主消息值在wMsgFilterMin和wMsgFilterMax之外的消息將被過(guò)濾掉。如果這兩個(gè)參數(shù)為0,則表示接收所有消息。特別地,當(dāng)且僅當(dāng)GetMessage函數(shù)在獲取到WM_QUIT消息后,將返回0值,于是程序退出消息循環(huán)。TranslateMessage函數(shù)的作用是把虛擬鍵消息轉(zhuǎn)換到字符消息,以滿(mǎn)足鍵盤(pán)輸入的需要。DispatchMessage函數(shù)所完成的工作是把當(dāng)前的消息發(fā)送到對(duì)應(yīng)的窗口過(guò)程中去。2.消息處理用于消息處理的函數(shù)又叫窗口過(guò)程,在這個(gè)函數(shù)中,不同的消息將用switch語(yǔ)句分配到不同的處理程序中去。
點(diǎn)擊復(fù)制文檔內(nèi)容
黨政相關(guān)相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖片鄂ICP備17016276號(hào)-1