zoukankan      html  css  js  c++  java
  • MFC创建线程示例

    MFC创建线程示例

    AfxBeginThread()

    创建现场的方法是AfxBeginThread()函数。

    在【.CPP】文件定义一个全局变量,决定什么时候退出这个线程。

    BOOL g_bWillExit=FALSE;
    

    拖一个BUTTON按钮控件,【创建线程】(IDC_BUTTON_THREAD),绑定单击事件函数。

    void CmyfirstmfcDlg::OnBnClickedButtonThread()
    {
    	g_bWillExit = FALSE;
    
    	AfxBeginThread((AFX_THREADPROC)ThreadFunc, (LPVOID)this);  // this是主对话框的指针
    
        // 创建线程BUTTON按钮控件 禁止点击
    	CButton *pButton = (CButton *)GetDlgItem(IDC_BUTTON_THREAD);
    	pButton->EnableWindow(FALSE);
    	// TODO: Add your control notification handler code here
    }
    

    回调函数

    
    DWORD WINAPI ThreadFunc(PVOID param)
    {
    	while(g_bWillExit == FALSE)
    	{
    		if(MessageBox(NULL,_T("退出线程吗?"),_T("这是线程"),MB_YESNO)==IDYES)
    		{
    		    // 创建线程BUTTON按钮控件 开启点击
    			CmyfirstmfcDlg *pDlg = (CmyfirstmfcDlg*)param; //获取主对话框指针
    			CButton *pButton = (CButton *)pDlg->GetDlgItem(IDC_BUTTON_THREAD); //主界面的按钮
    			pButton->EnableWindow(TRUE);
    
    			break;
    		}
    		
    	}
    	return 0;
    }
    
    

    退出线程

    //线程退出
    OnClose()
    {
    	g_bWillExit = TRUE;
    }
    
  • 相关阅读:
    kubernetes 部署
    Pushgateway 介绍
    blackbox_exporter介绍
    prometheus 集群
    Alertmanager 集群
    prometheus 基于DNS的目标发现
    PHP —— 读取文件到二维数组
    PHP——自定义比较算法
    PHP遍历指定目录,并存储目录内所有文件属性信息
    mysql乱码问题解决办法
  • 原文地址:https://www.cnblogs.com/17bdw/p/10354929.html
Copyright © 2011-2022 走看看