回 帖 发 新 帖 刷新版面

主题:如何提高TextOut的速度?

发现用VB中的Print输出文本很慢,改用API的TextOut,有所改善,但仍占用很多时间。

我要在很多网格点上标注文本,测试发现,TextOut很占用时间,比画图(line)还占时间。

有无办法进一步提高TextOut的速度?

回复列表 (共2个回复)

沙发

TextOut应该说时WNDOWS中绘制文字最快的函数了,你说的很慢可能是因为用了MFC的缘故,我曾经测试过在C700的机器上,TextOut()函数绘制5个英文字母所需的时间是1毫秒左右,而DrawText()则是5毫秒左右,其他的文本函数都比TextOut()慢些。
建议用如下格式调用:
HDC hdc = GetDC(hWnd)
if(hdc)
{
  TextOut(hdc, x,y, string, lstrlen(string));
   ... //将所有的绘制文本的函数都放在循环内部
}
ReleaseDC(hWnd, hdc);

板凳

感谢楼上的赐教。
我用的是VB,调用语句为:
TextOut hdc, x, y, string, lstrlen(string)
我的情况是边画图边标注文本,可能把画图和文本标注分开会快些?

我来回复

您尚未登录,请登录后再回复。点此登录或注册