读书人

关于TextOut()t输出文字的字体设置有关

发布时间: 2012-02-07 17:45:36 作者: rapoo

关于TextOut()t输出文字的字体设置问题 - C++ Builder / Windows SDK/API
刚接触API,很多不会用,多包涵

关于TextOut输出文字时的字体设置问题
从网上找的用法,写了如下的一段代码:

case WM_PAINT:
{
HDC hdc1;
HFONT h;
hdc1 = GetDC(hwnd);
h = CreateFont(30,0,0,0,FW_BLACK,FALSE,FALSE,FALSE,
GB2312_CHARSET,OUT_DEFAULT_PRECIS,CLIP_DEFAULT_PRECIS,
DEFAULT_QUALITY,FIXED_PITCH|FF_MODERN,"宋体");
SelectObject(hdc1,h); //选入字体
TextOut(hdc1, 0, 0, "文字", lstrlen("文字"));//输出
ReleaseDC (hwnd, hdc1) ;
}

但是不行,刚开始运行可以按设置格式显示输出,但是窗口重绘以后就在在输出上覆盖了默认的字体,而且窗体也会死掉,请指教原因?应该怎么修改?
多谢

[解决办法]
在WM_PAINT里,应该是用BeginPaint来得到HDC的,而不是GetDC。
用CreateFont建立的字体使用后要用DeleteObject来删除,否则会耗尽GDI资源的。

读书人网 >C++ Builder

热点推荐