WindowsAPI-GDI入門基礎(chǔ)知識詳解

字號:

現(xiàn)在我們對GDI的基礎(chǔ)概念有了一定的了解,下面我們將對GDI一些常用的函數(shù)進(jìn)行學(xué)習(xí)。
    TextOut函數(shù)
    TextOut函數(shù)的作用是把指定的字符串輸出在我們指定的屏幕位置上。
    函數(shù)原型:
    BOOL TextOut(XML:namespace prefix = o ns = "urn:schemas-microsoft-com:Office:office" />
    HDC PerlINK '''">hdc, // 設(shè)備描述表句柄
    int nXStart, // 輸出的x軸水平位置
    int nYStart, // 輸出的y軸垂直位置
    LPCTSTR lpString, // 指向要輸出字符串的長指針
    int cbString // 字符串長度
    );
    第一參數(shù)是設(shè)備描述表句柄,它既可以是通過BeginPaint函數(shù)獲得的,也可以是通過GetDC函數(shù)獲得的,需要提一下的是,設(shè)備描述表中的屬性控制了顯示的字符串的一些細(xì)節(jié)特征,比如字體、字體顏色、文字背景等,但要注意的是保存在設(shè)備描述表屬性中的文字背景顏色和WNDCLASS結(jié)構(gòu)中的屏幕背景是有區(qū)別的,文字背景指的是緊靠字符周圍的矩形空間,又叫做字符框。而窗口背景則是一個畫刷,Windows用它來擦除顯示區(qū)域,它不是設(shè)備描述表結(jié)構(gòu)中的一部分。
    第二和第三個參數(shù)定義了顯示區(qū)域內(nèi)字符串的開始位置,x是水平位置,y是垂直位置,字符串第一個字符位于坐標(biāo)點(diǎn)(x,y),在設(shè)備描述表屬性中,原點(diǎn)(x,y)均為為0,是顯示區(qū)域的左上角,對于坐標(biāo)來說,坐標(biāo)的映射方式的不同決定了單位的不同,在通常情況下傳遞給函數(shù)的坐標(biāo)被稱為邏輯坐標(biāo),Windows有許多坐標(biāo)映射方式,它們是用來控制GDI函數(shù)指定的邏輯坐標(biāo)轉(zhuǎn)換為顯示器的實(shí)際像素坐標(biāo)的方式。映射方式在設(shè)備描述表的屬性中定義,默認(rèn)的映射方式是MM_TEXT,我們可以在WinGdi.h頭文件中找到。在MM_TEXT映射模式下,邏輯單位于實(shí)際單位都相同,都是像素,對于坐標(biāo)來說,x的值從左向右遞增,y的值則從上向下遞增(見下圖),MM_TEXT坐標(biāo)系與Windows在PAINTSTURCT結(jié)構(gòu)中定義的無效矩形所使用的坐標(biāo)系相同。
    第四個參數(shù)是指向要輸出字符串的長指針。
    第五個參數(shù)是要輸出的字符串的實(shí)際長度。
    在Windows下輸出文字并不如我們所想象的那么容易,在前面我們已經(jīng)知道輸出文字和坐標(biāo)有關(guān),我們?yōu)榱司_的輸出文字,就必須對系統(tǒng)的字體和字符大小有進(jìn)一步的認(rèn)識。