读书人

问个GDI+的有关问题

发布时间: 2012-02-26 20:19:45 作者: rapoo

问个GDI+的问题
我们知道, 使用GDI的时候, 用TextOut或DrawText画到DC上的文字是有背景颜色的, 默认是白色背景, 黑色的字. 调用SetBkMode(TRANSPAREN)可以把背景去掉, 只留下文字. 但使用GDI+的时候, 用DrawString写出来的字, 直接就是透明的. 我还想保留这个文字背景, 该怎么办呀?

[解决办法]
MeasureString得到文字的相应区域
再用背景色填充

最后写字
[解决办法]
HOHO,看到好东西了,帮你顶个,等...
[解决办法]
写字的时候用gdi的drawtext得了
其他的地方再用gdi+

[解决办法]
Bitmap* pPicture = 某某图像;
Graphics grp(pPicture );
HDC hdc = grp.GetHDC ();
CDC* pDC = CDC::FromHandle(hdc);

pDC-> TextOut(x,y, ".... "); //同GDI操作一样

grp.ReleaseHDC(hdc);
[解决办法]
VOID Example_DrawString(HDC hdc)
{
Graphics graphics(hdc);

// Create a string.
WCHAR string[] = L "Sample Text ";

// Initialize arguments.
Font myFont(L "Arial ", 16);
RectF layoutRect(0.0f, 0.0f, 200.0f, 50.0f);
StringFormat format;
format.SetAlignment(StringAlignmentCenter);
SolidBrush blackBrush(Color(255, 0, 0, 0));

// Draw string.
graphics.DrawString(
string,
11,
&myFont,
layoutRect,
&format,
&blackBrush);

// Draw layoutRect.
graphics.DrawRectangle(&Pen(Color::Black, 3), layoutRect);
}
//////////////////////////
MSDN 上操的代码。

读书人网 >VC/MFC

热点推荐