使用vc的mfc开发线程

使用vc的mfc开发线程

ID:22191669

大小:482.50 KB

页数:6页

时间:2018-10-27

使用vc的mfc开发线程_第1页
使用vc的mfc开发线程_第2页
使用vc的mfc开发线程_第3页
使用vc的mfc开发线程_第4页
使用vc的mfc开发线程_第5页
资源描述:

《使用vc的mfc开发线程》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库

1、使用VC的MFC开发线程1、创建一个基于对话框的VC程序,项目名称为VCThread2、在对话框中加入三个按钮和一个进度条,如图,三个按钮的ID从左到右分别设置为:(IDC_BUTTON_NOTHREAD、IDC_BUTTON_THREAD、IDC_BUTTON_TEST);3、选中进度条,按Crtl+W在MFCClassWizard中的MemberVariables选项卡下为进度条绑定一个变量m_progress,如图:双击IDC_PROGRESS1选项,添加变量m_progress;确定:1、为测试按钮建立消息处理(在对话框的设置

2、图中双击对应按钮即可)如图:在编辑视图中双击相应按钮,出现如下对话框,单击OK确定,即可对按钮相应消息处理进行编辑;注:有颜色字为输入的代码.voidCVCThreadDlg::OnButtonTest(){//TODO:AddyourcontrolnotificationhandlercodehereMessageBox("ClickTest!");//显示一个消息框}2、为“不使用线程”的按钮建立消息处理voidCVCThreadDlg::OnButtonNothread(){//TODO:Addyourcontrolnotifi

3、cationhandlercodeherem_progress.SetRange(0,1000);//设置进度条的范围为0-1000m_progress.SetPos(0);//将进度置为0inti=0;//计数器while(i<1000){for(intj=0;j<10000;j++)for(intk=0;k<100;k++);//耗费处理机资源,注意该行的分号,k<100m_progress.SetPos(++i);//i加1,同时设置新的进度位置}}1、建立线程类,从CwinThread派生出来:a、选择菜单insert->ne

4、wclass,建立CtestThread新的线程类,注意Baseclass的选择,应选为CwinThread类;b、为CTestThread添加一个指向进度条的指针m_pProgress:在WorkSpace区域中选择ClassView选项卡,展开VCThreadclasses树并右击CTestThread,选择AddMemberVariable…c、在ClassView视图中为CTestThread添加一个新的构造函数(因原来的构造函数为私有的,所以要创建一个public的)建立的构造函数中的参数pProgress中为了接收对话框中

5、的进度条a、在新的构造函数中添加代码CTestThread::CTestThread(CProgressCtrl*pProgress){m_pProgress=pProgress;}b、为CTestThread添加虚拟函数Run(),这是线程类的主函数注意选择AddVirtualFunction而不是AddMemberFunctiona、为RUN添加代码(在WorkSpace区域FileView选项卡中双际TestThread.cpp文件即可编辑)intCTestThread::Run(){//TODO:Addyourspeciali

6、zedcodehereand/orcallthebaseclassm_pProgress->SetRange(0,1000);//与前一程序类似,区别是m_pProgress是//指向对话框中m_progress的指针,所以要用->符号访问其成员函数m_pProgress->SetPos(0);inti=0;while(i<1000){for(intj=0;j<10000;j++)for(intk=0;k<1000;k++);//注意k<1000;耗时更长m_pProgress->SetPos(i++);}returnCWinThre

7、ad::Run();//线程结束}1、为对话框中的“使用线程”的按钮建立消息处理#include"TestThread.h"//包含刚建立的新的线程类voidCVCThreadDlg::OnButtonThread(){//TODO:AddyourcontrolnotificationhandlercodehereCTestThread*MyThread=newCTestThread(&m_progress);//定义一个指向新线程类的指针,同时用new创建一个新线程的对象,将其地址存于MyThread指针中if(MyThread)/

8、/数据是否创建新的对象{MyThread->m_bAutoDelete=true;//新创建的线程对象中的成员变量设置为true,设置线程结束自动删除对象MyThread->CreateThread();//具体创建线程

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。