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

正文內(nèi)容

用c語言做win32程序(c語言設(shè)計qq登錄界面)-在線瀏覽

2024-09-09 03:14本頁面
  

【正文】 lassName 窗口類的名字,字符串類型。定義一個WNDCLASSEX類型變量后,在給變量成員初始化后,我們就可以用RegisterWindowEx(amp。這個注冊過程,就和我們平常創(chuàng)建一個項目一樣,都要先注冊才能創(chuàng)建 。CreateWindowEx函數(shù)的原型如下:HWNDdwExStyle,LPCTSTRlpWindowName,DWORDx,intnWidth,inthWndParent,HMENUhInstance,LPVOID 參數(shù)說明 dwExStyle:指定窗口的擴展風格?! ? WS_EX_APPWINDOW:當窗口可見時,將一個頂層窗口放置到任務(wù)條上?! ? WS_EX_CONTEXTHELP:在窗口的標題條包含一個問號標志?! ? WS_EX_DLGMODALFRAME:創(chuàng)建一個帶雙邊的窗口;該窗口可以在dwStyle中指定WS_CAPTION風格來創(chuàng)建一個標題欄?! ? WS_EX_LEFTSCROLLBAR:如果外殼語言是如Hebrew,Arabic,或其他支持reading order alignment的語言,則標題條(如果存在)則在客戶區(qū)的左部分?! ? WS_EX_LTRREADING:窗口文本以LEFT到RIGHT(自左向右)屬性的順序顯示?! ? WS_EX_MDICHILD:創(chuàng)建一個MD子窗口。WS_EX_OVERLAPPED:WS_EX_CLIENTEDGEWS_EX_WINDOWEDGE的組合。WS_EX_RIGHTSCROLLBAR:垂直滾動條在窗口的右邊界?! ? WS_EX_RTLREADING:如果外殼語言是如Hebrew,Arabic,或其他支持讀順序?qū)R(reading order alignment)的語言,則窗口文本是一自左向右)RIGHT到LEFT順序的讀出順序。WS_EX_TOPMOST:指明以該風格創(chuàng)建的窗口應(yīng)放置在所有非最高層窗口的上面并且停留在其L,即使窗口未被激活?! ? WS_EX_TRANSPARENT:指定以這個風格創(chuàng)建的窗口在窗口下的同屬窗口已重畫時,該窗口才可以重畫。IpClassName: 窗口類的名字。其實就是窗口的名字。該參數(shù)可以是下列窗口風格的組合再加上說明部分的控制風格。y:窗口的豎坐標。nHeight:窗口的高度。hlnstance:與窗口相關(guān)聯(lián)的模塊事例的句柄。若想獲得更多錯誤信息,請調(diào)用GetLastError函數(shù)。連個函數(shù)輕松搞定,第一個函數(shù)就是ShowWindow(),原型如下: BOOLhWnd,//當前的窗口句柄int 因為CreateWindowEx函數(shù)創(chuàng)建的窗口是在內(nèi)存中的,并沒有顯示到顯示器上,用ShowWindow()函數(shù),設(shè)定窗口的可見狀態(tài),并把數(shù)據(jù)從內(nèi)存中移動到顯卡上,以便顯示?! ∶枋觯骸 ∵@個 UpdateWindow 函數(shù)通過發(fā)送重繪消息 WM_PAINT 給目標窗體來更新目標窗體客戶區(qū)的無效區(qū)域。注意了,這個 API 函數(shù)是直接發(fā)送消息 WM_PAINT 給目標窗體的,沒有進入過消息隊列。如果函數(shù)調(diào)用不成功,返回值為零。也算是人間的產(chǎn)品嘛,費的心血可真不少呀。很容易就ok了。原來就是這些的,我想我已經(jīng)說的挺明白的了,如果你有什么疑惑,可以給我發(fā)郵件(cangsanbujin)下面我們就按照上面所說的來編程實現(xiàn)一個窗口:include //回調(diào)函數(shù)LRESULT WINAPI WinProc(HWND hWnd,UINT Msg,WPARAM wParam,LPARAM lParam){ switch(Msg)//處理消息過程,什么是消息,下節(jié)再講 { case WM_DESTROY://響應(yīng)鼠標單擊關(guān)閉按鈕事件 PostQuitMessage(0)。//退出函數(shù) } return DefWindowProc(hWnd,Msg,wParam,lParam)。 WNDCLASSEX wc。 MSG Msg。 = 0。 = (HBRUSH)GetStockObject(WHITE_BRUSH)。//不設(shè)置 = NULL。//不設(shè)置 = hInstance。//窗口處理過程的回調(diào)函數(shù)。//窗口類的名字。//目錄名,不設(shè)置 = CS_HREDRAW | CS_VREDRAW。wc)。//創(chuàng)建窗口,窗口標題為我的窗口我喜歡 if(hWnd == NULL) {//容錯處理 MessageBox(NULL,There39。 return 0。//顯示窗口 UpdateWindow(hWnd)。Msg,NULL,0,0)) { TranslateMessage(amp。//翻譯消息 DispatchMessage(amp。//分派消息 } return 。如下圖哎,這一節(jié),篇幅可是真有點長的,看完估計得換幾口氣吧,但是只要你看到了這些,你的水平就立馬上了一個檔次。所以大家要發(fā)揚持之以恒的精神,堅持和我一起把這段苦悶的入門過程給走完,那么編程就不再是痛苦,而是一種樂趣。這一節(jié)已經(jīng)留下了些問題,在下節(jié)介紹的,大家如果有余力的話,可以先查下資料的。而里面的鼠標并不是我們平常見到的箭頭了,而是獨具匠心的。今天我們就來實現(xiàn)讓鼠標到程序窗口上就變?yōu)槲覀兿胍膱D案。大家知道Windows程序都有圖標,鼠標有光標,窗口上有圖片、按鈕、文字等等,這些都是程序的部分,這樣就是程序的資源??蓤?zhí)行文件的大致機構(gòu)如下圖一個可執(zhí)行文件是很復雜的,這里就簡單的畫這么一個難看的圖,知道資源所在的大概位置,能理解程序的執(zhí)行部分和知道程序的圖標是從哪來的就可以了。資源的源文件是以rc為擴展名的腳本文件(仍然是C語言格式的,很簡單),最后用連接器,把res文件和obj文件連接到一起就成了我們的程序exe文件了,現(xiàn)在知道了程序編譯后要連接了吧。這個文件我在魔域的圖片庫里面找到了就復制到,當前項目目錄下。接下來就該編寫代碼了,來應(yīng)用這個資源文件,其實代碼和上節(jié)所寫代碼很相似的,只是稍微加以修改而已。//退出消息隊列,至于什么是消息隊列,下節(jié)說 return 0。}//主函數(shù)int WINAPI WinMain(HINSTANCE hInstance,HINSTANCE hPrevInstance,LPSTR lpCmdLine,int nShowCmd){ char *cName = myWindow。 HWND hWnd。 = 0。 = sizeof(WNDCLASSEX)。//通過函數(shù)來設(shè)置一個白色的背景,這里大家設(shè)置為NULL看看,會很有趣的 = LoadCursor(hInstance,MAKEINTRESOURCE(CUR))。//不設(shè)置 = NULL。//當前程序的句柄,hInstance是有系統(tǒng)給傳遞的 = WinProc。 =(LPSTR)cName。 = NULL。 RegisterClassEx(amp。//在系統(tǒng)中注冊 hWnd = CreateWindowEx(WS_EX_CLIENTEDGE,cName,我的窗口我喜歡,WS_OVERLAPPEDWINDOW, 200,100,600,400,NULL,NULL,hInstance,NULL)。s an Error,Error Title,MB_ICONEXCLAMATION|MB_OK)。 } ShowWindow(hWnd,nShowCmd)。 //下面是對消息的循環(huán)處理,大家先不必管這些,下節(jié)課我會細說的 while(GetMessage(amp。Msg)。Msg)。},,然后在命令行下進入它們所在的目錄 ,輸入命令:linke /subsystem:windows 。到現(xiàn)在想想一個特效又咋地,不還是一句一句代碼寫出來的,而特效和普通程序往往只有數(shù)據(jù)代碼不同而已。其實再好的程序,只要有了思路,就能寫出來,而且寫出來也難的,是不是,今天大家應(yīng)該會有點收獲了,都會設(shè)計個性的鼠標光標了,比起以前學習C的東西,應(yīng)該有一種層次感了吧。如果各位看官看到本節(jié)還有興趣繼續(xù)看下去,那么這對小人就是一種支持,小人在此謝過了;如果看官覺得看這些沒有半點收獲,那么請看官不要再勉強自己看下去了,免得浪費看官大人的寶貴時間,那是小人所承擔不起的。終于后來你會發(fā)現(xiàn),你太難找到錯誤了,那么恭喜你,你已經(jīng)升級為大蝦了,已經(jīng)完全脫離了菜菜級了。 也許你以前聽說過,windows系統(tǒng)是消息驅(qū)動的,可是可能根本就不知道什么消息,更不知道什么消息驅(qū)動了。Windows可是一個多任務(wù)的系統(tǒng),而且同時可能產(chǎn)生很多的擊鍵動作,那么同時可能能會有很多消息,windows系統(tǒng)為了更好的管理維護這些消息,就把這些消息加入消息隊列中,消息隊列其實就是消息的集合。這里的事件就是指我們擊鍵的動作等。其實三種語言的處理過程也都是大同小異,只不過JAVA和VB把這些處理過程給封裝了,VB尤其封裝的更厲害,所以編程者不必考慮和知道這中間的細節(jié)問題,仍然可以編寫出實用的程序,但正是由于細節(jié)的原因,用VB的開發(fā)的程序并不能高效地處理問題。通過前幾節(jié)的學習,我們知道了,在窗口程序中都有一個處理窗口的函數(shù),其實所有的消息將會得到怎樣的處理,都是此函數(shù)安排的。系統(tǒng)產(chǎn)生的消息是不斷的,但是中間是有間隔的,程序要想知道有沒有自己的消息,得不停地去問系統(tǒng),問系統(tǒng)當前有沒有屬于自己的消息,這就需要一個循環(huán)來實現(xiàn)了。Msg,NULL,0,0)) { TranslateMessage(amp。//翻譯消息 DispatchMessage(amp。//分派消息 }Windows為消息定義一種新的數(shù)據(jù)類型MSG,用于保存消息的相關(guān)信息。TranslateMessage將MSG結(jié)構(gòu)傳給Windows進行一些鍵盤消息的轉(zhuǎn)換,當有鍵盤按下或者放開時,Windows產(chǎn)生WM_KEYDOWN和WM_KEYUP或WM_SYSKEYDOWN和WM_SYSKEYUP消息(像WM_KEYDOWN這些都是微軟定義的一些宏,是什么意思,看字面意思就可以知道了),但是這些消息的參數(shù)種包含的是按鍵的掃描碼(暫時不用理會),轉(zhuǎn)換成常用的ASCII碼要經(jīng)過查表,很不方便,TranslatMessage遇到鍵盤消息則將掃描碼轉(zhuǎn)換成ASCII碼并在消息隊列種插入WM_CHAR或WM_SYSCHAR消息,參數(shù)就是轉(zhuǎn)換好的ASCII碼,如此一來,要處理鍵盤消息的話只要是處理WM_CHAR消息就好了。最后,由DispatchMessage將消息發(fā)送到窗口對應(yīng)的窗口過程去處理。想想我們這節(jié)的目的是為了在潔白的窗口種寫下“Hello World”,那么我們怎么來留下我們的筆跡呢?窗口我們是能做出來了,那么怎么在上面寫東西呢,等等,在上面寫東西的前提是不是窗口做出來之后,當初我是這么想的,后來看到別人的代碼才知道原來可以在窗口繪制的過程就繪制“Hello world”了。在繪制窗口時,Windows會產(chǎn)生WM_PAINT消息,那么我們在得到這個個消息的時候,來留下我們的筆跡,豈不就是下手最早的時刻。Windows的筆也是這樣的,不過這些筆是函數(shù)而已,畫圖和畫文字的函數(shù)不一樣而已。//HDC是指設(shè)備上下文(暫時不用管,只要能這樣用就可以了)的句柄//PAINTSTRUCT要繪制的信息,詳情請登陸().aspx//了解下就可以了,沒什么重要的東西PAINTSTRUCT paint。//RECT用來存儲窗口信息的結(jié)構(gòu),只要是窗口的坐標、寬度和高度。paint)。rect)。 DrawText(hDC,Hello World!,1,amp。 //EndPaint就是做些收尾的工作了。paint)。 case WM_DESTROY://響應(yīng)鼠標單擊關(guān)閉按鈕事件 PostQuitMessage(0)。//退出函數(shù) } return DefWindowProc(hWnd,Msg,wParam,lParam)。 WNDCLASSEX wc。 MSG Msg。 = 0。 = (HBRUSH)GetStockObject(WHITE_BRUSH)。//這里改了,來載入光標資源 = NULL。//不設(shè)置 = hInstance。//窗口處理過程的回調(diào)函數(shù)。//窗口類的名字。//目錄名,不設(shè)置 = CS_HREDRAW | CS_VREDRAW。wc)。//創(chuàng)建窗口,窗口標題為我的窗口我喜歡 if(hWnd == NULL) {//容錯處理 MessageBox(NULL,There39。 return 0。//顯示窗口 UpdateWindow(hWnd)。Msg,NULL,0,0)) { TranslateMessage(amp。//翻譯消息 DispatchMessage(amp。//分派消息 } return 。編譯連接后,大家看看預(yù)期的結(jié)果出現(xiàn)了吧,潔白的窗口上留下了我們的字跡。此言不虛的,像金山詞霸的屏幕取詞功能就是對Windows消息巧妙的運用;鍵盤記錄器(木馬)也是利用了截獲Windows消息,而記錄我們的按鍵行為,從而盜取信息的。 讓窗口響應(yīng)鼠標的事件
點擊復制文檔內(nèi)容
語文相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1