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

正文內(nèi)容

可視化程序設(shè)計(jì)(1)-資料下載頁(yè)

2025-01-07 04:31本頁(yè)面
  

【正文】 M_TIMER消息處理過(guò)程 //若為 NULL,則消息入隊(duì) )。 函數(shù)調(diào)用成功 ,返回定時(shí)器標(biāo)識(shí) ,否則返回 0. ? 釋放定時(shí)器 BOOL KillTimer( HWND hWnd, //與定時(shí)器相關(guān)聯(lián)的窗口句柄 UINT uIDEvent //定時(shí)器標(biāo)識(shí) ,指明釋放哪個(gè)定時(shí)器 )。 源代碼 如何顯示動(dòng)畫(huà)效果 ? SetTimer() WM_TIMER消息 WM_PAINT消息 InvalidateRect() 畫(huà)圖 ① ② ③ ④ ⑤ 例 :正方形沿客戶區(qū)邊框順時(shí)針?lè)较蛞苿?dòng) 左擊時(shí)移動(dòng) ,右擊時(shí)停止 源代碼 static UINT TimerID。 HDC hdc。 PAINTSTRUCT ps。 static RECT rc。 static LONG x1,x2,y1,y2, step。 switch(message) { case WM_CREATE: GetClientRect(hWnd, amp。rc)。 x1 = 0。 y1 = 0。 x2 = 40。 y2 = 40。 step = ()/200。 break。 case WM_LBUTTONDOWN: TimerID = SetTimer(hWnd, 1, 5, NULL)。 break。 case WM_RBUTTONDOWN: KillTimer(hWnd,TimerID)。 break。 case WM_TIMER: InvalidateRect(hWnd, NULL, true)。 break。 case WM_PAINT: hdc = BeginPaint(hWnd, amp。ps)。 Rectangle(hdc, x1, y1, x2, y2)。 if(x2 amp。amp。 y2 = 40) //上邊界 { x1 = x1 + step。 x2 = x2 + step。 } if(x2= amp。amp。 y2) //右邊界 { y1 = y1 + step。 y2 = y2 + step。 } if(y2=) //下邊界 { x1 = x1 step。 x2 = x2 step。 } if(x1=) //左邊界 { y1 = y1 step。 y2 = y2 step。 } EndPaint(hWnd, amp。ps)。 break。 …… 第 5章 文本的輸出方法與字體的設(shè)置 設(shè)置文本的設(shè)備環(huán)境 文本的輸出過(guò)程 文本操作實(shí)例 小結(jié) 文本輸出 ? 文本與圖形沒(méi)有明顯的界限 ,某種意義上任何內(nèi)容都可看成是圖形實(shí)體 .因此 ,可以使用 GDI進(jìn)行文本輸出 . ? 文本輸出的關(guān)鍵問(wèn)題 1. 字體的選擇 (系統(tǒng)提供的字體或用戶自定義的字體 ) 2. 格式化文本 3. 將文本在窗口客戶區(qū)畫(huà)出來(lái) 字體 ? 字體 : 字符、符號(hào)構(gòu)成的集合 . ? 字體是一種圖形對(duì)象 . ? 同一種字體具有相同的設(shè)計(jì)風(fēng)格 . ? 不同的字體在大小、形態(tài)上有所不同 . 字體 字體 36號(hào)黑體 36號(hào)楷體 獲取字體 ? 定義字體句柄 HFONT hF。 ? 獲得字體句柄 hF = (HFONT)GetStockObject(字體 )。 字體 說(shuō)明 ANSI_FIXED_FONT ANSI等寬字體 ANSI_VAR_FONT ANSI變寬字體 DEVICE_DEFAULT_FONT 與設(shè)備相關(guān)的字體 DEFAULT_GUI_FONT 默認(rèn) GUI字體 OEM_FIXED_FONT OEM(原始設(shè)備制造商 )提供的等寬字體 SYSTEM_FONT 系統(tǒng)字體 ,DC的默認(rèn)值 SYSTEM_FIXED_FONT 系統(tǒng)等寬字體 ? 除了系統(tǒng)提供的字體外 ,用戶還能創(chuàng)建自定義字體 . hF = CreateFont(...)。 創(chuàng)建邏輯字體 HFONT CreateFont( int nHeight, //字體高度 int nWidth, //平均字符寬度 int nEscapement, //行角度 int nOrientation, //字符角度 int fnWeight, //字體粗細(xì) DWORD fdwItalic, //是否傾斜 DWORD fdwUnderline, //下劃線標(biāo)志 DWORD fdwStrikeOut, //刪除線標(biāo)志 DWORD fdwCharSet, //字符集 DWORD fdwOutputPrecision, //輸出精度 DWORD fdwClipPrecision, //裁剪精度 DWORD fdwQuality, //輸出質(zhì)量 DWORD fdwPitchAndFamily, //間距與字體系列 LPCTSTR lpszFace //指向字體名 )。 將字體選入設(shè)備環(huán)境 HDC hdc。 ... SelectObject(hdc, hF)。 ? 系統(tǒng)提供的 DC具有默認(rèn)的 SYSTEM_FONT,只有更改為其他字體或用戶自定義的字體后 ,才應(yīng)該將這種字體選入 DC. ? 文本輸出完成后 ,應(yīng)該刪除字體 . DeleteObject(hF)。 文本顏色、背景顏色 ? 設(shè)置文本顏色 COLORREF SetTextColor( HDC hdc, COLORREF crColor //文本顏色 )。 ? 設(shè)置背景顏色 COLORREF SetBkColor( HDC hdc, COLORREF crColor //背景顏色 )。 格式化文本 第 5章 文本的輸出方法與字體的設(shè)置 設(shè)置文本的設(shè)備環(huán)境 文本的輸出過(guò)程 文本操作實(shí)例 小結(jié) 獲取字體信息 ? 正式輸出文本之前 ,程序員可以獲取當(dāng)前正在使用的字體的信息 ,為后續(xù)工作做準(zhǔn)備 . ? 系統(tǒng)定義了一個(gè) TEXTMETRIC(文本度量 ,簡(jiǎn)稱(chēng) TM)結(jié)構(gòu) ,用于保存字體的基本信息 . typedef struct tagTEXTMETRIC { //P106 ... } TEXTMETRIC。 ? 獲取字體信息 BOOL GetTextMetrics( HDC hdc, //DC句柄 LPTEXTMETRIC lptm //TEXTMETRIC類(lèi)型指針 )。 將 DC中的字體對(duì)象的信息填充到 TEXTMETRIC中 TEXTMETRIC結(jié)構(gòu) typedef struct tagTEXTMETRIC { LONG tmHeight。 //字符高度 LONG tmAscent。 LONG tmDescent。 LONG tmInternalLeading。 LONG tmExternalLeading。 //行距 LONG tmAveCharWidth。 //平均字符寬度 LONG tmMaxCharWidth。 LONG tmWeight。 LONG tmOverhang。 LONG tmDigitizedAspectX。 LONG tmDigitizedAspectY。 BCHAR tmFirstChar。 BCHAR tmLastChar。 BCHAR tmDefaultChar。 BCHAR tmBreakChar。 BYTE tmItalic。 BYTE tmUnderlined。 BYTE tmStruckOut。 BYTE tmPitchAndFamily。 BYTE tmCharSet。 } TEXTMETRIC。 格式化文本 ? 格式化文本包括對(duì)齊方式、字符間距、行距、字體顏色、背景顏色等 . ? 進(jìn)行文本輸出時(shí) ,程序員還需考慮待輸出字符串的起始位置 .而起始位置的計(jì)算可能與當(dāng)前正在使用的字體信息以及與前次輸出的字符串寬度、高度有關(guān) . ? 計(jì)算字符串的寬度和高度 BOOL GetTextExtentPoint32( HDC hdc, LPCTSTR lpString, //字符指針 ,指向字符串 int cbString, //選定的字符數(shù) LPSIZE lpSize //SIZE類(lèi)型指針 ,計(jì)算的字符串寬度 //和高度存放在一個(gè) SIZE結(jié)構(gòu)中 )。 typedef struct tagSIZE { LONG cx。 LONG cy。 } SIZE。 文本輸出 ? 在指定位置輸出字符串 BOOL TextOut( HDC hdc, int nXStart, //起始 x坐標(biāo) int nYStart, //起始 y坐標(biāo) LPCTSTR lpString, //字符指針 ,指向待輸出的字符串 int cbString //指定輸出字符數(shù) //輸出整個(gè)串 : lstrlen(lpString) )。 例 HDC hdc。 PAINTSTRUCT ps。 char* str1 = 這是我的第一個(gè)字符串 。 char* str2 = 第二個(gè)字符串 。 char* str3 = 這是我的第三個(gè)字符串 。 int x = 0, y = 0。 TEXTMETRIC tm。 //存放字體信息 SIZE size。 //存放字符串的寬度與高度 switch(message) { case WM_PAINT: hdc = BeginPaint(hwnd, amp。ps)。 TextOut(hdc, x, y, str1, strlen(str1))。 //輸出第一個(gè)字符串 GetTextMetrics(hdc, amp。tm)。 //獲取當(dāng)前字體信息 y = y + + 。 //字符高度 +行距 TextOut(hdc, x, y, str2, strlen(str2))。 //輸出第二個(gè)字符串 //計(jì)算第二個(gè)串的寬度與高度 GetTextExtentPoint32(hdc, str2, strlen(str2), amp。size)。 x = x + + 。 TextOut(hdc, x, y, str3, strlen(str3))。 //輸出第三個(gè)字符串 EndPaint(hwnd, amp。ps)。 break。 ... 第 5章 文本的輸出方法與字體的設(shè)置 設(shè)置文本的設(shè)備環(huán)境 文本的輸出過(guò)程 文本操作實(shí)例 小結(jié) 例 51 字符高度 +行距 平均字符寬度 TEXTMETRIC 例 51源代碼 static long nXChar, nYChar。 HDC hDC。 short x。 TEXTMETRIC tm。 //存放字體信息 short LnCount = 6。 PAINTSTRUCT PtStr。 static char* textbuf[] = {...}。 switch(message) { case WM_CREATE: hDC = GetDC(hWnd)。 GetTextMetrics(hDC, amp。tm)。 nXChar = 。 nYChar = + 。 ReleaseDC(hWnd, hDC)。 break。 case WM_PAINT: hDC = BeginPaint(hWnd, amp。PtStr)。 for(x=0。 xLnCount。 x++) TextOut(hDC, nXChar, nYChar*(1+x), textbuf[x], lstrlen(textbuf[x]))。 EndPaint(hWnd, amp。PtStr)。 break。 ... } 第 6章 Windows應(yīng)用程序?qū)︽I盤(pán)與鼠標(biāo)的響應(yīng) 鍵盤(pán)在應(yīng)用程序中的應(yīng)用 鍵盤(pán)操作應(yīng)用舉例 鼠標(biāo)在應(yīng)用程序中的應(yīng)用 鼠標(biāo)應(yīng)用程序?qū)嵗? 小結(jié) 掃描碼 amp。虛擬碼 ? 鍵盤(pán)上每一個(gè)鍵都對(duì)應(yīng)著一個(gè)唯一值 ,這個(gè)值稱(chēng)之為掃描碼 .掃描碼是設(shè)備相關(guān)的 ,用戶按下 (或釋放 )鍵時(shí)由鍵盤(pán)硬件產(chǎn)生 ,用來(lái)標(biāo)識(shí)不同的鍵 . ? 為了實(shí)現(xiàn)應(yīng)用程序與設(shè)備的無(wú)關(guān)性 ,應(yīng)用程序往往使用的是與設(shè)備無(wú)關(guān)的虛擬碼 (VirtualKey Codes).虛擬碼是由系統(tǒng)定義的并與設(shè)備無(wú)關(guān)的鍵標(biāo)識(shí) (表 61). ? 掃描碼、虛擬碼之間存在著一種映射關(guān)系 ,鍵盤(pán)驅(qū)動(dòng)程序負(fù)責(zé)解釋掃描碼并把它轉(zhuǎn)換成相應(yīng)的虛擬碼 . 掃描碼 虛擬碼 某個(gè)鍵 驅(qū)動(dòng)程序 鍵盤(pán)輸入模型 掃描碼、虛擬碼 和其他按鍵信息 ? 鍵盤(pán)設(shè)備被所有的應(yīng)用 、 所有的窗口共享 .因此 ,需要解決按鍵消息 (按下或釋放鍵時(shí)產(chǎn)生 )投往哪個(gè)線程消息隊(duì)列的問(wèn)題 . ? 每個(gè)窗口都有一個(gè)標(biāo)明它是否被鍵盤(pán)聚焦的屬性 ,按鍵消息將投遞到獲得了鍵盤(pán)
點(diǎn)擊復(fù)制文檔內(nèi)容
高考資料相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1