主题:如何提高TextOut的速度?
mltx
[专家分:20880] 发布于 2005-01-31 11:11:00
发现用VB中的Print输出文本很慢,改用API的TextOut,有所改善,但仍占用很多时间。
我要在很多网格点上标注文本,测试发现,TextOut很占用时间,比画图(line)还占时间。
有无办法进一步提高TextOut的速度?
回复列表 (共2个回复)
沙发
hpg608 [专家分:50] 发布于 2005-02-02 21:42:00
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);
板凳
mltx [专家分:20880] 发布于 2005-02-03 10:48:00
感谢楼上的赐教。
我用的是VB,调用语句为:
TextOut hdc, x, y, string, lstrlen(string)
我的情况是边画图边标注文本,可能把画图和文本标注分开会快些?
我来回复