我在视图(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 异步传输recv收到很多0的问题? 对于阻塞的tcp套接字,调用send时究竟要不要循环调用? 透明桌面橡皮擦问题 菜鸟级别问题,帮帮忙哈! 如何改变音量!! 请问大家都用什么软件来管理您的代码库? ASP COM开发,初级问题。100分! 请问我怎样才能将CEdit框中的多行文本赋值到一个char 变量或CString 对象? 读取图片的问题 请教一个关于putc,getc的问题 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改大即可
要支持缩放请看另外的资料