zoukankan      html  css  js  c++  java
  • 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()进入

  • 相关阅读:
    消失之物【背包回退】
    数据库连接JDBC
    Spring事物管理机制简单学习
    java生成验证码并可刷新
    spring加载属性配置文件内容
    java读写属性配置文件
    抓取页面图片元素并保存到本机电脑
    java模拟页面表单登录
    通过java进行电脑屏幕截图
    通过JBOSS服务器来实现JMS消息传送
  • 原文地址:https://www.cnblogs.com/Lune-Qiu/p/8401609.html
Copyright © 2011-2022 走看看