标题:DrawText函数关于字模变色超出范围的问题
只看楼主
c盘格式化
Rank: 1
等 级:新手上路
帖 子:16
专家分:0
注 册:2007-4-3
 问题点数:0 回复次数:0 
DrawText函数关于字模变色超出范围的问题

以下代码片断是在定时器响应函数中实现字模平滑变色效果,
void CTextView::OnTimer(UINT nIDEvent)
{
// TODO: Add your message handler code here and/or call default


m_nWidth+=5;
CClientDC dc(this);
dc.TextOut(300,300,"打死那只猴子!!");
TEXTMETRIC tm;
dc.GetTextMetrics(&tm);
CRect rect;
rect.left=300;
rect.top=300;
rect.right=m_nWidth;
rect.bottom=rect.top+tm.tmHeight;

dc.SetTextColor(RGB(255,0,0));
dc.DrawText("打死那只猴子!!",rect,DT_RIGHT);
CView::OnTimer(nIDEvent);
}
倒数第2行的dc.DrawText的最后一个参数如果设为DT_RIGHT的话(即从右边输出),输出结果为"...打打打打打打打打打打死那只猴子!!",而且不断的向后移动.如果改为DT_LEFT就输出正常的颜色过度结果:"打死那只猴子!!".
请问:什么使用DT_LEFT从左输出就正常,不会超出范围.而用DT_RIGHT的话(即从右边输出),结果会超出范围呢?


[此贴子已经被作者于2007-6-24 23:54:51编辑过]

搜索更多相关主题的帖子: 字模 DrawText 函数 rect 范围 
2007-06-24 23:53



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-149999-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.251804 second(s), 7 queries.
Copyright©2004-2025, BCCN.NET, All Rights Reserved