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

正文內(nèi)容

[計算機(jī)軟件及應(yīng)用]ch(1)-閱讀頁

2025-02-03 17:22本頁面
  

【正文】 return FALSE。 UpdateWindow(hWnd)。函數(shù)之后,窗口就顯示在顯示屏幕上,這時程序就進(jìn)入了 消息循環(huán) ,等待用戶用鍵盤或鼠標(biāo)操作窗口,產(chǎn)生消息。msg, NULL, 0, 0)){ {TranslateMessage(amp。 DispatchMessage(amp。 } } 消息循環(huán)從此開始,它從消息隊列中取出一條消息, WM_QUIT則退出 將 MSG消息進(jìn)行傳給WINDOWS系統(tǒng),并進(jìn)行一些鍵盤轉(zhuǎn)換 再將 MSG消息傳給 WINDOWS系統(tǒng),然后 WINDOWS系統(tǒng)將該消息傳給正確的窗口過程,讓它進(jìn)行處理。 LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam) 說明: WndProc是一個回調(diào)函數(shù) CALLBACK指定窗口函數(shù)是一個回調(diào)函數(shù)。 窗口函數(shù)的參數(shù) 每個 Windows應(yīng)用程序的窗口函數(shù)都有著相同的參數(shù)表: 第 1個參數(shù) hWnd用于標(biāo)識接收消息的窗口句柄; 第 2個參數(shù) message用于標(biāo)識消息 , 該消息將被用于處理消息的 switch結(jié)構(gòu)中; 第 4個參數(shù) wParam和 lParam是 message的附加信息 ,它們的內(nèi)容隨 message消息而異 , 如鼠標(biāo)消息與鍵盤消息的 wParam和 lParam參數(shù)就不一樣 。 窗口 函數(shù)和消息處理 窗口 函數(shù)和消息處理 窗口函數(shù) 所接收的消息都是用一個數(shù)值來標(biāo)識的,它就是傳遞給窗口過程的 message參數(shù),消息在 ,它們是以 “ WM_”的標(biāo)識符。 窗口 窗口函數(shù) 不處理的消息被傳給 :DefWindowProc函數(shù)進(jìn)行缺省處理。 case WM_PAINT: …… break。 } 消息處理過程 數(shù)據(jù)輸出 與 WM_PAINT消息 WM_PAINT消息對于 windows程序設(shè)計是極其重要的,當(dāng)窗口客戶區(qū)的一部分或全部變?yōu)?“ 無效 ” 時,將產(chǎn)生該消息,它導(dǎo)致窗口重繪。 該類型指示當(dāng)窗口水平或垂直方向發(fā)生變化時,窗口將產(chǎn)生 WM_PAINT消息致使窗口重繪。ps) …… …… 進(jìn)行窗口繪制的程序代碼 …… EndPaint(hwnd,amp。 數(shù)據(jù)輸出與 WM_PAINT消息 WM_DESTROY消息與程序結(jié)束 這是一條重要的消息,它指示 windows系統(tǒng)關(guān)閉該應(yīng)用程序。 Hellow window程序通過 PostQuitMessage(0)。導(dǎo)致應(yīng)用程序的關(guān)閉。 GDI函數(shù) GDI是 Windows為應(yīng)用程序提供的圖形設(shè)備接口,它提供了豐富的圖形 API函數(shù), 用 這些 API函數(shù) 實現(xiàn)數(shù)據(jù)的輸入與輸出, 大致可以分為 3種類型: ① 字符輸出類函數(shù),以圖形方式輸出字符、文本; ② 矢量圖形函數(shù),用于繪制點、線、橢圓、三角形等幾何圖形 。 Windows程序的數(shù)據(jù)輸出 設(shè)備無關(guān)性 是指在用 GDI函數(shù)設(shè)計針對不同硬件設(shè)備的輸出程序時,不必考慮具體的硬件特性,只需用統(tǒng)一的方式編寫程序,Windows系統(tǒng)會自動調(diào)用具體設(shè)備的硬件驅(qū)動程序?qū)?GDI圖形輸出程序轉(zhuǎn)換成特定硬件設(shè)備的輸出程序。一方面,提供了許多設(shè)備驅(qū)動程序,用于實現(xiàn)GDI函數(shù)向具體硬件設(shè)備操作指令的轉(zhuǎn)換;另一方面,向應(yīng)用程序提供了一個虛擬邏輯設(shè)備 DC( Device Context),稱為設(shè)備環(huán)境,也稱為設(shè)備描述表或設(shè)備上下文。設(shè)備環(huán)境由 Windows系統(tǒng)統(tǒng)一管理,當(dāng)應(yīng)用程序需要輸出圖形(包括字符)時,必須向 Windows系統(tǒng)提出申請,用完后必須釋放,便于其他程序申請使用。是 Windows為了實現(xiàn)設(shè)備無關(guān)性而向應(yīng)用程序提供了一個虛擬邏輯設(shè)備,它其實是一種數(shù)據(jù)結(jié)構(gòu),其中存了繪圖操作需要的所有信息,如繪畫筆、字體、圖畫顏色、繪制的圖形背景及繪圖的模式。 – DC相當(dāng)畫家手中的繪圖工具,包括畫紙、畫筆、顏料 …… 。 Windows程序的數(shù)據(jù)輸出 二、 Windows程序的數(shù)據(jù)輸出過程 程序首先獲取設(shè)備環(huán)境句柄 通過該句柄調(diào)用圖形設(shè)備接口的繪圖函數(shù)繪圖。 二 、 Windows程序 的數(shù)據(jù)輸出過程 獲取設(shè)備環(huán)境 ( 1)用 API函數(shù) BeginPaint獲取設(shè)備環(huán)境句柄 如果在 WM_PAINT消息處理中輸出圖形 ,就應(yīng)該使用函數(shù) BeginPaint獲取設(shè)備環(huán)境句柄,用法如下: …… PAINTSTRUCT ps。ps) 。ps) 。 //設(shè)備環(huán)境句柄 BOOL fErase。 //用于標(biāo)識無效的矩形區(qū)域 BOOL fRestore。 //系統(tǒng)保留 BYTE rgbReserved[16]。 ( 2) BeginPaint用于獲取設(shè)置環(huán)境句柄, EndPaint用于釋放設(shè)備環(huán)境句柄。 二 、 Windows程序 的數(shù)據(jù)輸出過程 ( 2)用 GetDC獲取設(shè)備環(huán)境句柄 如果在是在 除 WM_PAINT之外 的其他消息處理中輸出圖形,就應(yīng)該用 GetDC獲取設(shè)備環(huán)境句柄,用完后必須使用 ReleaseDC將其釋放。 //hWnd是窗口句柄 …… …… //繪制圖形或輸出文本的程序代碼 ReleaseDC(hWnd,hdc)。 其中: GetDC和 ReleaseDC須配對使用 二 、 Windows程序 的數(shù)據(jù)輸出過程 輸出圖形 ? 設(shè)備環(huán)境(即設(shè)備描述表)定義了繪圖的圖形對象和圖形模式,應(yīng)用程序獲取到了設(shè)備環(huán)境后,就能夠通過設(shè)備環(huán)境句柄使用 GDI API函數(shù)來繪制圖形。 ? 表 51是常用的繪圖對象 對 象 定義對象句柄的結(jié)構(gòu) Windows定義的備用對象 說 明 Bitmap HBITMAP 用于處理位圖 Brush HBRUSH XX_BRUSH 用于填充圖形的內(nèi)部 Palette HPALETTE 用于管理顏色 Font HFONT XX_FONT 用于設(shè)置文本的字體 Pen HPEN XX_PEN 用于繪制圖形 二 、 Windows程序 的數(shù)據(jù)輸出過程 ? GDI中常用的圖形輸出函數(shù) – MoveTo(hDC, x, y)。 //從當(dāng)前點畫直線到( x,y)坐標(biāo)處 – BOOL Rectangle(HDC hdc,int x1,int y1,int x2,int y2)。 //以( x1,y1)為左上角坐標(biāo), (x2,y2)為右下角坐標(biāo)畫圓角矩形 – BOOL Ellipse(HDC hdc,int x1,int y1,int x2,int y2)。 – 輸出文本時必須以像素為單位精確定位每一行的輸出位置。 – int DrawText(HDC hdc,LPCTSTR lpString,int n,LPRECT lpRect,UINT uFormat)。其原型如下: BOOL GetTextMetrics(HDC hdc,TEXTMETRICS amp。 TEXTMETRICS是保存字體信息的數(shù)據(jù)結(jié)構(gòu),主要域如下 : typedef struct tagTEXTMETRIC { LONG tmHeight。 //行間距 LONG tmAveCharWidth。 //最大字符寬度 LONG tmWeight。 //字符集 …… } TEXTMETRIC。并通過函數(shù) TextOut 分別用系統(tǒng)默認(rèn)色彩和紅色輸出兩行文本。 //定義畫筆 HBRUSH hBrush,HbruOld。 //定義 tm用于獲取字體信息 int x=10,y=150。 case WM_PAINT: hPen=(HPEN)CreatePen(PS_SOLID,3,RGB(0,0,255))。 //創(chuàng)建紅色網(wǎng)格線的畫刷 hdc = BeginPaint(hwnd,amp。 GetClientRect(hwnd,amp。 DrawText(hdc,TEXT(Hello,APIProgramming!),1,amp。 Rectangle(hdc,10,10,80,80)。 //選入新畫筆,返回舊畫筆句柄 HbruOld=(HBRUSH)SelectObject(hdc,hBrush)。 //畫矩形 Ellipse(hdc,250,10,350,80)。 //恢復(fù)系統(tǒng)默認(rèn)畫刷 SelectObject(hdc,hPenOld)。tm)。 SetTextColor(hdc,RGB(255,0,0))。 //計算下一行字體輸出的縱坐標(biāo) TextOut(hdc,x,y,紅色的字體色彩! ,16)。ps)。 消息 驅(qū)動程序設(shè)計 消息的類型 – 一類是由計算機(jī)硬件產(chǎn)生的消息(如用戶移動、單擊、雙擊鼠標(biāo)或按鍵盤),這類消息要進(jìn)入應(yīng)用程序的消息隊列; – 另一類是由程序或系統(tǒng)產(chǎn)生的消息(如建立窗口、窗口大小改變),這類消息不進(jìn)入應(yīng)用程序的消息隊列,由 Windows系統(tǒng)直接發(fā)送給應(yīng)用程序的窗口函數(shù),常見的不進(jìn)隊消息有WM_CREATE、 WM_DESTROY、 WM_SIZE、 WM_PAINT。 【 例 103】 對例 101的窗口函數(shù)進(jìn)行修改,增加鼠標(biāo)消息處理功能,左鍵單擊該位置產(chǎn)生一個矩形,在右鍵單擊該位置產(chǎn)生一個圓。在 WM_PAINT消息中從兩個數(shù)組內(nèi)依次取出保存的鼠標(biāo)點,并以此點為中心繪制矩形和圓。 PAINTSTRUCT ps 。 //Rect保存矩形的鼠標(biāo)點, Elli保存橢圓的鼠標(biāo)點 static int n=0,m=0。 switch(message) { //消息處理 case WM_CREATE: return 0 。 //計算鼠標(biāo)的 x坐標(biāo) Rect[n].y=HIWORD(lParam)。 //產(chǎn)生 WM_PAINT消息 n++。 case WM_RBUTTONDOWN: Elli[n].x=LOWORD(lParam)。 InvalidateRect(hwnd,NULL,FALSE)。 return 0。ps) 。in。 for(j=0。j++) //繪制橢圓 Ellipse(hdc,Elli[j].x,Elli[j].y,Elli[j].x+60,Elli[j].y+60)。ps)。 case WM_DESTROY: PostQuitMessage(0) 。 } return DefWindowProc(hwnd,message,wParam,lPara
點擊復(fù)制文檔內(nèi)容
教學(xué)課件相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1