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

正文內(nèi)容

用c語言寫聊天工具,類似于qq-資料下載頁

2025-05-17 13:53本頁面
  

【正文】 。rect)。//獲取窗口的信息 SetWindowPos(hWnd,HWND_NOTOPMOST, +5, , , SWP_NOZORDER)。 return 1。}//回調(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è)備上下文(暫時不用理解)句柄 hDC=BeginPaint(hWnd,amp。paint)。 //GetClientRect用來獲取窗口所在客戶區(qū)的位置大小信息 GetClientRect(hWnd,amp。rect)。 //DrawText就是Windows用來“畫字”的筆了,DT_*之類是指文字的樣式,看字面意思也能看懂的 //有多少樣式呢,可以查看這里 //本例中是單線、水平居中和豎直居中。 DrawText(hDC,Hello World!,1,amp。rect,DT_SINGLELINE|DT_CENTER|DT_VCENTER)。 //EndPaint就是做些收尾的工作了。 EndPaint(hWnd,amp。paint)。 break。 case WM_LBUTTONUP://鼠標(biāo)左鍵松開時 MoveLeft(hWnd)。 break。 case WM_RBUTTONUP://鼠標(biāo)右鍵松開時 MoveRight(hWnd)。 break。 case WM_DESTROY://響應(yīng)鼠標(biāo)單擊關(guān)閉按鈕事件 PostQuitMessage(0)。//退出消息隊(duì)列,至于什么是消息隊(duì)列,下節(jié)說 return 0。//退出函數(shù) } return DefWindowProc(hWnd,Msg,wParam,lParam)。}//主函數(shù)int WINAPI WinMain(HINSTANCE hInstance,HINSTANCE hPrevInstance,LPSTR lpCmdLine,int nShowCmd){ char *cName = myWindow。 WNDCLASSEX wc。 HWND hWnd。 MSG Msg。 = 0。 = 0。 = sizeof(WNDCLASSEX)。 = (HBRUSH)GetStockObject(WHITE_BRUSH)。//通過函數(shù)來設(shè)置一個白色的背景,這里大家設(shè)置為NULL看看,會很有趣的 = LoadCursor(hInstance,MAKEINTRESOURCE(CUR))。//這里改了,來載入光標(biāo)資源 = NULL。//不設(shè)置 = NULL。//不設(shè)置 = hInstance。//當(dāng)前程序的句柄,hInstance是有系統(tǒng)給傳遞的 = WinProc。//窗口處理過程的回調(diào)函數(shù)。 =(LPSTR)cName。//窗口類的名字。 = NULL。//目錄名,不設(shè)置 = CS_HREDRAW | CS_VREDRAW。 RegisterClassEx(amp。wc)。//在系統(tǒng)中注冊 hWnd = CreateWindowEx(WS_EX_CLIENTEDGE,cName,我的窗口我喜歡,WS_OVERLAPPEDWINDOW, 200,100,600,400,NULL,NULL,hInstance,NULL)。//創(chuàng)建窗口,窗口標(biāo)題為我的窗口我喜歡 if(hWnd == NULL) {//容錯處理 MessageBox(NULL,There39。s an Error,Error Title,MB_ICONEXCLAMATION|MB_OK)。 return 0。 } ShowWindow(hWnd,nShowCmd)。//顯示窗口 UpdateWindow(hWnd)。 //下面是對消息的循環(huán)處理,大家先不必管這些,下節(jié)課我會細(xì)說的 while(GetMessage(amp。Msg,NULL,0,0)) { TranslateMessage(amp。Msg)。//翻譯消息 DispatchMessage(amp。Msg)。//分派消息 } return 。}這個結(jié)果,不能用靜態(tài)的圖片來說明什么,大家自己編譯連接后,擊鼠標(biāo)試試,看能出現(xiàn)預(yù)期的效果不,我這里就不貼圖出來了,貼靜態(tài)的沒啥意思,貼動態(tài)的,有點(diǎn)不想整,我也懶,哈。經(jīng)過這幾次折騰,如果大家真的每一次都手寫了,相信其中的那關(guān)鍵的且相同的那部分代碼應(yīng)該是非常熟悉了,到此就我們就該升級了,就行高一層次的修煉,后面兩節(jié),我準(zhǔn)備給大家說些資源的深入細(xì)節(jié),還有再在寫幾個完全實(shí)用的小程序和幾個惡作劇程序,不知大家意下如何。 資源的初步深入前面已經(jīng)說了資源的基本概念,不過只是做了和很簡單的介紹,這次我們來點(diǎn)狠的,深入的。前面我雖然也用了資源,不過只是鼠標(biāo)光標(biāo)的,回憶下我們的程序,是那么的簡陋。我們早就想把它給裝點(diǎn)下了吧,不用著急,學(xué)完了這節(jié)后,你就可以成為一個雕刻師了,想讓你的窗口咋樣基本都可以了(需要練習(xí)了,呵呵)。以當(dāng)前我這個Word編輯窗口為例,可以看到一個窗口有很多項(xiàng)的,而我們之前的串口跟這個相比,真可謂小巫見大巫。前面的程序連最起碼的菜單欄都沒有,真是慚愧呀。在Vb做界面,簡直就跟畫圖是一樣一樣的,Java中可以在編程時,一個一個組件往窗體對象(JFrame)上畫(也許有IDE可以手畫的),VC中呢,也可以畫,但是注意的細(xì)節(jié)明顯比VB要多。其實(shí)手畫的過程,只是程序幫了我們,幫我們寫了資源文件。這和用網(wǎng)頁設(shè)計工具是一樣的,我們只顧點(diǎn)鼠標(biāo),代碼則是網(wǎng)頁設(shè)計工具生成的了。同樣,其他編程也是這樣,這樣的好處是:一可以讓初學(xué)者很容易進(jìn)入狀態(tài) ,二是可以加快開發(fā),可以少寫n拖代碼。壞處是:不懂得底層機(jī)制,很多人寫了n久的程序,也只能是比葫蘆畫瓢,寫的程序界面還是自己學(xué)習(xí)時候的那種樣式,界面單調(diào)死板,開發(fā)不出個性界面的。鑒于工具帶來的負(fù)面影響,我才給大家從基本說起,雖然我們是用VC ,但是我還是手寫資源來教大家定義資源文件,并不利用VC中IDE工具。如果大家資源文件寫的很熟練的話,再用VC中的IDE工具,不用去看多余的書,自然一看就知道是怎么回事,到時用起來就是得心應(yīng)手。說實(shí)在話,如果不理解Windows的一些處理機(jī)制,上去直接去學(xué)習(xí)VC,我敢肯定學(xué)一段時間后,大部分人會頭昏腦脹,事倍功半,雖有收獲,然仍是皮毛,有放棄之想。好了廢話不多說了,言歸正傳。如上圖,是我這節(jié)要實(shí)現(xiàn)的效果,上面有菜單欄,其中點(diǎn)擊“查看”可以菜單子菜單項(xiàng),彈出的有禁用的菜單、分割線和灰化的菜單項(xiàng)。還有一個我自己做的圖標(biāo)(xhk字樣的,左上角)。單擊標(biāo)題欄上的圖標(biāo)可以彈出系統(tǒng)菜單,在有的程序,在窗口中擊鼠標(biāo)右鍵,就可以彈出“快捷菜單”,這些菜單都屬于彈出式菜單。菜單中的菜單項(xiàng)有好幾種,從資源定義的角度來看,分割用的橫線也是一個菜單項(xiàng)。除橫線外其他菜單項(xiàng)可以供用戶選擇,也可以設(shè)置為“禁止”或“灰化”狀態(tài)暫時停用,如果上圖的??旖萱I,這個不用說了,大家都知道是做什么用的。菜單項(xiàng)顯示的字符都是在資源文件中定義,至于如何來響應(yīng)按鍵則要在消息處理函數(shù)中添寫代碼了,本節(jié)先不討論怎樣獲取這些消息和處理這些消息,這寫留到下節(jié)中完成,本節(jié)先常用資源的定義格式說下,先完成界面上的東東。1. 菜單資源的定義在資源腳本文件菜單中的定義格式是這樣的:菜單 ID MENU [DISCARDABLE]BEGIN 菜單項(xiàng)的定義END也可以這樣定義:菜單 ID MENU [DISCARDABLE]{ 菜單項(xiàng)的定義}“菜單 ID MENU [DISCARDABLE]”可以用來制定菜單的ID值和內(nèi)存屬性,菜單ID可以是16位(二進(jìn)制位)的整數(shù),也可以是字符串。但是如果ID位字符串的話,在程序中引用的時候就要用字符串指針代替菜單ID值,顯然這樣不太方便,所以在我們經(jīng)常用整數(shù)來做菜單的ID值。MENU關(guān)鍵詞后面的DISCARDABLE是菜單的內(nèi)存屬性,表示菜單在不再使用的時候可以暫時從內(nèi)存中釋放以節(jié)省內(nèi)存,是個可選屬性。菜單項(xiàng)的定義必須在BEGIN和END關(guān)鍵詞之內(nèi),這兩個關(guān)鍵詞也可以用{和}來代替。菜單項(xiàng)目的定義方法有三類:1. 常用的MENUITEM 菜單文字,命令I(lǐng)D [,選項(xiàng)列表]2. 分割線MENUITEM SEPARATOR3. 下級菜單和菜單定義的方式一樣POPUP 菜單文字 [,選項(xiàng)列表]BEGIN ItemdefinitionsEND 下面對這三類加以說明第一類:菜單文字——顯示在菜單項(xiàng)中的字符串。像上圖中的“被禁用的菜單項(xiàng)”和“被灰化的菜單項(xiàng)”。命令I(lǐng)D——不同菜單項(xiàng)的標(biāo)識。當(dāng)菜單被選中的時候,Windows會向窗口過程發(fā)送WM_COMMAND消息,消息的參數(shù)就是這個命令I(lǐng)D。這個可以分辨用戶選中了哪個菜單項(xiàng),如果想讓兩個菜單項(xiàng)具有相同的功能,可以設(shè)置為相同的ID。選項(xiàng)列表——用來形容菜單項(xiàng)的各種屬性,它可以是下列選項(xiàng):CHECHKED——表示打上選定標(biāo)識。GRAYED——表示菜單項(xiàng)是灰化的。INACTIVE——表示菜單項(xiàng)是禁用的。MENUBRREAK或MENUBARBREAK——表示將這個菜單項(xiàng)和以后的那個列到新的列中。第二類:菜單項(xiàng)之間的分割線,沒什么好說的了。第三類:彈出式菜單,前文有解釋,這里說下它的選項(xiàng):GREAYED——灰化。INACTIV——禁用。HELP——表示本項(xiàng)和以后的菜單項(xiàng)是右對齊的,像上圖中的“幫助”菜單??旖萱I定義是很簡單的,格式如下:快捷鍵 ID ACCELERATORSBEGIN 鍵名,命令I(lǐng)D[,類型][,選項(xiàng)]ENDBEGIN和END仍然可以用{和}替換。鍵名——表示加速鍵對應(yīng)的按鍵,可以有3中定義方式: “^字母”:表示Ctrl鍵加上字母鍵。 “字母”:表示字母,這時類型必須指明VIRTKEY。 數(shù)值:表示ASCII碼,這時類型必須為ASCII命令I(lǐng)D——按下快捷鍵后,Windows就向程序發(fā)送此命令I(lǐng)D。類型——用來指定鍵的定義方式,可以是VIRTKEY和ASCII,分別用來表示“鍵名”字段定義的是虛擬鍵還是ASCII碼。選項(xiàng)——可以使Alt,Control或Shift中的單個或多個,如果指定多個,則中間用逗號隔開,表示快捷鍵是按鍵加上這些控制鍵的組合鍵。說了這么多,考驗(yàn)我們的時候終于到了,下面我們就來寫程序了。兵馬未動,糧草先行,我們先來把界面定義好,內(nèi)容如下:/************** Written By XHK *************/include define ICO_MAIN 0X1000 //圖標(biāo)define IDM_MAIN 0X2000 //菜單define IDA_MAIN 0X2000 //快捷鍵define IDM_OPEN 0X4101 //“打開”菜單項(xiàng)define IDM_INACTIVE 0X4201 //“被禁用的菜單項(xiàng)”define IDM_GRAYED 0X4202 //“灰化的菜單項(xiàng)”define IDM_HELP 0X4301 //“幫助”菜單項(xiàng)/********The ico file of the window***********/ICO_MAIN ICON /*********************************************//**Next is the definition of the Menus**********/IDM_MAIN menu discardable{ popup 文件(amp。F) { menuitem 打開(amp。O)\tCtrl+Alt+O,IDM_OPEN } popup 查看(amp。V) { menuitem 被禁用的菜單項(xiàng),IDM_INACTIVE,INACTIVE menuitem separator menuitem 被灰化的菜單項(xiàng),IDM_GRAYED,GRAYED } popup 幫助(amp。H),HELP { menuitem 幫助主題(amp。H)\tF1,IDM_HELP }}//下面定義快捷建IDA_MAIN accelerators{ VK_F1,IDM_HELP,VIRTKEY //F1 O,IDM_OPEN,VIRTKEY,CONTROL,ALT //Ctrl+Alt+O},下面該出兵了, 程序代碼,采用最精簡的:/*********** Written By XHK ************/include define ICO_MAIN 0X1000 //圖標(biāo)define IDM_MAIN 0X2000 //菜單define IDA_MIAN 0X2000 //快捷鍵//回調(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)
點(diǎn)擊復(fù)制文檔內(nèi)容
公司管理相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1