我在视图(view)的OnDraw()函数中进行画图,当图的大小超过屏幕时,如何让视图出现滚动条。高手救我!! 我在视图(view)的OnDraw()函数中进行画图,当图的大小超过屏幕时,如何让视图出现滚动条。看到整个画的图片。急急急急! 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 使用CScrollView,并在需要的时候调整scroll sizes 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)但格子比较大怎么能通过滚动条看到全部啊! 同意楼上的。把你的视图类改为继承:public CScrollView.其他的好象没什么要修改的。 把你的视图类改为继承:public CScrollView然后添加函数void CT2View::OnInitialUpdate() { CSize sizeTotal(6000, 4000); SetScrollSizes (MM_TEXT, sizeTotal);}你的图越大,将sizeTotal改大即可要支持缩放请看另外的资料 使用CScrollView,并在需要的时候调整scroll sizes 使用CScrollView,并在需要的时候调整scroll sizes 用m_hWnd和findwindow得到的句柄不一样,求高人指点 求助:3D旋转界面(3) RegDeleteKeyEx无法使用 FTP 用户根据权限 登入目录 的问题 比较难搞的问题,字有点多请进来查看,麻烦大家帮帮小第 大家帮帮忙,一个动态创建的问题!!CRuntimeClass的问题。 为何我写的串口文件传送程序传出的文件内容总不对? 如何写有条件的sql语句(满足时间条件、人名条件、编号条件) 请问在上海做VC++编程每月能拿多少工资?? 请问DIP图像格式有人知道吗? VC中我想做一个按钮,麻烦各位仁兄帮忙 动态生成的控件,怎样加入事件? 高手救人.
{
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)但格子比较大怎么能通过滚动条看到全部啊!
然后添加函数void CT2View::OnInitialUpdate()
{
CSize sizeTotal(6000, 4000);
SetScrollSizes (MM_TEXT, sizeTotal);
}
你的图越大,将sizeTotal改大即可
要支持缩放请看另外的资料