CTreeCtrl中重绘时出现的问题(求救啊!)

CC_TV1 2006-10-10 03:30:41
我想在节点中绘制2行文字.可是出现了一个很奇怪的问题.
初始化后,第一行文字不会出现,只有第二行文字.
而我当拖动滚动条后,第一行文字和第二行文字才会都正常显示出来.
我在OnPaint()函数中大概写下如下代码:

CString first,second;
//...
CRect rc_item;
GetItemRect( show_item, rc_item, TRUE );

CRect rc(rc_item);
rc.bottom=rect.bottom/2;
dc.DrawText(first,rc,DT_LEFT); //rc_item的上半部分绘制第一行文字
rc.top=rc.top+rc_item.Height()/2;
rc.bottom=rc_item.bottom;
dc.DrawText(second,rc,DT_LEFT); //rc_item的下半部分绘制第二行文字
...全文
215 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
CC_TV1 2006-10-11
  • 打赏
  • 举报
回复

我胡乱加了个DT_NOCLIP属性就解决了
dc.SetBkMode(TRANSPARENT);
CRect rc(rc_item);
rc.bottom=rc_item.bottom/2;
dc.DrawText(first,rc,DT_LEFT|DT_NOCLIP);//绘制第一行文字
rc.top=rc.top+rc_item.Height()/2;
rc.bottom=rc_item.bottom;
dc.DrawText(second,rc,DT_LEFT|DT_NOCLIP);//绘制第二行文字

我也弄不明白为何就能解决?
sms88 2006-10-11
  • 打赏
  • 举报
回复
不是的,我用SetItemHeight来设置项目的高,任何值都无法解决这个问题.

SetItemHeight(64); //设置节点的高
mynamelj 2006-10-11
  • 打赏
  • 举报
回复
可能是项目高度不够的原因吧
sms88 2006-10-11
  • 打赏
  • 举报
回复
up
CC_TV1 2006-10-10
  • 打赏
  • 举报
回复
我在OnPaint()函数中大概写下如下代码:

CString first,second;
//...
CRect rc_item;
GetItemRect( show_item, rc_item, TRUE );

CRect rc(rc_item);
rc.bottom=rc_item.bottom/2;
dc.DrawText(first,rc,DT_LEFT); //rc_item的上半部分绘制第一行文字
rc.top=rc.top+rc_item.Height()/2;
rc.bottom=rc_item.bottom;
dc.DrawText(second,rc,DT_LEFT); //rc_item的下半部分绘制第二行文字

15,976

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 界面
社区管理员
  • 界面
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧