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

正文內(nèi)容

vc入門教程(windows入門程序詳解)(編輯修改稿)

2025-07-23 00:11 本頁面
 

【文章內(nèi)容簡介】 ows至少有一個(gè)回調(diào)函數(shù)。回調(diào)函數(shù)WndProc在哪里定義的呢,請(qǐng)看這個(gè)語句: = WndProc 。將在第七講里詳談.實(shí)例:在Windows中,能多次同時(shí)運(yùn)行同一個(gè)應(yīng)用程序,即運(yùn)行多個(gè)副本,每個(gè)副本叫做一個(gè)“實(shí)例”?,F(xiàn)在讓我們把這個(gè)程序?qū)訉觿兘忾_來,我把自己的理解慢慢地展示給你:我把這個(gè)程序支解為四塊一)建立,注冊(cè)窗口類.(二)創(chuàng)建窗口.(三)顯示和更新窗口.(四)創(chuàng)建消息循環(huán).(五)終止應(yīng)用程序.(六)窗口過程.(七)處理消息.(一)注冊(cè)窗口類:(1)建立窗口類WinMain()是程序的入口,它相當(dāng)于一個(gè)中介人的角色,把應(yīng)用程序(指小窗口).窗口種類是定義窗口屬性的模板,這些屬性包括窗口式樣,鼠標(biāo)形狀,菜單等等,,必須向Windows登記.建立窗口類就是用WNDCLASS結(jié)構(gòu)定義一個(gè)結(jié)構(gòu)變量,在這個(gè)程序中就是指 WNDCLASS wc 。然后用自己設(shè)計(jì)的窗口屬性的信息填充結(jié)構(gòu)變量wc的域.要WinMain登記窗口類,首先要填寫一個(gè)WNDCLASS結(jié)構(gòu),其定義如下所示:   typedef struct _WNDCLASSA   {     UINT style 。         //窗口類風(fēng)格     WNDPROC lpfnWndProc 。    //指向窗口過程函數(shù)的指針     int cbClsExtra 。       //窗口類附加數(shù)據(jù)     int cbWndExtra ?!     ?//窗口附加數(shù)據(jù)     HINSTANCE hInstance 。    //擁有窗口類的實(shí)例句柄     HICON hIcon 。        //最小窗口圖標(biāo)     HCURSOR hCursor 。      //窗口內(nèi)使用的光標(biāo)     HBRUSH hbrBackground ?!  ?/用來著色窗口背景的刷子     LPCSTR lpszMenuName ?!  ?//指向菜單資源名的指針     LPCSTR lpszClassName ?!  ?/ 指向窗口類名的指針   },把光標(biāo)定位在WNDCLASS上,按F1,即可啟動(dòng)MSDN,.(2)注冊(cè)窗口類(1)第一個(gè)參數(shù):成員style控制窗口的某些重要特性, = CS_HREDRAW | CS_VREDRAW,它表示當(dāng)窗口的縱橫坐標(biāo)發(fā)生變化時(shí)要重畫整個(gè)窗口。你看:無論你怎樣拉動(dòng)窗口的大小,那行字都會(huì)停留在窗口的正中部,而假如把這個(gè)參數(shù)設(shè)為0的話,當(dāng)改動(dòng)窗口的大小時(shí),那行字則不一定處于中部了。(2)第二個(gè)參數(shù):lpfnWndProc包括一個(gè)指向該窗口類的消息處理函數(shù)的指針,此函數(shù)稱為窗口過程函數(shù)。它將接收Windows發(fā)送給窗口的消息,并執(zhí)行相應(yīng)的任務(wù)。其原型為:long FAR PASCAL WndProc(HWND ,unsigned,WORD,LONG)。并且必須在??於x中回調(diào)它。WndProc是一個(gè)回調(diào)函數(shù)(見第五節(jié)),如果暫時(shí)無法理解這個(gè)模糊的概念意味著什么,可先放過,等到講消息循環(huán)時(shí)再詳談。(3)第三,四個(gè)參數(shù):cbWndExtra域指定用本窗口類建立的所有窗口結(jié)構(gòu)分配的額外字節(jié)數(shù)。當(dāng)有兩個(gè)以上的窗口屬于同一窗口類時(shí),如果想將不同的數(shù)據(jù)和每個(gè)窗口分別相對(duì)應(yīng)。則使用該域很有用。這般來講,你只要把它們?cè)O(shè)為0就行了,不必過多考慮。(4)第五個(gè)參數(shù):hInstance域標(biāo)識(shí)應(yīng)用程序的實(shí)例hInstance,當(dāng)然,實(shí)例名是可以改變的。 = hInstance 。這一成員可使Windows連接到正確的程序。(5)第六個(gè)參數(shù):成員hIcon被設(shè)置成應(yīng)用程序所使用圖標(biāo)的句柄,圖標(biāo)是將應(yīng)用程序最小化時(shí)出現(xiàn)在任務(wù)欄里的的圖標(biāo),用以表示程序仍駐留在內(nèi)存中。Windows提供了一些默認(rèn)圖標(biāo),我們也可定義自己的圖標(biāo),VC里面專有一個(gè)制作圖標(biāo)的工具。(6)第七個(gè)參數(shù): hCursor域定義該窗口產(chǎn)生的光標(biāo)形狀。LoadCursor可返回固有光標(biāo)句柄或者應(yīng)用程序定義的光標(biāo)句柄。IDC_ARROW表示箭頭光標(biāo).(7)第八個(gè)參數(shù):,函數(shù)GetStockObject返回窗口的顏色,本程序中返回的是白色,(8)第九個(gè)參數(shù):lpszMenuName用來指定菜單名,本程序中沒有定義菜單,所以為NULL。(9)第十個(gè)參數(shù):lpszClassName指定了本窗口的類名。當(dāng)對(duì)WNDCLASS結(jié)構(gòu)域一一賦值后,就可注冊(cè)窗口類了,在創(chuàng)建窗口之前,是必須要注冊(cè)窗口類的,注冊(cè)窗口類用的API函數(shù)是RegisterClass,注冊(cè)失敗的話,就會(huì)出現(xiàn)一個(gè)對(duì)話框如程序所示,函數(shù)RegisterClass返回0值,也只能返回0值,因?yàn)樽?cè)不成功,程序已經(jīng)不能再進(jìn)行下去了。在本程序中注冊(cè)窗口類如下:if (!RegisterClass (amp。wc)) {       MessageBox (NULL, TEXT (This program requires Windows NT!),               szAppName,MB_ICONERROR) ?!      eturn 0 ?!           ?}第二講 消息機(jī)制(二)創(chuàng)建窗口注冊(cè)窗口類后,就可以創(chuàng)建窗口了,本程序中創(chuàng)建窗口的有關(guān)語句如下: hwnd = CreateWindow (szAppName,   // window class nameTEXT (歡迎你的到來!),    // window captionWS_OVERLAPPEDWINDOW, // window styleCW_USEDEFAULT, // initial x positionCW_USEDEFAULT, // initial y positionCW_USEDEFAULT, // initial x sizeCW_USEDEFAULT, // initial y sizeNULL, // parent window handleNULL, // window menu handlehInstance, // program instance handleNULL) 。 // creation parameters參數(shù)1:登記的窗口類名,這個(gè)類名剛才咱們?cè)谧?cè)窗口時(shí)已經(jīng)定義過了。參數(shù)2:用來表明窗口的標(biāo)題。參數(shù)3: 用來表明窗口的風(fēng)格,如有無最大化,最小化按紐啊什么的。參數(shù)4,5: 用來表明程序運(yùn)行后窗口在屏幕中的坐標(biāo)值。參數(shù)6,7: 用來表明窗口初始化時(shí)(即程序初運(yùn)行時(shí))窗口的大小,即長度與寬度。參數(shù)8: 在創(chuàng)建窗口時(shí)可以指定其父窗口,這里沒有父窗口則參數(shù)值為0。參數(shù)9: 用以指明窗口的菜單,菜單以后會(huì)講,這里暫時(shí)為0。最后一個(gè)參數(shù)是附加數(shù)據(jù),一般都是0。CreateWindow()的返回值是已經(jīng)創(chuàng)建的窗口的句柄,應(yīng)用程序使用這個(gè)句柄來引用該窗口。如果返回值為0,就應(yīng)該終止該程序,因?yàn)榭赡苣硞€(gè)地方出錯(cuò)了。如果一個(gè)程序創(chuàng)建了多個(gè)窗口,則每個(gè)窗口都有各自不同的句柄.(三)顯示和更新窗口API函數(shù)CreateWindow創(chuàng)建完窗口后,要想把它顯示出現(xiàn),:ShowWindow (hwnd, iCmdShow)。 其第一個(gè)參數(shù)是窗口句柄,告訴ShowWindow()顯示哪一個(gè)窗口,而第二個(gè)參數(shù)則告訴它如何顯示這個(gè)窗口:最小化(SW_MINIMIZE),普通(SW_SHOWNORMAL),還是最大化(SW_SHOWMAXIMIZED)。WinMain在創(chuàng)建完窗口后就調(diào)用ShowWindow函數(shù),并把iCmdShow參數(shù)傳送給這個(gè)窗口。你可把iCmdShow改變?yōu)檫@些參數(shù)試試。WinMain()調(diào)用完ShowWindow后,還需要調(diào)用函數(shù)UpdateWindow,最終把窗口顯示了出來。調(diào)用函數(shù)UpdateWindow將產(chǎn)生一個(gè)WM_PAINT消息,這個(gè)消息將使窗口重畫,即使窗口得到更新.(四)創(chuàng)建消息循環(huán)主窗口顯示出來了,WinMain就開始處理消息了,怎么做的呢?Windows為每個(gè)正在運(yùn)行的應(yīng)用程序都保持一個(gè)消息隊(duì)列。當(dāng)你按下鼠標(biāo)或者鍵盤時(shí),Windows并不是把這個(gè)輸入事件直接送給應(yīng)用程序,而是將輸入的事件先翻譯成一個(gè)消息,然后把這個(gè)消息放入到這個(gè)應(yīng)用程序的消息隊(duì)列中去。應(yīng)用程序又是怎么來接收這
點(diǎn)擊復(fù)制文檔內(nèi)容
物理相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號(hào)-1