图像的局部刷新。。pictureBox

nieshoushuai 2009-05-16 12:01:41
假如我只是想要刷新pictureBox的某一个RECT区域,请问如何实现。

不用C#的方法也行,C++也可以,我封装一下,在C#中调用就行。

每次可能只刷新某一条线。然后循环执行。

我是做工控软件的,最近遇到一个图像滚动的难题,

滚动算法:
有一个图像数据采集卡,循环不停地采集图像数据。。。。每采集一行数据就显示一行。

假如滚动窗口大小100*200;
显示第一条线在最上方,依次第二、第三。。。。。
当到达第200跳线的时候,把第2-200条线覆盖到1-199上,新来的一条线画在200上。

一直这样,执行下去,就是一个很流畅的滚动个过程了。

算法没问题吧?但是刷新pictureBox可是一件非常头痛的事情,如果整个控件刷新,CPU几乎80%;
我的想法就是每一条线来的时候只刷新当前变化的区域。我只是想试一下。

C#太弱了。

我有一个C++的图像滚动DLL,却调用不了,VC写的,有个参数致命弱点:HDC。这好像是VC独有的吧,c#没法转换呀,那位大侠能将INTPTR转换为HDC???。我就不用这么费事了。

有会的,感兴趣的,本人提供美国佬编写的价值3000美元的图像滚动DLL。在液晶显示屏中,滚动的太帅了。。
我发过一个帖子,“价值3000美元的图像滚动DLL”
我的邮件:niess@mesnac.com。前提是您会这方面的东西。。
...全文
214 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
光宇广贞 2009-05-17
  • 打赏
  • 举报
回复
刷新一定是整个控件区域刷新……除非你重写onpaint事件,不过效率也差不多。

picturebox写load事件,里面写一行application.doevent,可以在重载图片的时候不阻塞前台UI的动作,尤其对于大量的刷新工作尤其有用。

光宇广贞 2009-05-17
  • 打赏
  • 举报
回复
对此问题不清楚,只是知道应该发到C++版去……

hikaliv@gmail.com
需要美国佬的学习一下。
lwllp2007 2009-05-17
  • 打赏
  • 举报
回复
HDC 用 IntPtr

参考
xufzu123 2009-05-17
  • 打赏
  • 举报
回复
试试managed directX试试,说不准能找到与HDC对应的类型,本人也刚学C#,只是提个想法,不知可行否~~
zcandyly20211 2009-05-16
  • 打赏
  • 举报
回复
友情up!
zhushoudong 2009-05-16
  • 打赏
  • 举报
回复
那 我就帮顶了
wuyq11 2009-05-16
  • 打赏
  • 举报
回复

111,126

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Creator Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧