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

Lockspace 2009-04-09 09:27:14
刚接触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) ;
}

但是不行,刚开始运行可以按设置格式显示输出,但是窗口重绘以后就在在输出上覆盖了默认的字体,而且窗体也会死掉,请指教原因?应该怎么修改?
多谢
...全文
238 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
CACACACACA 2009-04-10
  • 打赏
  • 举报
回复
?? 在什么上TextOut ??
Lockspace 2009-04-10
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 Waiting4you 的回复:]
在WM_PAINT里,应该是用BeginPaint来得到HDC的,而不是GetDC。
用CreateFont建立的字体使用后要用DeleteObject来删除,否则会耗尽GDI资源的。
[/Quote]
谢谢,可以了
Lockspace 2009-04-10
  • 打赏
  • 举报
回复
不好意思,没说清楚,是在窗体上输出文字
Waiting4you 2009-04-10
  • 打赏
  • 举报
回复
在WM_PAINT里,应该是用BeginPaint来得到HDC的,而不是GetDC。
用CreateFont建立的字体使用后要用DeleteObject来删除,否则会耗尽GDI资源的。

1,221

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder Windows SDK/API
社区管理员
  • Windows SDK/API社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧