如何才能使画好的图形(如圆)通过鼠标来实现在视图上的移动。谢谢。最好有代码。 如何才能使画好的图形(如圆)通过鼠标来实现在视图上的移动。谢谢。最好有代码。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 源程序下载 串行化(Serialization)示范例子 有详细代码http://www.vckbase.com/code/listcode.asp?mclsid=1&sclsid=&page=2 把要画的内容放在一个memdc上,根据移动量来bitblt到不同的位置,一劳永逸 faint.vc6技术内幕,的dc部分不就是围绕这个问题的吗??唉,为什么不多看看书呢。 这个有好多办法,最差的也是最方便的就是调用Invalidate()了,这样的话屏幕闪烁的很厉害稍微好点就是用异或的方式把上一个圆重画一下就看不到了,解决闪烁问题的最好的方法就是楼上有人说的,在内存DC中画,下面是一段简单的代码:CDC memDC;//内存DC CBitmap bitmap; CBitmap* pOldBitmap; CRect clientrect;//客户区的大小 GetClientRect(&clientrect); int width = clientrect.Width();//客户区的宽 int height = clientrect.Height();//客户区的高 memDC.CreateCompatibleDC(pDC);//创建一个依附与pDC的内存memDC bitmap.CreateCompatibleBitmap(pDC, width, height);//创建一个位图,大小和客户区一样 pOldBitmap = memDC.SelectObject(&bitmap);//把位图选入内存DC CBrush brush; brush.CreateSolidBrush(RGB(255,255,255));//创建白色刷子 memDC.FillRect(&clientrect,&brush);//填充内存DC,以便与获得跟pDC一样的背景pDC->BitBlt(0,0,width,height,&memDC,0,0,SRCCOPY);//把内存DC复制到pDC,双缓冲技术减少闪烁,我们在内存中画图然后复制到要显示的DC中 memDC.SelectObject(pOldBitmap); memDC.DeleteDC(); topYellow(zoufeng)兄的代码是正解,我来为你呐喊助威! 看看MSDN下的一个DRAWCLI的例子ALL in ONEMay you succeed! : topYellow(zoufeng) 说的好~!! 如何把数值0xAB转换成两个字符'A''B'这种形式? 怎么样给tab控件下的子对话框传消息 请问一个VC连接ORCAL中出现的奇怪问题 准备毕业了~做过游戏开发的老人给点建议把~ 如何编辑toolbar中的ICON 變量定義的問題,求高手解決 关于用CSplitterWnd分割窗口的问题,请高手指点 我能否用全局钩子(hook)来拦截NIM_MODIFY(托盘消息)?(高手救命) 简单问题,在线等! 请得有个C高手说过,实现的过程。 可以用于任何语言(VC、BCB、DELPHI...)。现在记不到了,您说说好吗? 一个ADO连接的问题 请教
串行化(Serialization)示范例子 有详细代码
http://www.vckbase.com/code/listcode.asp?mclsid=1&sclsid=&page=2
稍微好点就是用异或的方式把上一个圆重画一下就看不到了,解决闪烁问题的最好的方法就是楼上有人说的,在内存DC中画,下面是一段简单的代码:
CDC memDC;//内存DC
CBitmap bitmap;
CBitmap* pOldBitmap; CRect clientrect;//客户区的大小
GetClientRect(&clientrect); int width = clientrect.Width();//客户区的宽
int height = clientrect.Height();//客户区的高 memDC.CreateCompatibleDC(pDC);//创建一个依附与pDC的内存memDC
bitmap.CreateCompatibleBitmap(pDC, width, height);//创建一个位图,大小和客户区一样
pOldBitmap = memDC.SelectObject(&bitmap);//把位图选入内存DC CBrush brush;
brush.CreateSolidBrush(RGB(255,255,255));//创建白色刷子
memDC.FillRect(&clientrect,&brush);//填充内存DC,以便与获得跟pDC一样的背景
pDC->BitBlt(0,0,width,height,&memDC,0,0,SRCCOPY);//把内存DC复制到pDC,双缓冲技术减少闪烁,我们在内存中画图然后复制到要显示的DC中
memDC.SelectObject(pOldBitmap);
memDC.DeleteDC();
我来为你呐喊助威!
ALL in ONEMay you succeed!