zoukankan      html  css  js  c++  java
  • 使用MFC中的AfxBeginThread创建多线程

    创建一个基于对话框的工程,工程名为CreateThreadRect
     
    在CreateThreadRect.cpp中增加一个ThreadProc函数,代码如下
     
    工作者线程的函数必须是全局函数或静态成员函数,不能是普通的成员函数
     
    DWORD WINAPI ThreadProc(LPVOID pParam)
    {
        CDC* pdc;
        //将传入的参数转为RECT*
        RECT* rect=(RECT*)pParam;  
        //得到设备句柄
        pdc=AfxGetApp()->m_pMainWnd->GetDC();  
        //设置画刷
        CBrush brush(HS_VERTICAL,RGB(0,255,0));  
        //选入到设备中
        CBrush* oldbrush=pdc->SelectObject(&brush);  
        int n=0;
        while(n++<=2000)
        {
            pdc->Rectangle(rect->left,rect->top,rect->right+n,rect->bottom );
            Sleep(1);        
        }
        pdc->SelectObject(oldbrush);
        pdc->ReleaseOutputDC();
        return 0;
    }

    添加一个按钮控件IDTHREAD,该按钮事件代码如下

    void CCreateThreadRectDlg::OnThread() 
    {
        // TODO: Add your control notification handler code here
         
        RECT rect1;
        rect1.left=20;  //左上角x坐标
        rect1.top=100;    //左上角y坐标
        rect1.right=20;       //右下角x坐标
        rect1.bottom =rect1.top +100;   //右下角y坐标
        //创建第一个线程ThreadProc,相对优先级THREAD_PRIORITY_IDLE面对任何等级调整为1    
        AfxBeginThread((AFX_THREADPROC)ThreadProc,&rect1,THREAD_PRIORITY_IDLE);
     
        RECT rect2;
        rect2.left=rect1.left;
        rect2.top=rect1.bottom +20;
        rect2.right=rect1.right;
        rect2.bottom =rect2.top +100;
        //创建第二个线程ThreadProc,相对优先级THREAD_PRIORITY_TIME_CRITICAL
        //面对任何等级调整为15,面对REALTIME等级调整为32
        AfxBeginThread((AFX_THREADPROC)ThreadProc,&rect2,THREAD_PRIORITY_TIME_CRITICAL);
    }

    运行结果:

    1

  • 相关阅读:
    [py]str list切片-去除字符串首尾空格-递归思想
    [py]python面向对象的str getattr特殊方法
    [py]python多态-动态语言的鸭子类型
    [py]py2自带Queue模块实现了3类队列
    【Unity技巧】制作一个简单的NPC
    java7 新特性 总结版
    【游戏周边】Unity,UDK,Unreal Engine4或者CryENGINE——我应该选择哪一个游戏引擎
    【Unity Shaders】Transparency —— 使用alpha通道创建透明效果
    记录最近的几个bug
    理解WebKit和Chromium: 调试Android系统上的Chromium
  • 原文地址:https://www.cnblogs.com/liangxiaofeng/p/5607042.html
Copyright © 2011-2022 走看看