gdi 编程c语言pdf,二、Windows编程GDI—TextOut细节
TextOut是用于顯示文字的最常用的GDI函數。語法是:
TextOut (hdc, x, y, psText, iLength) ;
以下將詳細地討論這個函數。
第一個參數是設備內容句柄,它既可以是GetDC的傳回值,也可以是在處理WM_PAINT消息時BeginPaint的傳回值。
設備內容的屬性控制了被顯示的字符串的特征。例如,設備內容中有一個屬性指定文字顏色,內定顏色為黑色;內定設備內容還定義了白色的背景。在程序向顯示器輸出文字時,Windows使用這個背景色來填入字符周圍的矩形空間(稱為「字符框」)。
該文字背景色與定義窗口類別時設置的背景并不相同。窗口類別中的背景是一個畫刷,它是一種純色或者非純色組成的畫刷,Windows用它來擦除顯示區域,它不是設備內容結構的一部分。在定義窗口類別結構時,大多數Windows應用程序使用WHITE_BRUSH,以便內定設備內容中的內定文字背景顏色與Windows用以擦除顯示區域背景的畫刷顏色相同。
psText參數是指向字符串的指針,iLength是字符串中字符的個數。如果psText指向Unicode字符串,則字符串中的字節數就是iLength值的兩倍。字符串中不能包含任何ASCII控制字符(如回車、換行、制表或退格),Windows會將這些控制字符顯示為實心塊。Text0ut不識別作為字符串結束標志的內容為零的字節(對于Unicode,是一個短整數型態的0),而需要由nLength參數指明長度。
TextOut中的x和y定義顯示區域內字符串的開始位置,x是水平位置,y是垂直位置。字符串中第一個字符的左上角位于坐標點(x,y)。在內定的設備內容中,原點(x和y均為0的點)是顯示區域的左上角。如果在TextOut中將x和y設為0,則將從顯示區域左上角開始輸出字符串。
當您閱讀GDI繪圖函數(例如TextOut)的文件時,就會發現傳遞給函數的坐標常常被稱為「邏輯坐標」。在第五章會詳細地解釋這種情況。現在請注意,Windows有許多「坐標映像方式」,它們用來控制GDI函數指定的邏輯坐標轉換為顯示器的實際圖素坐標的方式。映像方式在設備內容中定義,內定映像方式是MM_TEXT(使用WINGDI.H中定義的標識符)。在MM_TEXT映像方式下,邏輯單位與實際單位相同,都是圖素;x的值從左向右遞增,y的值從上向下遞增(參看圖4-2)。MM_TEXT坐標系與Windows在PAINTSTRUCT結構中定義無效矩形時使用的坐標系相同,這為我們帶來了很多方便(但是,其它映像方式并非如此)。
設備內容也定義了一個剪裁區域。您已經看到,對于從GetDC取得的設備內容句柄,內定剪裁區域是整個顯示區域;而對于從BeginPaint取得的設備內容句柄,則為無效區域。Windows不會在剪裁區域之外的任何位置顯示字符串。如果一個字符有一部分在剪裁區域外,則Windows將只顯示此區域內的那部分。要想將輸出寫到窗口的顯示區域之外不是那么容易的,所以不用擔心會無意間出現這種事情。
總結
以上是生活随笔為你收集整理的gdi 编程c语言pdf,二、Windows编程GDI—TextOut细节的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: eclipse adt for linu
- 下一篇: c语言编程运动会分数统计系统报告,独家稿