ExtTextOut() 代替 TextOut() 以提高性能

本文介绍如何通过使用ExtTextOut()函数替代TextOut()函数来提高文本输出到窗口的速度。ExtTextOut()提供了更底层的控制,尤其适用于需要大量文本输出的应用场景。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

ExtTextOut() 代替 TextOut() 以提高性能

http://support.microsoft.com/kb/71230/zh-cn

 

如果速度是最关键因素时应用程序将文本写入一个窗口,在应用程序应采取每个可能的速度的提高无论如何次要的优点。因此时文本写入时间有限的环境中的某个窗口,, ExtTextOut() 应该使用的 TextOut() 而不是因为 ExtTextOut() 是速度稍快。

ExtTextOut() 就是最低级功能的应用程序可以调用来输出到一个窗口的文本。另一方面,TextOut() 是实质上是一个调用 ExtTextOut() wOptions、 lpRect,和 lpDx 将设置为零。使用 ExtTextOut() 可能会不导致明显的速度差异 ; 但是,它更快地替换尤其是当应用程序有大量的写入的文本。

 

原型:

virtual BOOL ExtTextOut(
int x,
int y,
UINT nOptions,
LPCRECT lpRect,
LPCTSTR lpszString,
UINT nCount,
LPINT lpDxWidths
);
BOOL ExtTextOut(
int x, //坐标
int y,
UINT nOptions,//选项,=ETO_CLIPPED 表示要显示的文本是粘贴在矩形框内,=ETO_OPAQUE表示当前背景颜色会充满整个矩形框
LPCRECT lpRect,//Points to a RECT structure that determines the dimensions of the rectangle.
const CString& str,//Points to the specified character string to be drawn.
LPINT lpDxWidths
);

 

实例:

void OutputTime()

{

//得到本地时间
    CString str;
    GetLocalTime(&stLocal);
    str.Format(_T(" %02d:%02d:%02d"),stLocal.wHour,stLocal.wMinute,stLocal.wSecond);

    dc.SetBkMode(TRANSPARENT);
    dc.SetTextColor(RGB(255,255,255));

    dc.ExtTextOut(220,8,ETO_CLIPPED,CRect(220,8,282,29),str,NULL);

}

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值