当前位置: 首页 > article >正文

MFC工控项目实例三十四模拟量实时监控数字显示效果

点击监控按钮,对选中模拟量用数字显示效果实时显示数值。

SenSet.cpp中相关代码

UINT m_nCounterID_1[6] = 
	{		
			IDC_STATIC0,
			IDC_STATIC1,
			IDC_STATIC2,
			IDC_STATIC3,
			IDC_STATIC4,
			IDC_STATIC5,
							
	};

UINT m_nCounterID_2[7] = 
	{		
			IDC_STATIC7,
			IDC_STATIC8,
			IDC_STATIC9,
			IDC_STATIC10,
			IDC_STATIC11,
			IDC_STATIC12,
			IDC_STATIC13,
							
	};


SenSet::SenSet(CWnd* pParent /*=NULL*/)
	: CDialog(SenSet::IDD, pParent)
{
m_font.CreateFont(-28,0,0,0,700,FALSE,FALSE,
					0,134,OUT_DEFAULT_PRECIS,
					CLIP_DEFAULT_PRECIS,DEFAULT_QUALITY,
					FF_SWISS,"楷体_GB2312");  
}


void SenSet::OnSelchangeList1() 
{
	KillTimer(1);
	 for(int j_1=0  ; j_1 <6 ; j_1++)    
		  {
	        SetDlgItemText(m_nCounterID_1[j_1],"-");
		  }
for(int j_2=0  ; j_2 <7; j_2++)    
		  {
		int   j_3=j_2+6;
		   SetDlgItemText(m_nCounterID_1[j_3],"-");
		  }

...


void SenSet::OnButton6() 
{
GetPrivateProfileString("AD输入",nSel_str,NULL,CHO_AD.GetBuffer(20),20,theApp.strFilePath); 
		SetTimer(1,500,NULL);	
}


void SenSet::OnTimer(UINT nIDEvent) 
{
	 CString str1,str2;
    CString str[30];
	 CString str_1[30];
	if( nIDEvent == 1 )
	{
		//16通道,2 = -5000 -- 5000 mV采集
	nSel =m_IDC_LIST1.GetCurSel();
    m_IDC_LIST1.GetText(nSel,nSel_str);
	CString str;
	str.Format("%d",nSel);	
	CString str6[16],str7[16],str8[16],str9[16];
	GetPrivateProfileString("A/D设置",nSel_str+"零点电压",NULL,str6[16].GetBuffer(20),20,theApp.strFilePath);
	GetPrivateProfileString("A/D设置",nSel_str+"零点数值",NULL,str7[16].GetBuffer(20),20,theApp.strFilePath);
	GetPrivateProfileString("A/D设置",nSel_str+"量程电压",NULL,str8[16].GetBuffer(20),20,theApp.strFilePath);
	GetPrivateProfileString("A/D设置",nSel_str+"量程数值",NULL,str9[16].GetBuffer(20),20,theApp.strFilePath);
//	float MON_AD=(float) atof(str9[16])/(float) atof(str8[16])*AI6325ASingle(theApp.nAddr_AD_1,2,atoi(CHO_AD))+ theApp.flo_AD_SET_ZERO_NUM[atoi(CHO_AD)];  
//	float MON_AD=(float) atof(str9[16])/(float) atof(str8[16])*AI6325ASingle(theApp.nAddr_AD_1,2,atoi(CHO_AD))+ (float) atof(str7[16]);
    float MON_AD;
	if (  str7[16]!="")
	{
	  MON_AD=(float) atof(str7[16]);  
	}
	else  MON_AD=0.0;
    
str1.Format("%6.2f",(float)(AI6325ASingle(theApp.nAddr_AD_1,2,atoi(CHO_AD))));
str2.Format("%7.2f",MON_AD);

SetDlgItemText(IDC_STATIC99,str2); 		
	}

	 int j_1 , j_2;
 	  for( j_1=0  ; j_1 <6 ; j_1++)    
		  {
	     	GetDlgItem(m_nCounterID_1[j_1])->SetFont(&m_font);
            str[j_1]=str1.Mid(j_1,1);
		    SetDlgItemText(m_nCounterID_1[j_1],str[j_1]);
		  }
for( j_2=0  ; j_2 <7; j_2++)    
		  {
		//	
          str_1[j_2]=str2.Mid(j_2,1);
		int   j_3=j_2+6;
		GetDlgItem(m_nCounterID_1[j_3])->SetFont(&m_font);
		SetDlgItemText(m_nCounterID_1[j_3],str_1[j_2]);
		  }
	CDialog::OnTimer(nIDEvent);
}


}


http://www.kler.cn/a/420490.html

相关文章:

  • D87【python 接口自动化学习】- pytest基础用法
  • 基于智能语音交互的智能呼叫中心工作机制
  • Qt清空文件夹下的内容
  • 一款支持80+语言,包括:拉丁文、中文、阿拉伯文、梵文等开源OCR库
  • 爬虫—Scrapy 整合 ChromeDriver 实现动态网页拉取
  • ROS基本框架2——在ROS开发中创建并使用自定义消息(C++版本)
  • Git Bash + VS Code + Windows11 Git命令报错莫名奇妙的问题
  • 数据库(学习笔记)
  • YOLOv11 NCNN安卓部署
  • 【CVPR24】OmniMedVQA: 一种新的医疗LVLM大规模综合评估基准
  • 【笔记】文明、现代化与价值投资
  • 【C++boost::asio网络编程】有关异步读写api的笔记
  • 再谈Java中的String类型是否相同的判断方法
  • ESP32-S3模组上跑通ES8388(11)
  • git bash 一双击选中内容就^C (ctrl C)
  • 安全关系型数据库查询新选择:Rust 语言的 rust-query 库深度解析
  • Github提交Pull Request教程 Git基础扫盲(零基础易懂)
  • 贪心算法题
  • ipmitool使用详解(三)-解决各种dell、hp服务器无法ipmitool连接问题
  • 时频转换 | Matlab基于递归图Reccurence Plots一维数据转二维图像方法
  • Kafka系列教程 - Kafka 快速入门 -1
  • 浅析RPC—基础知识
  • <<WTF-Solidity>>学习笔记(part 21-24)
  • 淘宝天猫API接口探索:店铺商品全览与拍立淘图片搜索实战
  • Fastadmin的定时任务详解
  • python使用pdfplumber工具包加载pdf格式数据