• 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()进入

  • 相关阅读:
    让photoshop cc 支持 webp格式
    DedeCMS文章页去img图片width和height属性
    DedeCMS提交自定义表单加入验证码功能
    php session的操作
    使用jQuery,实现完美的表单异步提交
    Windows Server 2003 IIS6.0+PHP5(FastCGI)+MySQL5环境搭建教程
    BT之下拉菜单
    慕课网上的Bootstrap学习(二)
    表单控件状态(禁用状态)
    在慕课学习Bootstrap
  • 原文地址:https://www.cnblogs.com/Lune-Qiu/p/8401609.html
Copyright © 2020-2023  润新知