CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
山寨机中的战斗机! 程序优化工程师到底对IT界有没有贡献
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  VC/MFC >  界面

我在视图(view)的OnDraw()函数中进行画图,当图的大小超过屏幕时,如何让视图出现滚动条。高手救我!!

楼主pbfighter(Studying!)2002-11-04 13:13:00 在 VC/MFC / 界面 提问

我在视图(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

相关问题

  • 明明执行了视图的OnDraw函数,但视图却显示不出来,怎么办?OnDraw函数是我在视图类中手动调用的
  • 一定要在OnDraw函数里才能画图吗?
  • 加了WM_PAINT的OnPaint(),在OnDraw()的画图函数就没用了?而只
  • 怎么在视图的OnDraw()函数里得到视图窗口的无效区域?(也就是要刷新的区域)
  • 关于视图类的构造函数:)
  • 我要在c++builder里画图,请问c++builder里有没有函数能够像 vc那个的函数OnDraw();。谢谢!
  • 求助可调用的画图函数
  • 问CDC画图的函数问题
  • 请问几个VC画图函数!!!
  • 画图函数的一个问题

关键词

  • 视图
  • 函数
  • view
  • top
  • gridrect
  • cscrollview
  • ondraw
  • sizetotal
  • rc
  • dy

得分解答快速导航

  • 帖主:pbfighter
  • ixMind
  • lblyy76
  • goodsong
  • andy_lau
  • ruihuahan

相关链接

  • Visual C++类图书
  • Visual C++类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo