VC多线程中控制界面控件的几种方法

2023-05-16

[转] http://hi.baidu.com/magicyang87/blog/item/23bbf2fd72d6b81108244d73.html

      为了保证界面的用户体验经常要把数据处理等放到子线程中进行,然后把结果更新到主界面,通常有这样几种方法。

   1.启动线程时把控件关联变量的指针传参给线程函数,这种方法无疑是最简单的方法,但极容易造成访问异常,因为VC6中的控件都不是线程安全的。

   2.就是先进一点的方法,把控件的句柄传给线程函数,在子线程中通过SendNotifyMessage or PostMessage等进行操作。这种方法是线程安全的,但对许多未公开控件你根本不知道要发送什么消息的,比如绝大多数的ActiveX控件,像MSFLEXGRID、DBGRID,它们的消息ID是无从知晓的,这种时候第二种方法就没用了。

   3.这种方法我感觉是最万能的方法了,而且这样代码的逻辑也最清楚。就是在窗口类中针对线程要进行的操作自定义消息,启动线程时直接把窗口的句柄传给线程函数,线程要控制界面时直接给窗口发消息就可以了。窗口类中对自定义消息添加消息映射,在其中进行具体的控制操作。

    希望大家少走一点弯路,前两天我就是因为要操作MSFLEXGRID,然后搜了N久都没找到直接给其发消息的方法,当时我曾用了种极弱的方法,就是先把数据写入一个全局变量中,然后在窗口中起定时器将全局变量中的数据刷新到控件中,现在想来是相当傻了。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

VC多线程中控制界面控件的几种方法 的相关文章

随机推荐

  • leetcode:206 - Reverse Linked List

    目录 题目描述 实现 1 迭代法 2 递归法 题目描述 Reverse a singly linked list Example Input 1 gt 2 gt 3 gt 4 gt 5 gt NULL Output 5 gt 4 gt 3
  • 解决idea运行Tomcat报错:Unable to ping server at localhost:1099

    方法一 xff1a 网上有人说修改hosts xff0c 目录定位到 C windows system32 drivers etc hosts xff0c 在里面添加 xff1a 127 0 0 1 localhost 计算机名 这个方法实
  • spring中alias标签

    在对bean进行定义时 xff0c 除了使用id属性来指定名称之外 xff0c 为了提供多个名称 xff0c 可以使用alias标签来指定 而所有的这些名称都指向同一个bean xff0c 在某些情况下提供别名非常有用 xff0c 比如为了
  • ActiveMQ高并发处理方案

    高并发发送消息异常解决方法 xff1a 现象 xff1a 使用10个线程每100ms发送一条消息 xff0c 大约3000多条后 xff0c 出现异常 xff0c 所有线程停 止 xff1a javax jms JMSException C
  • Unable to get package info for com.example.sampletest; is package not installed?

    Unable to instantiate application com android activity BaseApplication java lang IllegalStateException Unable to get pac
  • 5种最著名的人脸识别算法和关键特征介绍

    人脸识别算法是任何人脸检测和识别系统或软件的基础组件 专家将这些算法分为两种核心方法 xff1a 几何方法侧重于区分特征 xff0c 光度统计方法用于从图像中提取值 然后将这些值与模板进行比较以消除差异 这些算法还可以分为两个更一般的类别
  • 请多多指教

    我是菜鸟 xff0c 还请各位大虾多多指教 xff01
  • golang-vue实现微信小程序分享到朋友圈

    最近涉及到微信小程序分享到朋友圈 xff0c 不知道微信为什么不直接接口分享 xff0c 咱也不敢佛 xff0c 咱也不敢问 xff0c 只能百度问度娘 xff0c 看官方文档 xff0c 网上的一些分享五花八门 xff0c 每一个重点的
  • Archlinux 命令行模式-安装 BIOS 非 UEFI(实装笔记)(系统安装完成,系统美化使用未完成)

    前言 截至2021年02月28日 xff0c 官网iso安装镜像已经提供有脚本安装方式 当下谨以命令行安装方式做记录 xff0c 共同学习 主要知识来源于archwiki https wiki archlinux org index php
  • Arch 基本安装后的使用配置

    A 参考借用整理 1 Arch wiki https wiki archlinux org index php Installation guide B 注意 1 选择有很多 xff0c 可以根据自己需求来 xff0c 如速度 xff0c
  • 【IP技术】网络安全防护措施

    网络安全威胁造成的形式主要包含运用系统软件缺点或侧门 xff0c 运用网络防火墙安全隐患 xff0c 内部结构客户的泄密 泄露和毁坏 xff0c 动态口令进攻和拒绝服务式攻击等 针对该网络安全威胁 xff0c 现阶段的预防措施主要有五种 x
  • 如何搭建本地yum仓库

    一 yum简介 yum xff08 Yellow dog Updater Modified xff09 是一个在 Fedora 和 RedHat 以及 SUSE 中的 Shell 前端软件包管理器 基于 RPM 包管理 xff0c 能够从指
  • python_tweets.json (python数据挖掘入门与实践数据集下载)

    最近在看python数据挖掘入门与实践一书 xff0c 书不错 xff0c 有个不好的地方是 xff0c 书上所用的数据集 xff0c 有几个测试数据在网上非常不好找 下面几个资源是我自己整理出来的 xff0c 上传到CSDN xff0c
  • ios UILabel显示html文本

    let attrContent 61 try NSAttributedString data htmlContent options NSDocumentTypeDocumentAttribute NSHTMLTextDocumentTyp
  • 转行的辛苦

    我是2004年毕业的 xff0c 学的专业是市场营销 xff0c 毕业后来到深圳 xff0c 换了很多工作 xff0c 一直都无法找到令自己满意的工作 因为我非常喜欢计算机 xff0c 从中学到大学 xff0c 一直是班级里公认的计算机高手
  • 内存优化 和 性能优化 的总结

    从 检查内存 xff0c 减少使用 xff0c 复用 xff0c 以及及时释放几个维度去考虑 1 检查 可以ddms查看内存使用情况 xff0c 可以使用 adb shell dumpsys meminfo 查看 xff0c 也可以使用 l
  • ubuntu16.04 安装gnome经典桌面

    一直比较喜欢旧版本Ubuntu的Gnome风格的菜单栏 xff0c 在Ubuntu16 0 4中可以执行指令 xff1a sudo apt get install gnome session flashback 安装完成 xff0c 注销一
  • Gson在序列化反序列化中的TypeAdapter

    1 package waf json adatpter 2 3 import java io IOException 4 import java util ArrayList 5 import java util List 6 import
  • 技术泡妹子二:篡改百度首页,惊呆女神

    大多数网民上网的入口都是先打开百度 xff0c 然后再搜索xxx 进入 xff0c 为了给女神惊喜 xff0c 决定篡改百度首页让女神惊呆 xff0c 当然不是黑了百度 xff0c 目前没这个实力 xff0c 但是我们可以修改host文件
  • VC多线程中控制界面控件的几种方法

    转 http hi baidu com magicyang87 blog item 23bbf2fd72d6b81108244d73 html 为了保证界面的用户体验经常要把数据处理等放到子线程中进行 xff0c 然后把结果更新到主界面 x