我的view基类是CScrollView,
我使用TextOut将文本输出到视图上
我想根据
文本的长度、行数和当前窗口的大小关系
来动态使用滚动条我已经实现了垂直滚动条代码如下:
CSize docSize(100,(pDoc->iRow)*height);
CRect rect;
GetClientRect(&rect);
CSize pageSize(rect.right,rect.bottom);
CSize lineSize(0,height);
SetScrollSizes(MM_TEXT,docSize,pageSize,lineSize);但是水平滚动条搞了几天还没有实现我OnDraw代码如下
void CmyView::OnDraw(CDC* pDC)
{
CmyDoc* pDoc = GetDocument();
int iPosition = 0;
TEXTMETRIC tm;
GetDC()->GetTextMetrics(&tm);
LONG height = tm.tmHeight;
char szDataStr[1024]=""; for (int i=0;i<pDoc->iRow;++i)
{
wsprintf(szDataStr,"%d# [接收时间:%s] [发送方IP:%s]: %s",i+1,pDoc->timelist.GetAt(i),pDoc->addresslist.GetAt(i),pDoc->datalist.GetAt(i));
pDC->TextOut(0,iPosition,szDataStr);
iPosition +=height;
}
CSize docSize(100,(pDoc->iRow)*height);
CRect rect;
GetClientRect(&rect);
CSize pageSize(50,rect.bottom);
CSize lineSize(10,height);
SetScrollSizes(MM_TEXT,docSize,pageSize,lineSize);
}
我使用TextOut将文本输出到视图上
我想根据
文本的长度、行数和当前窗口的大小关系
来动态使用滚动条我已经实现了垂直滚动条代码如下:
CSize docSize(100,(pDoc->iRow)*height);
CRect rect;
GetClientRect(&rect);
CSize pageSize(rect.right,rect.bottom);
CSize lineSize(0,height);
SetScrollSizes(MM_TEXT,docSize,pageSize,lineSize);但是水平滚动条搞了几天还没有实现我OnDraw代码如下
void CmyView::OnDraw(CDC* pDC)
{
CmyDoc* pDoc = GetDocument();
int iPosition = 0;
TEXTMETRIC tm;
GetDC()->GetTextMetrics(&tm);
LONG height = tm.tmHeight;
char szDataStr[1024]=""; for (int i=0;i<pDoc->iRow;++i)
{
wsprintf(szDataStr,"%d# [接收时间:%s] [发送方IP:%s]: %s",i+1,pDoc->timelist.GetAt(i),pDoc->addresslist.GetAt(i),pDoc->datalist.GetAt(i));
pDC->TextOut(0,iPosition,szDataStr);
iPosition +=height;
}
CSize docSize(100,(pDoc->iRow)*height);
CRect rect;
GetClientRect(&rect);
CSize pageSize(50,rect.bottom);
CSize lineSize(10,height);
SetScrollSizes(MM_TEXT,docSize,pageSize,lineSize);
}
解决方案 »
- 为什么在一个工程中搜索一个文本串时,总是提示说 "Cannot find the string "?
- 如何让数据不被格式化
- VC编写的ACCESS程序为什么在英文版的XP中提示要登录数据库呢?
- 数据立即更新问题
- 大侠们,小弟请教一个问题,vc可以读取sybase数据库吗?
- 想写一个SDK下的读写文件的程序.但不知道用什么函数比较好一点.(初学者)
- 求教各位大侠,如何移动64位指针?(这本是VC.NET的问题,但那个论坛没人答复,只好问到这里。)
- DECLARE_DYNAMIC(CChatSocket)这个语句有什么作用?
- 怎样实现优盘插入计算机后,不通过AUTORUN.INF,自动运行里面的某个程序,谢谢
- 一个把char拷贝的小问题,高手请进
- 在视图画出坐标系的问题!
- 在vc中如何调用可执行的exe
水平滚动条垂直滚动条可以动态出现了
szDataStr是我显示在客户区的数据长度
pDoc->iRow是数据条数我需要根据每条数据的长度来动态显示水平滚动条(怎么搞都出不来,崩溃了)
数据的条数来动态显示垂直滚动条(已经可以了)
CSize docSize(strlen(szDataStr),(pDoc->iRow)*height);
CRect rect;
GetClientRect(&rect);
CSize pageSize(rect.right,rect.bottom);//客户区的宽度和高度
CSize lineSize(width,height);
SetScrollSizes(MM_TEXT,docSize,pageSize,lineSize);
用GetTextExtentEx()得到字符串的宽度。