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

MFC OnCtlColor 工业控制中的陷阱

最近写一个长时间(大约一周)运行的程序,发现总在2个多小时的时候显示曲线部分全黑。但是程序正常运行(日志、采集)。找了很长时间的原因。最后经过Google上的资料知道说GDI对象不断增加可能导致这个问题,最后一看正式,GDI对象不断增加,都到7000了。查找程序发现了问题:

在OnCtrlColor函数中不能CreateSolidBrush后直接返回,这是造成GDI对象增加的原因。修改为:


HBRUSH hbr = CFormView::OnCtlColor(pDC, pWnd, nCtlColor);

switch(pWnd->GetDlgCtrlID())
{

case IDC_EDIT_C_T_ID:
pDC->SetBkMode(TRANSPARENT);
pDC->SetTextColor(m_rgbRed);
hbr = m_hBrush2; //就是此处,这是改正后的代码。hBrush2在CView的OnInitialUpdate中创建m_hBrush2 = CreateSolidBrush(RGB(255,125,255));
break;
}
return hbr;


本小菜又学会了一小招。当然了,一般情况下不会出现问题,运行时间不够长。但是不代表你的程序没有问题。

相关文章:

  • appium+python自动化34-获取元素属性get_attribute
  • 英语介词用法
  • jQuery基础教程
  • 在xx网站上, 用什么介词?
  • 【SqlServer】在SqlServer中把数据导入导出为Excel文件
  • exp之flashback_scnflashback_time
  • JAVASCRIPT高程笔记-------第 七章 函数表达式
  • 适应性超强的focus
  • 内存泄漏
  • 首页列表显示全部问答,完成问答详情页布局
  • POJ 2057 The Lost House 树形DP+贪心
  • JAVA Http Basic auth
  • 如何两个栈实现队列?两个队列实现栈?
  • Java之字符流操作-复制文件
  • 判断是否长按某一键
  • Angular4 模板式表单用法以及验证
  • js操作时间(持续更新)
  • Js基础知识(四) - js运行原理与机制
  • JS实现简单的MVC模式开发小游戏
  • Python连接Oracle
  • React Native移动开发实战-3-实现页面间的数据传递
  • Spring Cloud(3) - 服务治理: Spring Cloud Eureka
  • SQLServer之创建数据库快照
  • 创建一种深思熟虑的文化
  • 关于Android中设置闹钟的相对比较完善的解决方案
  • 开发基于以太坊智能合约的DApp
  • 排序算法学习笔记
  • 为物联网而生:高性能时间序列数据库HiTSDB商业化首发!
  • ​比特币大跌的 2 个原因
  • ​插件化DPI在商用WIFI中的价值
  • #LLM入门|Prompt#1.7_文本拓展_Expanding
  • (C语言)球球大作战
  • (附源码)ssm考试题库管理系统 毕业设计 069043
  • (实战)静默dbca安装创建数据库 --参数说明+举例
  • (一)为什么要选择C++
  • (原創) 系統分析和系統設計有什麼差別? (OO)
  • .h头文件 .lib动态链接库文件 .dll 动态链接库
  • .net core使用ef 6
  • .net framwork4.6操作MySQL报错Character set ‘utf8mb3‘ is not supported 解决方法
  • .NET 应用启用与禁用自动生成绑定重定向 (bindingRedirect),解决不同版本 dll 的依赖问题
  • .net6 webapi log4net完整配置使用流程
  • .NET多线程执行函数
  • .NET开发不可不知、不可不用的辅助类(一)
  • .Net小白的大学四年,内含面经
  • .w文件怎么转成html文件,使用pandoc进行Word与Markdown文件转化
  • :如何用SQL脚本保存存储过程返回的结果集
  • @ConditionalOnProperty注解使用说明
  • [1] 平面(Plane)图形的生成算法
  • [2024最新教程]地表最强AGI:Claude 3注册账号/登录账号/访问方法,小白教程包教包会
  • [Angular 基础] - 指令(directives)
  • [BZOJ4010]菜肴制作
  • [C#][DevPress]事件委托的使用
  • [C#]手把手教你打造Socket的TCP通讯连接(一)
  • [C#小技巧]如何捕捉上升沿和下降沿
  • [C/C++]_[初级]_[关于编译时出现有符号-无符号不匹配的警告-sizeof使用注意事项]