Windows中一个进程可以包含多个线程,由多个线程组成。在Windows应用程序中,窗体是由“UI线程(User Interface Thread)”的特殊类型的线程创建的。一个UI线程包含一个消息循环对列。在窗口运行过程中,按下控件或对窗口进行一些操作等同于向消息循环队列插入消息;然后由系统调用相应消息的响应函数,使用户操作得到响应。

   当窗口某个消息的响应函数占用大量时间时,必定会影响窗口对下一个消息的响应。因此,对与那些比较耗时的操作的响应,使用多线程应该是个比较好的选择。即在控件的响应函数中创建一个线程,在线程函数中完成比较耗时的操作。

    WaitForSingleObject()用于等待对线程函数的响应,通过这个函数也可以阻塞消息循环队列的运行,影响窗口的响应速度。

注意:创建型线程函数:    CreateThread(NULL, 0, ThreadProc, (LPVOID) NULL, 0, NULL);

        线程函数的格式:    DWORD WINAPI ThreadProc(LPVOID lpParameter);

    其中,线程函数必须是全局函数或者静态成员函数

MFC中Windows窗口消息循环及多线程之间关系相关推荐

  1. Windows窗口消息大全,全不全自己看

    1 Windows窗口消息大全,全不全自己看 2 3 // 4 #include "AFXPRIV.H"//消息值的定义来源 5 #include "Dde.h" ...

  2. Windows窗口消息介绍

    Windows窗口消息介绍 // #include "AFXPRIV.H"//消息值的定义来源 #include "Dde.h"//DDE消息值的定义来源 #i ...

  3. 令人生疑的Windows窗口消息WM_PAINT详解

    目录 1.WM_APINT消息的产生 2.WM_ERASEBKGND消息说明 3.InvalidateRect和UpdateWindow 4.何时使用BeginPaint和EndPaint? 在做Wi ...

  4. C#通过Windows API捕获窗,获取窗口文本(FindWindow、GetWindowText),附录:Windows窗口消息大全、Windows API大全

    文章目录 一.前言 二.使用Spy++工具分析窗口 三.C#通过Windows API捕获窗口,获取窗口文本 四.附录:Windows窗口消息 五.Windows API大全 1.API之网络函数 2 ...

  5. MFC中 windows object 和 C++ object

    MFC中 windows object 和 C++ object The Problem Windows objects are normally represented by HANDLEs. Th ...

  6. 黑马程序员mfc中分割窗口---ctreeview未定义基类的解决方法

    在跟班黑马程序学mfc中分割窗口,vs2019出现了以下的错误.解决方法很简单. 首先我们点击错误,自动定位到出错的类,会发现出错的是CSelcetView的头文件和源文件出错, 我们找到头文件中 在 ...

  7. MFC中关闭窗口的几种方法

    MFC中关闭窗口的几种办法: 退出程序用AfxGetMainWnd()->SendMessage(WM_CLOSE); 关闭当前窗口用DestroyWindow( ); 关闭模式对话框用EndD ...

  8. MFC中的MainFrame Dlg,App,Doc,View的关系

    MFC中的MainFrame Dlg,App,Doc,View的关系 MainFrame: 主框架类 Dlg 是Dialog 的缩写,表示对话框本身 App类就是这个SDI作为"程序&quo ...

  9. 面向过程中模拟出面向对象,用c语言模拟出MFC控件,消息循环,“设计用户界面”

    大家好,今天给大家分享"怎样用c模拟出MFC控件 简单模拟出消息循环,按钮控件",面向过程中模拟出面向对象. 编程思路 首先用绘图库EasyX绘制窗口,窗口中绘制按钮,把按钮对象化 ...

最新文章

  1. Dlib库中实现正脸人脸关键点(landmark)检测的测试代码
  2. 聊一聊:开源社区应该用中文吗?
  3. vscode markdown插件_如何用Markdown写公众号
  4. python从txt读取数据并画图_Python读取txt某几列绘图的方法
  5. 京东发布双11首份战报:手机品类18秒销量突破万台
  6. 05-文件与流-课堂测试(四则运算)
  7. 药品查询 API数据接口
  8. 基于javaweb+jsp的在线书城书店系统(java+jdbc+Servlet+mysql)
  9. Java制作JDK8文档搜索引擎项目并部署到阿里云服务器
  10. io.fabric8.docker-maven-plugin插件使用
  11. 丁酉新年假期江门,甘孜旅行手记
  12. Magento的订单相关的SQL(订单编号、创建时间、总金额、收货人、收货人地址、收货人城市、州或省(简称)、收货邮编、收货人电话、付款人邮箱)
  13. 【T3】打印单据(非新打印)表头显示不全
  14. 微信红包c语言程序,C语言 微信红包
  15. 四、服务注册与发现Consul
  16. JZOJ 4210. 【五校联考1day1】我才不是萝莉控呢
  17. 电池充放电自动测试系统介绍
  18. 局域网搭建视频服务器
  19. 一款仿转转闲鱼新模板 带后台管理
  20. Activate、Deactivate 事件 Activate ThrottleEvent;

热门文章

  1. python学习-模块和包
  2. arch linux键盘布局,Arch Linux的安装、配置、优化及美化(一)
  3. 手机号脱敏处理_C#简单代码实现对手机号邮箱等隐私信息进行*号打码
  4. hal库选择滴答时钟函数_stm32h7“理解hal库框架”
  5. cifar10数据集测试有多少张图_基于特定数据集的Oracle、ClickHouse、ES测试报告
  6. python天天向上每十天休息一天_Python基础第十天
  7. 入门人工智能,我究竟该学些什么?
  8. 电子设计竞赛(7)-2017年电赛A题:微电网模拟系统教程
  9. c 类别构造函数需要包含所有成员吗_C++默认成员函数解析
  10. 怎么绘制机械孔_机械制图中常用的图纸简化画法,相当适合初学者!