ActiveX 控件重绘子控件时,用Invalid()会出现无效的情况即不会更新界面。

OnPaint 方法里,是用的 CPaintDC,经测试无效,后换CClientDC,发现可以,百度查他们的区别:

MFC中的CDC,CClientDC,CPaintDC,CWindowDC的区别

CDC是Windows绘图设备的基类。

CClientDC
(1)(客户区设备上下文)用于客户区的输出,与特定窗口关联,可以让开发者访问目标窗口中客户区,其构造函数中包含了GetDC,析构函数中包含了ReleaseDC。

CPaintDC
(1)用于响应窗口重绘消息(WM_PAINT)是的绘图输出。
(2)CPaintDC在构造函数中调用BeginPaint()取得设备上下文,在析构函数中调用EndPaint()释放设备上下文。EndPaint()除了释放设备上下文外,还负责从消息队列中清除WM_PAINT消息。因此,在处理窗口重画时,必须使用CPaintDC,否则WM_PAINT消息无法从消息队列中清除,将引起不断的窗口重画。
(3)CPaintDC也只能用在WM_PAINT消息处理之中。

CWindowDC
(1)可在非客户区绘制图形,而CClientDC,CPaintDC只能在客户区绘制图形。
(2)坐标原点是在屏幕的左上角,CClientDC,CPaintDC下坐标原点是在客户区的左上角。
(3)关联一特定窗口,允许开发者在目标窗口的任何一部分进行绘图,包含边界与标题,这种DC同WM_NCPAINT消息一起发送。

说明:在绘图时推荐使用CClientDC,CPaintDC和CWindowDC对象,而不推荐直接使用CDC对象。

转载于:https://www.cnblogs.com/ITBread/p/9212939.html

ActiveX 控件重绘无效问题,用CClientDC 而不是CPaintDC相关推荐

  1. C# 禁止控件重绘(绘制)

    完整代码: [DllImport("user32")] private static extern int SendMessage(IntPtr hwnd, int wMsg, i ...

  2. [系统控件重绘教程(一)]重绘NSWindow

    NSWindow的风格一直只有两种,很难看.Panel倒是有种HUD风格的,但window没有,毕竟window和panel的titile大小还是不一样的,网上有关于HUDWindow的代码,不过那是 ...

  3. 关于C#的Panel控件重绘后滚动条跳动的问题

    在网上找了很多方法,(1)记录滚动条位置,然后在重绘时将保存下来的位置重新复制: (2)重写ScrollToControl: 其中第一种方法治标不治本,会出现画面闪动,第二种方法最为有效. 下面主要记 ...

  4. IE重新装ActiveX控件

    项目因版本升级,需要重新安装一次已经装过的ActiveX控件,安装步骤如下: IE-->右键属性-->程序-->管理加载项-->IE 已经使用的加载项-->找到原来安装的 ...

  5. ActiveX控件和它的容器

    1.COM基础 2.ActiveX控件及实现 3.ActiveX控件容器及实现 4.总结 1.COM基础 COM是一种组件开发技术, 它实际上是一种在二进制层上兼容的软件开发方法的规范. COM技术是 ...

  6. JavaScript使用ACTIVEX控件引起崩溃问题的解决

    JavaScript使用ACTIVEX控件引起崩溃问题的解决 问题 在本人目前的项目中,前端部分完全使用EXTJS基于"One-Page"理念搭建.除了一个HTML作为基本容器外, ...

  7. 13、ActiveX控件

    基本概念: 可以把ActiveX控件看做是一个极小的服务器应用程序,它不能独立运行,必须嵌入到容器程序中,与容器一起运行.容器应用程序是可以嵌入或链接对象的 应用程序:服务器应用程序是创建对象并且当对 ...

  8. 基于VS2013的ActiveX控件实现

    1.ActiveX的基本概念 ActiveX控件可以看作是一个极小的服务器应用程序,它不能独立运行,必须嵌入到某个容器程序中,与该容器一起运行.这个容器包括WEB网页,应用程序窗体等... Activ ...

  9. COM组件开发实践(七)---多线程ActiveX控件和自动调整ActiveX控件大小(上)

    声明:本文代码基于CodeProject的文章<A Complete ActiveX Web Control Tutorial>修改而来,因此同样遵循Code Project Open L ...

  10. 在 .NET Compact Framework 2.0 中宿主 ActiveX 控件

    适用于: ActiveX Microsoft .NET Compact Framework 版本 2.0 摘要:了解如何在使用 .NET Compact 的应用程序中宿主 ActiveX 控件.本文提 ...

最新文章

  1. RocketMQ 介绍 msgId生成算法
  2. ANSI C标准函数库
  3. SAP Spartacus Translation (翻译) 相关话题
  4. java常见_关于Java的常见误解
  5. 评论:巴菲特“天价午餐”值吗?
  6. NVIDIA DLI 深度学习培训 | 北京站 即将开班
  7. javaweb 图书管理系统完整代码_Java Web安全代码审计(一)
  8. first-class type 一等类型的含义
  9. idea中ssm集成freemark_基于SSM框架的迷你天猫商城
  10. flink API之Sink入门
  11. 面试官问:“你还有什么事想问的?” 该怎么回答?
  12. 【windows】找不到MSVCR100.dll、VCRUNTIME140.dll
  13. 视频去水印 java_用java给视频水印LOGO
  14. android 与后台实时视频,android选择视频文件上传到后台服务器
  15. 躲开混脸熟的车型,一文带你去看2019上海车展里的新面孔...
  16. java中的tomcatserverlet
  17. 计算机一级MS Office知识点归纳整理
  18. 安全知识普及:如何让您的计算机上网安全,无忧冲浪
  19. 基于51单片机的手动数字时钟
  20. Jetpack Compose详尽介绍

热门文章

  1. postgis java_Postgresql结合postgis使用java的JDBC连接
  2. gff3转mysql_GBrowse的安装和使用
  3. django mysql debug_django mysql db 日志无输出
  4. android activity根节点addview_Android嵌入到页面中的加载动画工具类
  5. 如何在linux下运行php脚本,如何通过Linux命令行使用和运行PHP脚本
  6. 机器学习基础 -- 李宏毅2020机器学习课程笔记(一)
  7. java 方法 内部类,Java 面向对象 之 方法中内部类
  8. Vue.js 5 @慕课网
  9. wordpress主题实现彩色标签云效果
  10. 【转】 测试人员的职业规划 --整理标注