码迷,mamicode.com
首页 > 编程语言 > 详细

使用C++11安全的在线程中控制UI

时间:2014-12-26 12:45:06      阅读:181      评论:0      收藏:0      [点我收藏+]

标签:

本篇文章由:http://www.sollyu.com/using-the-c11-secure-online-process-control-ui/

说明

首先这里使用的是 Visual Studio 2015, 主要是它支持的C++11更好,其它的我就没有去研究了,想必 Visual Stuido 2010 也差不多吧。

步奏

  1. 创建一个MFC对话框工程

  2. 绘画界面如下图

    技术分享

  3. 添加变量

    技术分享

  4. 添加事件代码

代码

添加头文件#include <thread>, 在按钮事件中添加代码

void CMFCApplication1Dlg::OnBnClickedButtonStart()
{
    m_wndProgress.SetRange( 0, 99 );
    m_wndProgress.SetStep( 1 );
    m_wndProgress.SetPos( 0 );

    /* 创建一个线程 */
    std::thread t( [=] 
    {
        for ( size_t i = 0; i < 100; i++ )
        {
            m_wndProgress.SetPos( i );

            /* 为了更好体验在线程 */
            Sleep( 10 );
        }

        /* UI线程中显示对话框 */
        MessageBox( _T( "完成\n http://www.sollyu.com \n 欢迎光临" ), _T( "提示" ), MB_ICONINFORMATION );
    } );

    /* 将子线程从主线程里分离,子线程执行完成后会自己释放掉资源 */
    t.detach();
}

截图

技术分享

使用C++11安全的在线程中控制UI

标签:

原文地址:http://www.cnblogs.com/sollyu/p/4186245.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!