两个吃奶一个添下面视频_人妻第一页香蕉网_欧美xxxx少妇_妺妺窝人体色www婷婷

如果不僅僅想指定字符內(nèi)容輸出的起始坐標(biāo),還想整體控制全部?jī)?nèi)容的位置,以及內(nèi)容的格式,可以嘗試 drawtex 那函數(shù)。

其函數(shù)原型如下:

int drawtext(
	LPCTSTR str,
	RECT* pRect,
	UINT uFormat);
int drawtext(
	TCHAR c,
	RECT* pRect,
	UINT uFormat);

前者是輸出字符串,后者是輸出單個(gè)字符。我們重點(diǎn)來(lái)說(shuō)一下第二個(gè)參數(shù),這是一個(gè) RECT 結(jié)構(gòu)體類(lèi)型的結(jié)構(gòu)體指針,其結(jié)構(gòu)原型如下:

typedef struct tagRECT
{
    LONG    left;
    LONG    top;
    LONG    right;
    LONG    bottom;
} RECT, *PRECT, NEAR *NPRECT, FAR *LPRECT;


它指定的矩形區(qū)域的指針。說(shuō)白了就是四個(gè)值的結(jié)構(gòu)體,分別表示了這個(gè)矩形區(qū)域的左上角位置、右下角位置,即鎖定了這片區(qū)域。

再來(lái)看第三個(gè)參數(shù),UINT uFormat 是一個(gè)數(shù)字,它由多個(gè)可以表示字體風(fēng)格的宏組成,這些樣式可以自由組合,根據(jù)官方說(shuō)明,其所有風(fēng)格如下:

標(biāo)志
描述
DT_BOTTOM調(diào)整文字位置到矩形底部,僅當(dāng)和 DT_SINGLELINE 一起使用時(shí)有效。
DT_CALCRECT檢測(cè)矩形的寬高。如果有多行文字,drawtext 使用 pRect 指定的寬度,并且擴(kuò)展矩形的底部以容納每一行文字。如果只有一行文字,drawtext 修改 pRect 的右邊以容納最后一個(gè)文字。無(wú)論哪種情況,drawtext 都返回格式化后的文字高度,并且不輸出文字。
DT_CENTER文字水平居中。 
DT_EDITCONTROL以單行編輯的方式復(fù)制可見(jiàn)文本。具體的說(shuō),就是以字符的平均寬度為計(jì)算依據(jù),同時(shí)用這個(gè)方式應(yīng)用于編輯控制,并且這種方式不顯示可見(jiàn)部分的最后一行。
DT_END_ELLIPSIS對(duì)于文本顯示,如果字符串的末字符不在矩形內(nèi),它會(huì)被截?cái)嗖⒁允÷蕴?hào)標(biāo)識(shí)。 如果是一個(gè)單詞而不是一個(gè)字符,其末尾超出了矩形范圍,它不會(huì)被截?cái)唷?br/>字符串不會(huì)被修改,除非指定了 DT_MODIFYSTRING 標(biāo)志。
DT_EXPANDTABS展開(kāi) TAB 符號(hào)。 默認(rèn)每個(gè) TAB 占8個(gè)字符位置。注意,DT_WORD_ELLIPSIS、DT_PATH_ELLIPSIS 和 DT_END_ELLIPSIS 不能和 DT_EXPANDTABS 一起用。
DT_EXTERNALLEADING在行高里包含字體的行間距。通常情況下,行間距不被包含在正文的行高里。
DT_HIDEPREFIX

Windows 2000/XP: 忽略文字中的前綴字符(&),并且前綴字符后面的字符不會(huì)出現(xiàn)下劃線。其他前綴字符仍會(huì)被處理。例如:

輸入字符串: "A&bc&&d"
通常輸出: "Abc&d"
DTDT_HIDEPREFIX:"Abc&d"

DT_INTERNAL使用系統(tǒng)字體計(jì)算文字的寬高等屬性。
DT_LEFT文字左對(duì)齊。 
DT_MODIFYSTRING修改指定字符串為顯示出的正文。僅當(dāng)和 DT_END_ELLIPSIS 或 DT_PATH_ELLIPSIS 標(biāo)志同時(shí)使用時(shí)有效。
DT_NOCLIP使輸出文字不受 pRect 裁剪限制。使用 DT_NOCLIP 會(huì)使 drawtext 執(zhí)行稍快一些。
DT_NOFULLWIDTHCHARBREAKWindows 2000/XP: 防止換行符插入到 DBCS (double-wide character string,即寬字符串),換行規(guī)則相當(dāng)于 SBCS 字符串。僅當(dāng)和 DT_WORDBREAK 一起使用時(shí)有效。例如,漢字就是寬字符,設(shè)置該標(biāo)志后,連續(xù)的漢字會(huì)像英文單詞一樣不被換行符中斷。
DT_NOPREFIX

關(guān)閉前綴字符的處理。通常,DrawText 解釋前綴轉(zhuǎn)義符 & 為其后的字符加下劃線,解釋 && 為顯示單個(gè) &。指定 DT_NOPREFIX,這種處理被關(guān)閉。

例如:輸入字符串: "A&bc&&d"

通常輸出: "Abc&d"
DT_NOPREFIX: "A&bc&&d"
DT_PATH_ELLIPSIS對(duì)于顯示的文字,用省略號(hào)替換字符串中間的字符以便容納于矩形內(nèi)。如果字符串包含反斜杠(\),DT_PATH_ELLIPSIS 盡可能的保留最后一個(gè)反斜杠后面的文字。
字符串不會(huì)被修改,除非指定了DT_MODIFYSTRING標(biāo)志。
DT_PREFIXONLY

Windows 2000/XP:僅僅在(&)前綴字符的位置下繪制一個(gè)下劃線。不繪制字符串中的任何其他字符。例如:

輸入字符串: "A&bc&&d"

通常輸出: "Abc&d"
DT_PREFIXONLY: " _   "
DT_RIGHT文字右對(duì)齊。
DT_RTLREADING設(shè)置從右向左的閱讀順序(當(dāng)文字是希伯來(lái)文或阿拉伯文時(shí))。默認(rèn)的閱讀順序是從左向右。
DT_SINGLELINE使文字顯示在一行?;剀?chē)和換行符都無(wú)效。
DT_TABSTOP設(shè)置 TAB 制表位。uFormat 的 15–8 位指定 TAB 的字符寬度。默認(rèn) TAB 表示 8 個(gè)字符寬度。注意,DT_CALCRECT、DT_EXTERNALLEADING、DT_INTERNAL、DT_NOCLIP 和 DT_NOPREFIX 不能和 DT_TABSTOP 一起用。
DT_TOP文字頂部對(duì)齊。
DT_VCENTER文字垂直居中。僅當(dāng)和 DT_SINGLELINE 一起使用時(shí)有效。
DT_WORDBREAK自動(dòng)換行。當(dāng)文字超過(guò)右邊界時(shí)會(huì)自動(dòng)換行(不拆開(kāi)單詞)?;剀?chē)符同樣可以換行。
DT_WORD_ELLIPSIS截去無(wú)法容納的文字,并在末尾增加省略號(hào)。


三個(gè)參數(shù)都介紹完,那么可以試試了,比如我們需要在0, 0, 200, 200這個(gè)區(qū)域里,寫(xiě)一個(gè)默認(rèn)白色,背景亮紅色的字,且左右和上下都居中顯示,那么可以使用DT_CENTER、DT_VCENTER 、DT_SINGLELINE三個(gè)參數(shù)用按位或|連接,完整代碼如下:

//www.sztianhecheng.cn
#include <graphics.h>        // 引用圖形庫(kù)頭文件
#include <conio.h>
int main()
{
	int a;
	char str[100]="www.sztianhecheng.cn";
        initgraph(640, 480);   // 創(chuàng)建繪圖窗口,大小為 640x480 像素
	RECT r = {0, 0, 200, 200};
	setbkcolor(LIGHTRED);
	drawtext(str, &r, DT_CENTER | DT_VCENTER | DT_SINGLELINE);
	getch();            // 按任意鍵繼續(xù)
    closegraph();           // 關(guān)閉繪圖窗口
    return 0;
}

默認(rèn)背景色是和窗口黑色是一樣的,我們這里用setbkcolor改了背景色,最終效果如圖:

指定區(qū)域指定格式輸出內(nèi)容


大家可以再更改字體顏色、其他背景色,以及矩陣大小,還有第三個(gè)參數(shù)來(lái)調(diào)整文字的樣式


點(diǎn)贊(0)

C語(yǔ)言網(wǎng)提供由在職研發(fā)工程師或ACM藍(lán)橋杯競(jìng)賽優(yōu)秀選手錄制的視頻教程,并配有習(xí)題和答疑,點(diǎn)擊了解:

一點(diǎn)編程也不會(huì)寫(xiě)的:零基礎(chǔ)C語(yǔ)言學(xué)練課程

解決困擾你多年的C語(yǔ)言疑難雜癥特性的C語(yǔ)言進(jìn)階課程

從零到寫(xiě)出一個(gè)爬蟲(chóng)的Python編程課程

只會(huì)語(yǔ)法寫(xiě)不出代碼?手把手帶你寫(xiě)100個(gè)編程真題的編程百練課程

信息學(xué)奧賽或C++選手的 必學(xué)C++課程

藍(lán)橋杯ACM、信息學(xué)奧賽的必學(xué)課程:算法競(jìng)賽課入門(mén)課程

手把手講解近五年真題的藍(lán)橋杯輔導(dǎo)課程

Dotcpp在線編譯      (登錄可減少運(yùn)行等待時(shí)間)