在窗口顯示文字和繪制圖形

在窗口顯示文字和繪制圖形

ID:16927035

大小:37.50 KB

頁(yè)數(shù):13頁(yè)

時(shí)間:2018-08-26

在窗口顯示文字和繪制圖形_第1頁(yè)
在窗口顯示文字和繪制圖形_第2頁(yè)
在窗口顯示文字和繪制圖形_第3頁(yè)
在窗口顯示文字和繪制圖形_第4頁(yè)
在窗口顯示文字和繪制圖形_第5頁(yè)
資源描述:

《在窗口顯示文字和繪制圖形》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在工程資料-天天文庫(kù)。

1、昨天和大家談了如何建立一個(gè)帶有窗口的Windows程序,今天和大家說說如何在窗口中顯示文字吧!!先說說相關(guān)的基礎(chǔ)知識(shí)(1).繪制和更新在Windows中,只能在窗口的顯示區(qū)域繪制文字和圖形,而且不能確保在顯示區(qū)域內(nèi)顯示的內(nèi)容會(huì)一直保留到程序下一次有意地改寫它時(shí)還保留在那里。例如,使用者可能會(huì)在屏幕上移動(dòng)另一個(gè)程序的窗口,這樣就可能覆蓋您的應(yīng)用程序窗口的一部分。Windows不會(huì)保存您的窗口中被其它程序覆蓋的區(qū)域,當(dāng)程序移開后,Windows會(huì)要求您的程序更新顯示區(qū)域的這個(gè)部分,Windows通過發(fā)送WM_PAINT消息通知窗口消息

2、處理程序,窗口的部分顯示區(qū)域需要繪制。(2).WM_PAINT消息大多數(shù)Windows程序在WinMain中進(jìn)入消息循環(huán)之前的初始化期間都要呼叫函數(shù)UpdateWindow。Windows利用這個(gè)機(jī)會(huì)給窗口消息處理程序發(fā)送第一個(gè)WM_PAINT消息。這個(gè)消息通知窗口消息處理程序:必須繪制顯示區(qū)域。此后,窗口消息處理程序應(yīng)在任何時(shí)刻都準(zhǔn)備好處理其它WM_PAINT消息,必要的話,甚至重新繪制窗口的整個(gè)顯示區(qū)域。(3).有效矩形和無(wú)效矩形Windows內(nèi)部為每個(gè)窗口保存一個(gè)「繪圖信息結(jié)構(gòu)」,這個(gè)結(jié)構(gòu)包含了包圍無(wú)效區(qū)域的最小矩形的坐標(biāo)以

3、及其它信息,這個(gè)矩形就叫做「無(wú)效矩形」,有時(shí)也稱為「無(wú)效區(qū)域」。如果在窗口消息處理程序處理WM_PAINT消息之前顯示區(qū)域中的另一個(gè)區(qū)域變?yōu)闊o(wú)效,則Windows計(jì)算出一個(gè)包圍兩個(gè)區(qū)域的新的無(wú)效區(qū)域(以及一個(gè)新的無(wú)效矩形),并將這種變化后的信息放在繪制信息結(jié)構(gòu)中。Windows不會(huì)將多個(gè)WM_PAINT消息都放在消息隊(duì)列中。窗口消息處理程序可以通過呼叫InvalidateRect使顯示區(qū)域內(nèi)的矩形無(wú)效。如果消息隊(duì)列中已經(jīng)包含一個(gè)WM_PAINT消息,Windows將計(jì)算出新的無(wú)效矩形。否則,它將一個(gè)新的WM_PAINT消息放入消息

4、隊(duì)列中。在接收到WM_PAINT消息時(shí),窗口消息處理程序可以取得無(wú)效矩形的坐標(biāo)(我們馬上就會(huì)看到這一點(diǎn))。通過呼叫GetUpdateRect,可以在任何時(shí)候取得這些坐標(biāo)。在處理WM_PAINT消息處理期間,窗口消息處理程序在呼叫了BeginPaint之后,整個(gè)顯示區(qū)域即變?yōu)橛行А3绦蛞部梢酝ㄟ^呼叫ValidateRect函數(shù)使顯示區(qū)域內(nèi)的任意矩形區(qū)域變?yōu)橛行?。如果這呼叫具有令整個(gè)無(wú)效區(qū)域變?yōu)橛行У男Ч?,則目前隊(duì)列中的任何WM_PAINT消息都將被刪除GDI相關(guān)的內(nèi)容forthequalityofreviewsandreview.A

5、rticle26threview(a)theCCRAcompliance,whethercopiesofchecks;(B)whetherdoubleinvestigation;(C)submissionofprogramcompliance,investigationorexaminationofwhetherviewsareclear;(D)theborrower,guarantorloans要在窗口的顯示區(qū)域繪圖,可以使用Windows的圖形設(shè)備接口(GDI)函數(shù)(1).設(shè)備內(nèi)容句柄只不過是一個(gè)數(shù)值,Windows以它在內(nèi)部

6、使用對(duì)象。程序?qū)懽髡邚腤indows取得句柄,然后在其它函數(shù)中使用該句柄。設(shè)備內(nèi)容句柄是GDI函數(shù)的窗口「通行證」,有了這種設(shè)備內(nèi)容句柄,程序?qū)懽髡呔湍茏匀绲卦陲@示區(qū)域上繪圖,使圖形如自己所愿地變得好看或者難看。設(shè)備內(nèi)容(簡(jiǎn)稱為「DC」)實(shí)際上是GDI內(nèi)部保存的數(shù)據(jù)結(jié)構(gòu)。設(shè)備內(nèi)容與特定的顯示設(shè)備(如視訊顯示器或打印機(jī))相關(guān)。對(duì)于視訊顯示器,設(shè)備內(nèi)容總是與顯示器上的特定窗口相關(guān)。設(shè)備內(nèi)容中的有些值是圖形「屬性」,這些屬性定義了GDI繪圖函數(shù)工作的細(xì)節(jié)。例如,對(duì)于TextOut,設(shè)備內(nèi)容的屬性確定了文字的顏色、文字的背景色、x坐標(biāo)和y

7、坐標(biāo)映像到窗口的顯示區(qū)域的方式,以及顯示文字時(shí)Windows使用的字體。當(dāng)程序需要繪圖時(shí),它必須先取得設(shè)備內(nèi)容句柄。在取得了該句柄后,Windows用內(nèi)定的屬性值填入內(nèi)部設(shè)備內(nèi)容結(jié)構(gòu)。在后面的章節(jié)中您會(huì)看到,可以通過呼叫不同的GDI函數(shù)改變這些默認(rèn)值。利用其它的GDI函數(shù)可以取得這些屬性的目前值。當(dāng)然,還有其它的GDI函數(shù)能夠在窗口的顯示區(qū)域真正地繪圖。當(dāng)程序在顯示區(qū)域繪圖完畢后,它必須釋放設(shè)備內(nèi)容句柄。句柄被程序釋放后就不再有效,且不能再被使用。程序必須在處理單個(gè)消息處理期間取得和釋放句柄。除了呼叫CreateDC()建立的設(shè)備

8、內(nèi)容之外,程序不能在兩個(gè)消息之間保存其它設(shè)備內(nèi)容句柄(2)取得設(shè)備內(nèi)容句柄的方法:方法一:caseWM_PAINT:hdc=BeginPaint(hwnd,&ps);使用GDI函數(shù)EndPaint(hwnd,&ps);forthequalityof

當(dāng)前文檔最多預(yù)覽五頁(yè),下載文檔查看全文

此文檔下載收益歸作者所有

當(dāng)前文檔最多預(yù)覽五頁(yè),下載文檔查看全文
溫馨提示:
1. 部分包含數(shù)學(xué)公式或PPT動(dòng)畫的文件,查看預(yù)覽時(shí)可能會(huì)顯示錯(cuò)亂或異常,文件下載后無(wú)此問題,請(qǐng)放心下載。
2. 本文檔由用戶上傳,版權(quán)歸屬用戶,天天文庫(kù)負(fù)責(zé)整理代發(fā)布。如果您對(duì)本文檔版權(quán)有爭(zhēng)議請(qǐng)及時(shí)聯(lián)系客服。
3. 下載前請(qǐng)仔細(xì)閱讀文檔內(nèi)容,確認(rèn)文檔內(nèi)容符合您的需求后進(jìn)行下載,若出現(xiàn)內(nèi)容與標(biāo)題不符可向本站投訴處理。
4. 下載文檔時(shí)可能由于網(wǎng)絡(luò)波動(dòng)等原因無(wú)法下載或下載錯(cuò)誤,付費(fèi)完成后未能成功下載的用戶請(qǐng)聯(lián)系客服處理。