UIThread
功能如下:点击Create则新创建一个窗口

一 . 资源中添加对话框,右键添加类MyDlg
双击初始对话框中的按钮,实现按钮功能:点击则创建一个对话框
CMyDialog* pDialog = new CMyDialog;
pDialog->Create(IDD_DIALOG1);
pDialog->ShowWindow(SW_SHOW);//非模态,可以移动后面
但这种方式,创建出来的对话框,一个崩掉,就全体瘫痪,因为是单线程
二 . 在类视图新建一个类MyThread,继承自CWinThread
CWinApp类就是继承自CWinThread,pMainWnd指针(线程主窗口)指向对话框,将对话框和主线程连接起来
仿照主窗口和主线程,写一个我们自己的UIThread
在CWinThread类中
BOOL CMyThread::InitInstance()
{
CMyDlg dlg;
m_pMainWnd = &dlg;
INT_PTR nResponse = dlg.DoModal();
return TRUE;
}
创建用户界面线程:AfxBeginThread()//窗口没了,线程就没了,
相当于创建了一个线程,在线程执行的函数中,创建了一个窗口,比如:MyDlg dlg; dlg.DoModal();
进程优先级:-30 ~ 30
三 . 当点击窗口右上角的关闭标识的时候,1>WM_CLOSE 2>WM_DESTROY 3>WM_QIUT
对话框关闭,EndDialog()
Dialog继承自Cwnd
PostThreadMessage:向线程发消息
用户界面线程(UI线程)与工作者线程的区别:工作者线程没有消息对列。
????SendMessage和PostMessage
????窗口和线程 ,AfxBeginThread()进入
UIThread的更多相关文章
- UiThread DEMO
import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors; import android.a ...
- androidannotations的background和UiThread配合使用參考
简单介绍 androidannotations在开发中的代码规范思考:(MVC思考)时间太紧,先贴代码: Activity的代码: package edu.njupt.zhb.main; import ...
- [WPF] 在单元测试中使用 Prism 的 EventAggregator,订阅到 ThreadOption.UIThread 会报错
1. 问题 [TestClass] public class UnitTest1 { [TestMethod] public void TestMethod1() { ContainerLocator ...
- 【转】Android的线程使用来更新UI----Thread、Handler、Looper、TimerTask
方法一:(java习惯,在android不推荐使用) 刚刚开始接触android线程编程的时候,习惯好像java一样,试图用下面的代码解决问题 new Thread( new Runnable() { ...
- Android的线程使用来更新UI----Thread、Handler、Looper、TimerTask等
方法一:(java习惯,在android不推荐使用) 刚刚开始接触android线程编程的时候,习惯好像java一样,试图用下面的代码解决问题 new Thread( new Runnable() { ...
- .Net中的AOP系列之《间接调用——拦截方法》
返回<.Net中的AOP>系列学习总目录 本篇目录 方法拦截 PostSharp方法拦截 Castle DynamicProxy方法拦截 现实案例--数据事务 现实案例--线程 .Net线 ...
- Android注解使用之使用Support Annotations注解优化代码
前言: 前面学习总结了Java注解的使用,博客地址详见Java学习之注解Annotation实现原理,从本质上了解到什么注解,以及注解怎么使用?不要看见使用注解就想到反射会影响性能之类,今天我们就来学 ...
- 在Android中,使用Kotlin的 API请求简易方法
原文标题:API request in Android the easy way using Kotlin 原文链接:http://antonioleiva.com/api-request-kotli ...
- Android中使用AsyncTask实现文件下载以及进度更新提示
Android提供了一个工具类:AsyncTask,它使创建需要与用户界面交互的长时间运行的任务变得更简单.相对Handler来说AsyncTask更轻量级一些,适用于简单的异步处理,不需要借助线程和 ...
随机推荐
- Apache Tomcat Server Options 选项说明
Apache Tomcat Server Options 选项说明 p.p1 {margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px 'Helvetica Neu ...
- 程序员们,AI来了,机会来了,危机也来了
程序员们,AI来了,机会来了,危机也来了 1.人工智能真的来了 纵观古今,很少有计算机技术能有较长的发展寿命,大部分昙花一现,比如:昔日的DOS.windows3.2.foxpro.delphi.80 ...
- Kotlin Android Extensions (译文)
原文链接: http://kotlinlang.org/docs/tutorials/android-plugin.html Kotlin Android Extensions 本教程介绍如何使用Ko ...
- [QT][转载] Qt信号和槽
From: http://blog.csdn.net/rl529014/article/details/51346955 GUI 程序除了要绘制控件,还要响应系统和用户事件,例如重绘.绘制完成.点击鼠 ...
- [转载] ffmpeg摄像头视频采集-采集步骤概述并采集一帧视频
近期由于工作任务,需要开发一个跨平台视频聊天系统,其中就用到了ffmpeg进行采集与编码,网上找了一大堆的资料,虽然都有一些有用的东西,但实在太碎片化了,这几天一直在整理和实验这些资料,边整理,边做一 ...
- 接口测试基础——第2篇smtplib发送带附件的邮件
我先给大家补充一个用QQ发送纯文本电子邮件的代码,用QQ的朋友可以参考一下: # coding=utf-8 import smtplib from email.mime.text import MIM ...
- Asp.net页面间传值方式汇总
七种传值方式,分别是:URL传值,Session传值,Cookie传值,Server.Transfer传值,Application传值,利用某些控件的PostBackUrl属性和使用@Previous ...
- SQLserver2008使用表达式递归查询
--由父项递归下级 with cte(id,parentid,text) as ( --父项 select id,parentid,text from treeview where parentid ...
- 如何移除双系统mac中的windows系统
双系统 双系统即在电脑的不同分区中安装两个系统,两个系统不会互相影响,但是同时只能有一个系统正在运行,并且必须通过重启的方式来更换系统. 双系统一般由于解决对不同系统的需求,而且在电脑中直接安装系统也 ...
- 洛谷3004 [USACO10DEC]宝箱Treasure Chest
题目:https://www.luogu.org/problemnew/show/P3004 一眼看上去就是记忆化搜索的dp.像 一双木棋 一样. 结果忘了记忆化.T了5个点. 然后加上记忆化.MLE ...