我在视图(view)的OnDraw()函数中进行画图,当图的大小超过屏幕时,如何让视图出现滚动条。高手救我!!
我在视图(view)的OnDraw()函数中进行画图,当图的大小超过屏幕时,如何让视图出现滚动条。看到整个画的图片。
急急急急!
问题点数:50、回复次数:6Top
1 楼ixMind(路在何方)回复于 2002-11-04 13:20:57 得分 10
使用CScrollView,并在需要的时候调整scroll sizesTop
2 楼pbfighter(Studying!)回复于 2002-11-04 13:23:07 得分 0
void CT2View::OnDraw(CDC* pDC)
{
CT2Doc* pDoc = GetDocument();
ASSERT_VALID(pDoc);
// TODO: add draw code for native data here
int data[20]={19,21,32,40,41,39,42,35,33,23,21,20,24,11,9,19,22,32,40,42};
CRect rc;
GetClientRect(rc);
rc.DeflateRect(0,0);
int gridXnums=50,gridYnums=40;
int dx=rc.Width()/10;
int dy=rc.Height()/8;
CRect gridRect(rc.left,rc.top,rc.left+dx*gridXnums,rc.top+dy*gridYnums);
CPen gridPen(PS_DOT,0,RGB(0,100,200));
CPen* oldPen=pDC->SelectObject(&gridPen);
for(int i=0;i<=gridXnums;i++)
{
pDC->MoveTo(gridRect.left+i*dx,gridRect.bottom);
pDC->LineTo(gridRect.left+i*dx,gridRect.top);
}
for(int j=0;j<=gridYnums;j++)
{
pDC->MoveTo(gridRect.left,gridRect.top+j*dy);
pDC->LineTo(gridRect.right,gridRect.top+j*dy);
}
}
我的程序如上,我想在视图中画网格(50*40)但格子比较大怎么能通过滚动条看到全部啊!Top
3 楼lblyy76(yibo)回复于 2002-11-04 13:38:35 得分 10
同意楼上的。把你的视图类改为继承:public CScrollView.其他的好象没什么要修改的。Top
4 楼goodsong(风卷残云~不要把简单的事搞得N复杂)回复于 2002-11-04 14:24:44 得分 10
把你的视图类改为继承:public CScrollView
然后添加函数
void CT2View::OnInitialUpdate()
{
CSize sizeTotal(6000, 4000);
SetScrollSizes (MM_TEXT, sizeTotal);
}
你的图越大,将sizeTotal改大即可
要支持缩放请看另外的资料Top
5 楼andy_lau(天行键,君子当自强不息!)回复于 2002-11-04 14:49:08 得分 10
使用CScrollView,并在需要的时候调整scroll sizes
Top
6 楼ruihuahan(飞不起来的笨鸟)回复于 2002-11-04 15:07:01 得分 10
使用CScrollView,并在需要的时候调整scroll sizes
Top




