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

正文內(nèi)容

用c語言做win32程序(c語言設(shè)計(jì)qq登錄界面)-文庫(kù)吧資料

2025-08-05 03:14本頁(yè)面
  

【正文】 LIENTEDGE,cName,我的窗口我喜歡,WS_OVERLAPPEDWINDOW, 200,100,600,400,NULL,NULL,hInstance,NULL)。 RegisterClassEx(amp。 = NULL。 =(LPSTR)cName。//當(dāng)前程序的句柄,hInstance是有系統(tǒng)給傳遞的 = WinProc。//不設(shè)置 = NULL。//通過函數(shù)來設(shè)置一個(gè)白色的背景,這里大家設(shè)置為NULL看看,會(huì)很有趣的 = LoadCursor(hInstance,MAKEINTRESOURCE(CUR))。 = sizeof(WNDCLASSEX)。 = 0。 HWND hWnd。}//主函數(shù)int WINAPI WinMain(HINSTANCE hInstance,HINSTANCE hPrevInstance,LPSTR lpCmdLine,int nShowCmd){ char *cName = myWindow。//退出消息隊(duì)列,至于什么是消息隊(duì)列,下節(jié)說 return 0。 break。 EndPaint(hWnd,amp。rect,DT_SINGLELINE|DT_CENTER|DT_VCENTER)。 //DrawText就是Windows用來“畫字”的筆了,DT_*之類是指文字的樣式,看字面意思也能看懂的 //有多少樣式呢,可以查看這里 //本例中是單線、水平居中和豎直居中。 //GetClientRect用來獲取窗口所在客戶區(qū)的位置大小信息 GetClientRect(hWnd,amp。//回調(diào)函數(shù)LRESULT WINAPI WinProc(HWND hWnd,UINT Msg,WPARAM wParam,LPARAM lParam){ switch(Msg)//處理消息過程,什么是消息,下節(jié)再講 { case WM_PAINT: //BginPaint做些繪畫的開始工作,填充PAINSTURCT結(jié)構(gòu),返回設(shè)備上下文(暫時(shí)不用理解)句柄 hDC=BeginPaint(hWnd,amp。RECT rect。下面就接著上節(jié)修改的代碼繼續(xù)修改,必要的注釋和改變的地方我會(huì)標(biāo)明的include define CUR 0x1000 //預(yù)定義光標(biāo)的idHDC hDC。其實(shí)Windows在屏幕上輸出文字和圖像是一樣的,都是在屏幕上畫,和我們?cè)诩埳袭媹D和寫字是一樣的,都是用筆來畫的,只不過用的筆不一樣而已,如果牽強(qiáng)用一支筆去做所有的工作,效果并不會(huì)理想的。Windows有時(shí)真是個(gè)細(xì)心的家伙,把窗口創(chuàng)建到顯示的一瞬間又給劃分了很多小的過程。窗口過程返回后DispatchMessage函數(shù)才返回,然后開始新一輪的消息循環(huán)。菊與刀非鍵盤消息TranslateMessage則不做處理。在windows中GetMessage函數(shù)從消息隊(duì)列種取得消息,填寫好MSG結(jié)構(gòu)并返回,如果獲取的消息是WM_QUIT消息,則退出循環(huán)。Msg)。Msg)。下面先看下前兩節(jié)種用到的消息循環(huán)代碼: while(GetMessage(amp?,F(xiàn)在大家再回去看看那個(gè)程序代碼和注釋,相信應(yīng)該能明白些了吧。而C語言本身就是面向過程的語言,所以這一過程可以用C語言更好地表現(xiàn)出來,這也是我用C而不用C++的原因之一。學(xué)過JAVA的人知道,JAVA中有事件適配器,來捕獲相應(yīng)的事件,并交給相應(yīng)的處理方法進(jìn)行處理。學(xué)過VB的人知道,VB中的程序是事件驅(qū)動(dòng)的,因?yàn)橐话愣际前l(fā)生時(shí),調(diào)用相應(yīng)的事件處理函數(shù),所以整個(gè)處理過程都好像是事件引發(fā)的一樣。其實(shí)什么是消息呢,說白了就是我們點(diǎn)鼠標(biāo)擊鍵盤而程序發(fā)生反應(yīng),消息是一種數(shù)據(jù),就是我們點(diǎn)鼠標(biāo)擊鍵盤后,系統(tǒng)把我們的操作封裝到數(shù)據(jù)中,然后發(fā)送給程序,讓程序?qū)ξ覀凕c(diǎn) 鼠標(biāo)擊鍵盤的動(dòng)作做出反應(yīng),當(dāng)然程序也可以置之不理。希望大家繼續(xù)努力! 在窗口上寫上“Hello World”這一節(jié)我們乘勝追擊,來繼續(xù)深入學(xué)習(xí)下,學(xué)習(xí)窗口處理時(shí)間的東東??傊?,要想寫好程序,就得多練,編譯連接過程中很容易發(fā)現(xiàn)錯(cuò)誤的所在,那么這時(shí)你解決一個(gè)錯(cuò)誤你就提高一次,解決的錯(cuò)誤越多越快,你就學(xué)的越多越快。這些東西都比較接近系統(tǒng)了,所以學(xué)了之后,你對(duì)Windows系統(tǒng)也會(huì)有很深的了解的。網(wǎng)絡(luò)游戲的界面很好看,也只不過是資源文件用的比較多而已,而且計(jì)算量很大,所以網(wǎng)游總是很占內(nèi)存的,因?yàn)閳D片、聲音文件都很大,而且變換比較多、快,就比較占用資源了。看到了吧,當(dāng)鼠標(biāo)移入窗口的時(shí)候,光標(biāo)就變成了那個(gè)手型圖案了, 這和魔域的是一樣的。//分派消息 } return 。//翻譯消息 DispatchMessage(amp。Msg,NULL,0,0)) { TranslateMessage(amp。//顯示窗口 UpdateWindow(hWnd)。 return 0。//創(chuàng)建窗口,窗口標(biāo)題為我的窗口我喜歡 if(hWnd == NULL) {//容錯(cuò)處理 MessageBox(NULL,There39。wc)。//目錄名,不設(shè)置 = CS_HREDRAW | CS_VREDRAW。//窗口類的名字。//窗口處理過程的回調(diào)函數(shù)。//不設(shè)置 = hInstance。//這里改了,來載入光標(biāo)資源 = NULL。 = (HBRUSH)GetStockObject(WHITE_BRUSH)。 = 0。 MSG Msg。 WNDCLASSEX wc。//退出函數(shù) } return DefWindowProc(hWnd,Msg,wParam,lParam)。include define CUR 0x1000 //預(yù)定義光標(biāo)的id//回調(diào)函數(shù)LRESULT WINAPI WinProc(HWND hWnd,UINT Msg,WPARAM wParam,LPARAM lParam){ switch(Msg)//處理消息過程,什么是消息,下節(jié)再講 { case WM_DESTROY://響應(yīng)鼠標(biāo)單擊關(guān)閉按鈕事件 PostQuitMessage(0)。// written by xhk include //資源文件要用到的圖文件define CUR 0x1000 //定義資源的ID,為整型idCUR CURSOR //用到的光標(biāo)圖案寫完后,在命令提示符下進(jìn)入目錄,輸入rc ,回車,就是編譯生成的二進(jìn)制資源件。光標(biāo)的圖片格式有兩中cur和ani的。今天我們只是修改鼠標(biāo)的指針,所以用到的資源,只有鼠標(biāo)的光標(biāo)資源而已。程序沒有進(jìn)入內(nèi)存運(yùn)行的時(shí)候,我們就叫它可執(zhí)行文件吧,在磁盤保存的時(shí)候,并不只是保存了程序運(yùn)行的代碼部分(即cpu指令部分),還有一些圖片、字符、按鈕、圖標(biāo)并不是在代碼段的。在寫代碼之前,我們還是先來看下先驅(qū)知識(shí),這里要說的就是上節(jié)說資源了,當(dāng)時(shí)大家看了可能并不知道什么是資源,這里就詳細(xì)說一下。網(wǎng)游我就只玩過魔域,所以就以魔域?yàn)槔?,魔域中的鼠?biāo)是這樣的。 鼠標(biāo)指針特效大家在都玩過網(wǎng)絡(luò)游戲吧,里面的界面都是很吸引人的,好的界面的確能給人以美的感受。其實(shí)寫這些程序很多東西都不用去記的想WNDCLASSEX結(jié)構(gòu)的成員及成員作用,這些都不用去死記,只要知道有這么個(gè)東西,到時(shí)時(shí)再查就可以了,編程用到的函數(shù)、結(jié)構(gòu)體那么多,誰想記呀。想你看完后也許會(huì)頭昏腦脹的,沒有再看下去的信心的,但是估計(jì)當(dāng)你把我的代碼復(fù)制到VC中編譯運(yùn)行后,看到一個(gè)可愛的窗口時(shí),肯定又會(huì)重新點(diǎn)燃你心中學(xué)習(xí)的熱情吧,因?yàn)槟阋呀?jīng)看到了成功,看到了成就,一種成就感猶然自心中生,自信也提起來了,這比什么都好,人嘛就得對(duì)自己充滿信心的。}編譯運(yùn)行后,可以看到一個(gè)白色背景的窗口出來了。Msg)。Msg)。 //下面是對(duì)消息的循環(huán)處理,大家先不必管這些,下節(jié)課我會(huì)細(xì)說的 while(GetMessage(amp。 } ShowWindow(hWnd,nShowCmd)。s an Error,Error Title,MB_ICONEXCLAMATION|MB_OK)。//在系統(tǒng)中注冊(cè) hWnd = CreateWindowEx(WS_EX_CLIENTEDGE,cName,我的窗口我喜歡,WS_OVERLAPPEDWINDOW, 200,100,600,400,NULL,NULL,hInstance,NULL)。 RegisterClassEx(amp。 = NULL。 =(LPSTR)cName。//當(dāng)前程序的句柄,hInstance是有系統(tǒng)給傳遞的 = WinProc。//不設(shè)置 = NULL。//通過函數(shù)來設(shè)置一個(gè)白色的背景,這里大家設(shè)置為NULL看看,會(huì)很有趣的 = NULL。 = sizeof(WNDCLASSEX)。 = 0。 HWND hWnd。}//主函數(shù)int WINAPI WinMain(HINSTANCE hInstance,HINSTANCE hPrevInstance,LPSTR lpCmdLine,int nShowCmd){ char *cName = myWindow。//退出消息隊(duì)列,至于什么是消息隊(duì)列,下節(jié)說 return 0。這T他媽容易了吧。說難其實(shí)也不難,創(chuàng)建一個(gè)窗口程序也就三步:一注冊(cè),二創(chuàng)建,三顯示。經(jīng)過這三步后,一個(gè)窗口就實(shí)現(xiàn)了,就創(chuàng)建了出來,難不,也真夠難的,Windows想的正周到,把創(chuàng)建過程的每一個(gè)細(xì)節(jié)都給想到了,每毫秒可能發(fā)生的事情都想到了,難怪Windows那么貴,還不開源。  函數(shù)參數(shù):  hWnd 一個(gè)要更新的窗體的句柄  函數(shù)返回值:  如果函數(shù)調(diào)用成功,返回值為非零值。如果那個(gè)窗體的無效區(qū)域沒有,就不發(fā)送重繪消息 WM_PAINT 了 。 第二個(gè)函數(shù)就是UpdateWindow(); 函數(shù)原型:  BOOL UpdateWindow(HWND hWnd)。nCmdShow //可見狀態(tài) )。 HWNDShowWindow(3. 顯示窗口顯示窗口就是更簡(jiǎn)單的事情了。lpParam:指向一個(gè)值的指針,該值傳遞給窗口 WM_CREATE消息返回值:如果函數(shù)成功,返回值為新窗口的句柄:如果函數(shù)失敗,返回值為NULL。hMenu:菜單句柄,或依據(jù)窗口風(fēng)格指明一個(gè)子窗口標(biāo)識(shí)。nWidth:窗口的寬度。x:窗口的橫坐標(biāo)。dwStyle:指定創(chuàng)建窗口的風(fēng)格。lpWindowName:指向一個(gè)指定窗口名的空結(jié)束的字符串指針?! ∮捎谄湎碌耐瑢俑蝗找驯恢禺嫞摯翱谑峭该鞯?。使用函數(shù)SetWindowPos來設(shè)置和移去這個(gè)風(fēng)格。WS_EX_STATICEDGE:為不接受用戶輸入的項(xiàng)創(chuàng)建一個(gè)3一維邊界風(fēng)格  WS_EX_TOOLWIDOW:創(chuàng)建工具窗口,即窗口是一個(gè)游動(dòng)的工具條。這是缺省設(shè)置的。 WS_EX_PALETTEWINDOW:WS_EX_WINDOWEDGE, WS_EX_TOOLWINDOW和WS_WX_TOPMOST風(fēng)格的組合WS_EX_RIGHT:窗口具有普通的右對(duì)齊屬性,這依賴于窗口類?!? WS_EX_NOPATARENTNOTIFY:指明以這個(gè)風(fēng)格創(chuàng)建的窗口在被創(chuàng)建和銷毀時(shí)不向父窗口發(fā)送WM_PARENTNOTFY消息。這是缺省設(shè)置的。若是其他語言,在該風(fēng)格被忽略并且不作為錯(cuò)誤處理?! ? WS_EX_LEFT:窗口具有左對(duì)齊屬性,這是缺省設(shè)置的。 WS_EX_CONTROLPARENT:允許用戶使用Tab鍵在窗口的子窗口間搜索?! ? WS_EX_CLIENTEDGE:指定窗口有一個(gè)帶陰影的邊界。該參數(shù)可以是下列值: WS_EX_ACCEPTFILES:指定以該風(fēng)格創(chuàng)建的窗口接受一個(gè)拖拽文件。lpParam)。HINSTANCEhMenu,HWNDnHeight,inty,intdwStyle,LPCTSTRlpClassName,DWORDCreateWindowEx(2. 創(chuàng)建窗口這一步很簡(jiǎn)單,就是利用CreateWindowEx()函數(shù)來創(chuàng)建就是了。wndclassex)來注冊(cè)這個(gè)窗口類了。hIconSm 小圖標(biāo)的句柄,在任務(wù)欄顯示的圖標(biāo),可以和上面的那個(gè)一樣。如果它的值為NULL,那么該類創(chuàng)建的窗口將都沒有默認(rèn)的菜單。 COLOR_WINDOWTEXT lpszMenuName 指向一個(gè)以NULL結(jié)尾的字符床,同目錄資源的名字一樣。 COLOR_WINDOW COLOR_MENUTEXT COLOR_INACTIVECAPTION COLOR_HIGHLIGHTTEXT COLOR_GRAYTEXT COLOR_BTNTEXT COLOR_BTNFACE COLOR_APPWORKSPACE COLOR_ACTIVEBORDER hCursor 窗口類的鼠標(biāo)樣式,為鼠標(biāo)樣式資源的句柄,如果設(shè)置為NULL,系統(tǒng)提供一個(gè)默認(rèn)的鼠標(biāo)樣式。cbClsExtra 為窗口類的額外信息做記錄,系統(tǒng)初始化為0。 可以有以下的值lpfnWndProc 指向窗口處理函數(shù)(回調(diào)函數(shù))。成員介紹 cbSize
點(diǎn)擊復(fù)制文檔內(nèi)容
語文相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1