MFC开启线程
来源:互联网 发布:超声成像算法导论 pdf 编辑:程序博客网 时间:2024/06/06 02:27
1 建立一个基于对话框的工程MultiThread5,在对话框IDD_MULTITHREAD5_DIALOG中加入一个编辑框IDC_MILLISECOND,一个按钮IDC_START,标题为“开始” ,一个进度条IDC_PROGRESS1;
2 打开ClassWizard,为编辑框IDC_MILLISECOND添加int型变量m_nMilliSecond,为进度条IDC_PROGRESS1添加CProgressCtrl型变量m_ctrlProgress;
3 在MultiThread5Dlg.h文件中添加一个结构的定义:
struct threadInfo
{
UINT nMilliSecond;
CProgressCtrl* pctrlProgress;
};
线程函数的声明:
UINT ThreadFunc(LPVOID lpParam);
注意,二者应在类CMultiThread5Dlg的外部
在类CMultiThread5Dlg内部添加protected型变量:
CWinThread* pThread;
4 在MultiThread5Dlg.cpp文件中进行如下操作:定义公共变量:
threadInfo Info;
双击按钮IDC_START,添加相应消息处理函数:
void CMultiThread5Dlg::OnStart()
{
// TODO: Add your control notification handler code here
UpdateData(TRUE);
Info.nMilliSecond=m_nMilliSecond;
Info.pctrlProgress=&m_ctrlProgress;
pThread=AfxBeginThread(ThreadFunc,&Info);
}
5 在函数BOOL CMultiThread3Dlg::OnInitDialog()中添加语句:
{……// TODO: Add extra initialization here
m_ctrlProgress.SetRange(0,99);
m_nMilliSecond=10;
UpdateData(FALSE);
return TRUE;
}
6 添加线程处理函数: UINT ThreadFunc(LPVOID lpParam)
{
threadInfo* pInfo=(threadInfo*)lpParam;
for(int i=0;i<100;i++)
{
int nTemp=pInfo->nMilliSecond;
pInfo->pctrlProgress->SetPos(i);
Sleep(nTemp);
}
return 0;
}
- MFC开启线程
- MFC中开启新线程
- MFC下结束AfxBeginThread开启的线程的一些体会
- MFC下暂停、继续、结束AfxBeginThread开启的线程
- MFC下暂停、继续、结束AfxBeginThread开启的线程
- 开启线程
- MFC 中一个界面开启的线程函数如何访问另一个界面的成员
- MFC等开启控制台
- MFC--线程
- MFC线程
- MFC线程
- MFC 线程
- MFC 线程
- [MFC]MFC线程
- java线程(开启线程)
- c# 开启线程
- 线程中开启AO
- 开启linux 内核线程
- hdu 1198 Farm Irrigation
- 2013 杭州区邀请赛 Building bridges
- uva 10344
- ubuntu 下开发cocos2d-x游戏(准备工作)
- Android Ril 分析
- MFC开启线程
- redhat 添加开机自动启动服务
- SVN服务器搭建和使用
- android 处理网络状态——无网,2g,3g,wifi,ethernet,other
- listview下拉刷新 上拉(滑动分页)加载更多
- Linux内核里的“智能指针” (续)
- poj2676(数独 sudoku)
- php语法规则
- TortoiseSVN客户端重新设置用户名和密码