我在用DrawTextEx输出文本时,TAB是第一个字符或z文字中间时输出的宽度不一样,不知道是怎么回事。
已经设置style为DT_EXPANDTABS | DT_TABSTOP
DRAWTEXTPARAMS参数中的iTabLength设置为4
输出结果第一个是TAB的宽度是中间TAB的2倍
开发环境vs2005+win2003
已经设置style为DT_EXPANDTABS | DT_TABSTOP
DRAWTEXTPARAMS参数中的iTabLength设置为4
输出结果第一个是TAB的宽度是中间TAB的2倍
开发环境vs2005+win2003
解决方案 »
- w7系统界面问题//在w7系统选择半透明主题之后,拖动QQ有时会出现半透明边框//w7系统的bug?
- WIN7 XP区别???????????
- 请问全局函数,如何调用mfc里面的dc,来画线
- 关于控件透明背景和闪烁问题
- 完全重绘CTabCtrl的问题
- CTreeCtrl能动态的往一个节点添加子节点吗?
- 我用CInternetSession类获得了网页的HTML源文件,但我想把有用的信息还原出来,有处理HTML的类吗?或给出思路,谢谢!
- 可以把下面这段C程序转成asp可以调用的DLL吗?付小量momey
- 新手求问,关于树节点双击弹出对话框的问题
- 有关光驱的问题?
- 用ado连接SQL数据库,账号密码正确正常,错误异常
- 实习难题 不装office如何创建word
例如tab长度为8的话,那样不管是在1位置按tab还是5位置按tab,光标都是会出现在位置9的
即下个mod(8)+1的位置
TCHAR a[] = _T( "\t123\t12233汉字\t\t0" );
DRAWTEXTPARAMS dp;
dp.cbSize = sizeof( DRAWTEXTPARAMS );
dp.iLeftMargin = 0;
dp.iRightMargin = 0;
dp.iTabLength = 4;
dp.uiLengthDrawn = 0; RECT r;
GetClientRect( &r ); LOGFONT lf;
::ZeroMemory (&lf, sizeof (lf));
lf.lfHeight = 160;
lf.lfWeight = FW_NORMAL;
lf.lfEscapement = 0;
lf.lfOrientation = 0;
::_tcscpy (lf.lfFaceName, _T ("宋体"));
CFont font;
font.CreatePointFontIndirect (&lf); CFont* pOldFont = dc.SelectObject (&font);
::DrawTextEx( dc.GetSafeHdc(), a, _tcslen( a ), &r, DT_LEFT | DT_WORDBREAK | DT_EXPANDTABS | DT_TABSTOP , &dp );
//dc.TextOut( (int)xx, (int)yy, b );
dc.SelectObject (pOldFont);
//CDialog::OnPaint();俺试了一下,没问题了。