仙人指路的编程乐园
留言簿 主人介绍 返回主页
Windows驱动 毕设 电子电路 电脑 PE外壳 心情 Windows应用程序 随笔 Web技术 加密算法 古老的DOS编程 杂项
VC++写的故障录波查看分析软件
类别: Windows应用程序  上传时间: 2010-1-5 14:06:42  浏览(337)  留言(8) 
附件: 显示波形部分源码.rar
摘要:     波形文件分析从07年开始写,经过了好几个版本改来改去基本定型了,这是08年7月的发布的程序,看似挺好的。

 

本软件是一个录波的查看分析软件,是在200867月份用VC++2003开发的,能分析公司所有的录波格式,能打开标准comtrade文本格式录波文件,能把打开的录波文件保存为comtrade格式。之前也做过一个类似的程序,但是没有这个功能多,兼容性好。下面是打开多个文件后的程序界面。

它是个多文档程序,包括两部分,一个是MDI框架 (打开文件),编译成了exe;一个是MDI子窗口 (显示波形),编译成了dll,两个放到一起才能执行。因为历史和现实原因,波形文件的格式各不相同,在打开文件的时候,把它们统一成程序内部可操作的格式,然后分派给MDI子窗口显示。注意程序下方的窗口切换栏,是模仿EditPlus制作的。

//窗口切换栏的部分代码

void CMdiTabBar::AddButton(CString& caption, HWND wnd)

{

  TBtnInfo new_btn;

  int     size = (int)m_BtnInfos.GetSize();

  CDC*    pdc = GetDC();

  CSize   tsize; //文字占的地方大小

 

  //文字宽度

  pdc->SelectStockObject(DEFAULT_GUI_FONT);

  tsize = pdc->GetTextExtent(caption);

   

  if(size > 0)

  {

    for(int i=0; i < size; i++)

      m_BtnInfos[i].IsFocus = false;

  }

   

  new_btn.Caption = caption;

  new_btn.ChildWnd = wnd;

  new_btn.IsFocus = true;

  new_btn.CaptionWidth = tsize.cx;

  m_BtnInfos.Add(new_btn);

 

  Relayout();

  Invalidate();

}

显示和隐藏

拖放比较,放大缩小

水平参考线,垂直参考线,设置界面颜色和波形颜色

蜂窝状的颜色选择框也是我的得意之作,模仿Office中的颜色选择,Office中蜂窝外围颜色很不规则,我把它都做成规则的了。下面就是颜色处理的部分代码。

// 功能: 颜色变换 HSL -> RGB

// 参数: H - 色相(0.0 - 1.0)

//       S - 饱和度(0.0 - 1.0)

//       L - 亮度(0.0 - 1.0)

COLORREF CColorPickerCtrl::HslToRgb(double H, double S, double L)

{

  int R, G, B;

  double v1, v2;

 

  if(S <= 0.0001) //灰色              

  {

    R = G = B = int(L * 255 + 0.5);                   

  }

  else

  {

    if(L < 0.5)

      v2 = L * (1.0 + S);

    else          

      v2 = L + S - S * L;

 

    v1 = 2 * L - v2;

 

    R = int(255 * HueToRgb(v1, v2, H + 1.0 / 3.0) + 0.5);

    G = int(255 * HueToRgb(v1, v2, H) + 0.5);

    B = int(255 * HueToRgb(v1, v2, H - 1.0 / 3.0) + 0.5);

  }

  return RGB(R, G, B);

}

查看文件属性

波形的合成计算

计算结果如下

导出为comtrade通用格式

打印预览,必须要先安装打印机

程序中使用了双向链表模板,是因为学习微软的链表类也学不好,也不喜欢用STL,才自己写的。

 

作者:杨志朋          

文章日期:201015

邮箱:misssir@126.com

QQ13633292       

 

上一篇: 通过EHCI访问U盘的代码  下一篇: DOS下的SVGA编程


留言
2010-9-5 14:20:51
最主要的代码已经上传,请大家评议
-- 仙人
2010-8-24 11:46:34
楼主好,不好意思啊,没收到您的邮件,能否再重发一次,very thanks~~~~~~~~
-- nina
源码两年前已上传到CSDN上,如果幸运的话,还能搜索到,相信缘分,好运哦,现在肯定还能下载
-- 主人回复
2010-8-10 12:50:07
和上面的小兄弟一样,如果可以的话,发一份源代码到我的信箱里,谢谢!
-- 老高
2010-7-27 16:49:03
您好!看到您开发的这款软件非常实用,可否把该软件发至我的邮箱?谢谢!
-- WDB
2010-7-13 16:44:32
源码可以学习一下吗?如果可以的话,发我邮箱一份吧。thanks!
-- nina
 
查看全部留言



Copyright © 2009 BY MISSSIR,网站版权所有。 京ICP备09095257号

花褪残红青青杏小。燕子飞时,绿水人家绕。枝上柳绵吹又少。天涯何处无芳草。
墙里秋千墙外道。墙外行人,墙里佳人笑。笑渐不闻声渐悄。多情总被无情恼。

今年访问量 24288  今月访问量 848  今日访问量 26 

关于 您的地址
您的大名 您的邮箱
QQ/MSN/Tel 是否保密
留言内容