在基于对话框的程序画图表,用什么作绘图容器? 在基于对话框的程序画图表,用什么作绘图容器?什么方法滚动绘图区? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 使用picture控件,滚动用scroll控件对picture控件控制应该可以完成,不过最好是使用稳当视图结构,在VIEW 中画比较好! 我就用的Picture控件,滚动条你可以自己加啊,这个我以前做过的,还是比较容易的 可是如果画的图超出picture控件的话,图形就会画到其它控件上,怎样做才不会出现这种情况呢? 用双缓冲,先在内存中绘制,然后拷贝到屏幕DC,这样就不会出现画出去的情况了,前段时间我也是为这个问题费了不少劲。我把我的一段代码给你看一下:CDC *pDC = m_drawbox.GetDC();CDC dcMem;CBitmap bitmap;bitmap.CreateCompatibleBitmap(pDC,300,300);dcMem.CreateCompatibleDC(pDC);CBitmap *pOld = dcMem.SelectObject(&bitmap);dcMem.FillRect(CRect(0,0,300,300),(CBrush *)dcMem.SelectStockObject(WHITE_BRUSH));POSITION pos = m_EntityList.GetHeadPosition();while( pos != NULL ) m_EntityList.GetNext(pos)->Draw(&dcMem);//把链表中的图形全部绘制一编pDC->BitBlt(0,0,300,300,&dcMem,0,0,SRCCOPY);bitmap.DeleteObject();m_drawbox.ReleaseDC(pDC);这里的m_drawbox就是Picture控件对应的变量 好的,我去试试。不过再问一下,那么Picture的type属性设置为Rectangel还是Frame还是其它? 实际上我要在ATL控件里实现,不用MFC支持的。hellolwl(刘文澜) 的方法我试了,可是还是会画到其它控件上,这个问题的关键点是什么? 双缓冲肯定可以解决的,ATL控件我也做过,也是用的这种方法,你再仔细看看程序呢 windows media player 在视图中的显示问题 菜鸟请教 VC工程下的.positions文件是干吗的? 继承子类如何使用父类的构造函数? 简单问题请教:“C-style字符串”是个什么意思?谢谢! 如何想把状态栏放大,里边的字也随之放大! 标题栏图标及系统菜单问题! RasHangUp的用法 SOS!50分悬赏! 如何将字符串转化为整数,或将整数转化为字符串,高手请进! 关于共享数据段变量。 高手请进,利用com动态合并菜单
不过最好是使用稳当视图结构,在VIEW 中画比较好!
CDC *pDC = m_drawbox.GetDC();
CDC dcMem;
CBitmap bitmap;
bitmap.CreateCompatibleBitmap(pDC,300,300);
dcMem.CreateCompatibleDC(pDC);
CBitmap *pOld = dcMem.SelectObject(&bitmap);dcMem.FillRect(CRect(0,0,300,300),(CBrush *)dcMem.SelectStockObject(WHITE_BRUSH));
POSITION pos = m_EntityList.GetHeadPosition();
while( pos != NULL ) m_EntityList.GetNext(pos)->Draw(&dcMem);//把链表中的图形全部绘制一编pDC->BitBlt(0,0,300,300,&dcMem,0,0,SRCCOPY);
bitmap.DeleteObject();
m_drawbox.ReleaseDC(pDC);这里的m_drawbox就是Picture控件对应的变量
hellolwl(刘文澜) 的方法我试了,可是还是会画到其它控件上,这个问题的关键点是什么?