如何用c# winform GDI+ 的方式实现不闪烁的高速实时波形图?

实现方法没问题,解决闪烁我知道的就两个办法
双缓冲
this.SetStyle(ControlStyles.DoubleBuffer | ControlStyles.UserPaint | ControlStyles.AllPaintingInWmPaint, true);
this.UpdateStyles();
还有就是局部刷新
Rectangle rect = new Rectangle(new Point(0,0),new Size(50,50));
this.Invalidate(rect);
这两句可以加在属性里,表明只是刷新从坐标(0,0)开始的大小为50,50的区域

不过感觉数据每次都是变化的,,这样做,可能之前画的波形不会被覆盖.

尽可能的缩小波形图的大小,并且延长sleep间隔

比如系统里的进程管理器,迅雷的流量监视,他们的间隔都是1秒.
这对一般用户就已经可以接受了.

用C#.net的GDI+画图,如何实现图像的旋转,比如直线,矩形,椭圆等等,用RotateTransform或者不用都可以~

画“直线,矩形,椭圆”这个是怎么画的???c#.net GDI+里面有相应的函数,那旋转是一样的,你画直线时,需要提供参数,画矩形时也需要提供参数,旋转只不过是参数变量变了而已。求出变量就可以了!

使用GDI是可以实现的,我只说下思路吧,代码自己写吧:
图中效果可以使用Form+图片来实现,其中图片为GDI绘制完后赋值到Form中的,Form可以将背景设置为透明色,只显示图片,许多游戏登陆界面的不规则窗体都是这么做的。
图片的绘制思路:
边框圆边:可以截图后用PS扣出边框以内的圆形图片保存为png格式,背景颜色为空,也就是除了圆以外的地方(图片为矩形)都没有背景色。
中间人物图标:直接抠图
扇形进度条:用GDI里的Graphics.DrawPie(参数……),里面有设置开始角度和结束角度的参数,按你需求设置将圆分为多少份儿(360°),没增加一个进度格(如果分为360份)绘制一个DrawPie并增加一度的开始角度和结束角度,并设置填充颜色。
绘制流程:先DrawImage()绘制圆形边框->绘制DrawPie()->最后绘制人物图片
最后将绘制的图片赋值到form窗体的控件中,将Form窗体控件背景色设为透明色,隐藏窗体标题栏FormBorderStyle设置
具体怎么设置背景透明百度下就有
希望帮到你

#15612062513# C#的winform编程中,如何实现排版功能 - ******
#燕垂# 如果内容控件被选中 键盘 检测上下左右按键 鼠标 MouseDown 记下鼠标位置 MouseUp再记下位置 比较两个的差值 将内容随之移动 当然 MouseMove也是可以的 但要这样做 一个类变量比如bool b MouseDown 的时候b=true MouseUp为false 当为true的时候内容随MouseMove移动

#15612062513# 如何用C#写一个透明控件?(WinForm程序) - ******
#燕垂# 首先先从System.Windows.Forms.Panel 继承一个自定义控件,然后在控件的构造函数中添加下面的代码 :SetStyle(ControlStyles.UserPaint, true); SetStyle(ControlStyles.SupportsTransparentBackColor, true); this.BackColor = Color.Transparent...

#15612062513# C#如何制作winform动态曲线图 - ******
#燕垂# 下个微软的chart控件,装好后引到程序中,属性里面设置,就和datagrid差不多,看看就会了

#15612062513# winform运行中怎么用C# 代码调整窗口位置,特别是怎么居中到屏幕中央??? 设置属性 StartPosion 不行 - ******
#燕垂# 获取当前屏幕分辨率->获取当前窗口大小->计算如果居中的话当前窗口的位置->给当前窗口位置赋值 方法挺笨的,不过可以实现,代码如下,测试通过. int height = System.Windows.Forms.SystemInformation.WorkingArea.Height; int width = ...

#15612062513# 在winform中用C#编程实现菜单栏中的各种功能该怎么编代码啊?我只知道怎么关闭,像打开,保存,工具栏都不 - ******
#燕垂# 什么也不说了,直接代码:打开:OpenFileDialog open = new OpenFileDialog(); open.Filter = "All File(*)|*.*"; open.Title = "打开"; if (open.ShowDialog() == DialogResult.OK) { //这里处理打开文件后代码 } open.Dispose(); 保存:...

#15612062513# 如何使用C#编写获取机器人坐标的winform程序 - ******
#燕垂# private void Form1_Move(object sender, EventArgs e) { this.label1.Text = this.Location.X.ToString() + "," + this.Location.Y.ToString(); } 注意:Form1是窗体类名,label1是Form1窗体里面的一个Label控件,注意这个事件是Move事件,也就是窗口移动事件

#15612062513# 如何用c#winform应用程序调用c++控制台应用程序??? - ******
#燕垂# // 方法1 System.Diagnostics.Process.Start(@"cpp-console.exe", "/1 /2"); // 立即运行 // 方法2 System.Diagnostics.Process process = new System.Diagnostics.Process(); process.StartInfo = new System.Diagnostics.ProcessStartInfo(@"cpp-console.exe", "/1 /2"); process.Start(); // 推迟运行 // 假设cpp-console.exe是你的c++控制台程序,/1 /2是参数

#15612062513# 熟悉C# WinForm程序,了解接口怎么用高手帮我解答一个问题? - ******
#燕垂# 回答你的问题: 1 接口是一种程序规范,接口中的方法必须要去实现,你的那三个文件与接口没有联系,在写面向对象思想的程序时,在涉及到业务逻辑的类设计之前,一般先进行接口设计,也就是先做好基本的框架,在实施过程中,用类直接...

#15612062513# 用C#在winform中如何实现这个效果. - ******
#燕垂# //多个linkLabel同时指向下面两个事件方法 private void linkLabel1_MouseHover(object sender, EventArgs e) { LinkLabel linkLabel = sender as LinkLabel ; this.Text = linkLabel.Text ; } private void linkLabel1_MouseLeave(object sender, EventArgs e) { this.Text ="就绪!"; }

#15612062513# C#开发的Winform程序 如何进行打包和制作安装程序?谢谢!! - ******
#燕垂# 文件-新建-项目,其他项目类型里的安装和部署,选择安装项目,建立相应层次的文件夹和开始菜单项,运行打包就可以了.

  • c 如何编程游戏
  • 答:第一步:选择游戏类型 首先,你需要决定你要开发什么类型的游戏。C语言可以开发各种类型的游戏,包括角色扮演游戏、射击游戏、益智游戏等。你需要选择适合自己的游戏类型,然后确定游戏的基本规则和玩法。第二步:设计游戏界面 ...

  • 用c语言编程如何实现求和的程序代码?
  • 答:1、首先把头文件,main函数写好#include<stdio.h> main(),如下图所示。2、之后需要定义几个变量,一个存放和,一个从1开始到100,如下图所示。3、之后书写for循环,首先给i赋值为1,其中如果要求200以内和把数字100...

  • 用C语言编写程序,如何输入两个整数,并求和。
  • 答:int main()printf("请输入两个整数:");scanf("%d %d",&a,&b);// sum=a+b;//三、数据处理,把a、b的和赋值给sum;printf("这两个数的和是:%d\n",sum);// return 0;//返回;C语言,是一种通用的、过程...

  • C语言中的计数器如何使用?
  • 答:在C语言写程序输出时,要控制每行输出数据的个数,可以通过自定义计数器来完成。如:// 输出自然数1-30,每5个数为一行main(){ int i; int cnt=0; // 定义cnt用作输出数据的计数器,初始为0 for( i=...

  • 如何使用visualstudio2017编写c程序?
  • 答:1、首先打开电脑上的“visualstudio2017”软件,箭头处可以看到“文件”。2、依次点击“文件”、“新建”和“项目”按钮,新建一个项目。3、此处选择“windows控制台应用程序”,设置项目名称为“1”,点击“确定”即可。4、...

  • 如何使用Visual Studio 2010编写一个C语言程序
  • 答:点击源文件,右击弹出选项,鼠标移动到添加,找到项目,单击进行添加。找到C++文件,单击并命名为123.c,因为是编写C语言,所以一定要加这个后缀名。点击确定 我们拿编写求两个整数的和举例说明,代码写完之后,找到上方的调试...

  • 用C语言怎么做?
  • 答:方法/步骤 1/6分步阅读 想要编写软件首先得要有编写工具,对于初学者来说,一个好的编写工具会能让我们更快的上手,所以编写软件最好是中文版的,我这里使用的是Visual C++ 6.0(完整绿色版)软件,当然也可以用其他版本...

  • c语言如何用scanf
  • 答:1、首先,打开C语言编译器,新建一个初始.cpp文件,例如:test.cpp。2、在test.cpp文件中,输入C语言代码:int a, b, c, d;scanf("%d%d%d", &a, &b, &c, &d);printf("%d %d %d %d", a, b, c, d)...

  • 用C语言如何判断素数
  • 答:按照如下步骤即可用C语言判断素数:1、首先打开visual C++ 6.0,然后点击左上角的文件,再点击新建。2、然后在弹出的新建对话框中点击C++Source File。3、在新建的文件文本框中输入预处理命令和主函数,即函数头和空类型。...

  • 如何使用Visual Studio2010运行C语言
  • 答:1、首先打开Microsoft Visual Studio 2010如下图:然后点文件---新建---项目,如下图:然后在已安装的模板下选Win32---右边选Win32控制台应用程序---最后在下面输入项目名称,然后点确定,如下图:点确定后会出现如下图...

    为传递更多家电数码信息,若有事情请联系
    数码大全网