中文字幕日韩精品一区二区免费_精品一区二区三区国产精品无卡在_国精品无码专区一区二区三区_国产αv三级中文在线

518抽獎(jiǎng)軟件源碼之:GDI+上下左右中對(duì)齊

518抽獎(jiǎng)軟件源碼之:GDI+上下左右中對(duì)齊

在開(kāi)發(fā)“518抽獎(jiǎng)軟件”的時(shí)候,需要用到GDI+的寫(xiě)文字功能。 GDI+在對(duì)齊方面比原來(lái)的GDI復(fù)雜些,主要是 StringFormat 的參數(shù)設(shè)置和行高的測(cè)定問(wèn)題,詳情參考下面的源碼。

創(chuàng)新互聯(lián)公司2013年至今,先為云州等服務(wù)建站,云州等地企業(yè),進(jìn)行企業(yè)商務(wù)咨詢(xún)服務(wù)。為云州企業(yè)網(wǎng)站制作PC+手機(jī)+微官網(wǎng)三網(wǎng)同步一站式服務(wù)解決您的所有建站問(wèn)題。

GDIPLUS(gdi+)對(duì)齊處理的函數(shù)源碼


//單行文本,rc內(nèi)對(duì)齊,align是水平對(duì)齊,valign是垂直對(duì)齊
//
void Tapp::paint_str(HDC hDc, const WCHAR* str, LOGFONT& lf, COLORREF color, RECT& rc, WORD align, WORD valign)
{
	if (!str) return;
	if (rc.right - rc.left <= 1 || rc.bottom - rc.top <= 1) return;

	StringFormat fmt;
	fmt.SetFormatFlags(StringFormatFlagsNoWrap | StringFormatFlagsNoClip | StringFormatFlagsMeasureTrailingSpaces);

	if (align == ALIGN_NEAR) fmt.SetAlignment(StringAlignmentNear);
	else if (align == ALIGN_CENTER) fmt.SetAlignment(StringAlignmentCenter);
	else fmt.SetAlignment(StringAlignmentFar);
	fmt.SetLineAlignment(StringAlignmentNear);

	RectF rcF;
	rcF.X = rc.left;
	rcF.Y = rc.top;
	rcF.Width = rc.right - rc.left;
	rcF.Height = rc.bottom - rc.top;

	FontFamily ff(lf.lfFaceName);
	Font gfont(hDc, &lf);
	SolidBrush  bru(Color(GetRValue(color), GetGValue(color), GetBValue(color)));
	Graphics g(hDc);

	int style = FontStyleRegular;
	if (lf.lfItalic) style = FontStyleItalic;
	if (lf.lfWeight == FW_BOLD) style = FontStyleBold;
	if (lf.lfItalic && lf.lfWeight == FW_BOLD) style = FontStyleBoldItalic;
	double r = (double)(ff.GetCellAscent(style) + ff.GetCellDescent(style)) / (double)ff.GetLineSpacing(style);

	if (align == ALIGN_NEAR) rcF.Width += 500.0;
	else if (align == ALIGN_FAR) { rcF.X -= 500.0; rcF.Width += 500.0; }
	else { rcF.X -= 500.0; rcF.Width += 1000.0; }

	if (valign == ALIGN_NEAR) rcF.Height += 500.0;
	else if (valign == ALIGN_CENTER) {
		rcF.Y -= 500.0;
		rcF.Height += 1000.0;
		rcF.Y += ((rcF.Height - gfont.GetHeight(&g)*r) / 2.0);
	}
	else {
		rcF.Y -= 500.0;
		rcF.Height += 500.0;
		rcF.Y += (rcF.Height - gfont.GetHeight(&g)*r);
	}

	SetTextRenderingHint(TextRenderingHintAntiAlias);
	g.DrawString(str, -1, &gfont, rcF, &fmt, &bru);
}

網(wǎng)站標(biāo)題:518抽獎(jiǎng)軟件源碼之:GDI+上下左右中對(duì)齊
文章地址:http://www.rwnh.cn/article24/jeecce.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站營(yíng)銷(xiāo)、網(wǎng)站建設(shè)搜索引擎優(yōu)化、品牌網(wǎng)站設(shè)計(jì)服務(wù)器托管、網(wǎng)站維護(hù)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶(hù)投稿、用戶(hù)轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀(guān)點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話(huà):028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

成都網(wǎng)頁(yè)設(shè)計(jì)公司
永顺县| 金寨县| 东台市| 伊春市| 盐亭县| 安图县| 临江市| 德州市| 普陀区| 施秉县| 南康市| 衡南县| 衡阳县| 化州市| 乌拉特中旗| 沙雅县| 华阴市| 水城县| 通山县| 观塘区| 海门市| 成安县| 兖州市| 太和县| 洱源县| 西丰县| 黄梅县| 凤城市| 应用必备| 敦化市| 罗江县| 托克逊县| 成都市| 韩城市| 巨鹿县| 鲁山县| 饶阳县| 台山市| 德格县| 连城县| 嘉鱼县|