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

正文內(nèi)容

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

2025-07-23 00:11 本頁面
 

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