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

  • 相关阅读:
    小程序实现删除列表某条内容的功能
    关于多行文本 textarea 在ios 真机上padding相对安卓较大问题
    关于小程序 input 组件内容显示不全(显示的长度不满 input 宽度)问题
    关于小程序button控件上下边框的显示和隐藏问题
    关于微信小程序 textarea组件在fixed定位的模块中随页面移动问题
    首记
    java >>> 和 >>>=的区别
    Nginx" upstream prematurely closed connection while reading response header from upstream"问题排查
    nginx配置rewrite总结
    nginx配置location总结
  • 原文地址:https://www.cnblogs.com/liangxiaofeng/p/5607042.html
Copyright © 2011-2022 走看看