资源简介
这是一个使用VC++编写的一个MFC多线程的源程序,程序中线程执行函数有两种,一种是从CWinThread继承的对象的RUNTIME_CLASS,用于线程启动对话框,另一种是类的成员函数作为线程的执行函数。另外本程序还修改了MFC生成的.exe程序的图标和运行时对话框显示的图标。还有动态改变对话框图标的功能。希望该程序对大家有帮助。
代码片段和文件信息
// CreateThread.cpp : implementation file
//
#include “stdafx.h“
#include “MulThreadTest.h“
#include “CreateThread.h“
extern UINT n;
// CCreateThread dialog
IMPLEMENT_DYNAMIC(CCreateThread CDialog)
UINT CCreateThread::MulThreadFunc(LPVOID lpParam) //线程函数属于CCreateThread类的成员函数
{
m_data* plp=(m_data *)lpParam; //参数类型转化
while(1)
{
for(int pos=plp->m_pro.GetPos();pos<100;pos++)
{
(plp->m_pro).SetPos(pos);
Sleep(100);
if(plp->b)
{
ExitThread(0);
}
}
plp->m_pro.SetPos(0);
}
return 0;
}
CCreateThread::CCreateThread(CWnd* pParent /*=NULL*/)
: CDialog(CCreateThread::IDD pParent)
{
check = FALSE;
}
CCreateThread::~CCreateThread()
{
}
void CCreateThread::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
DDX_Control(pDX IDC_PROGRESS1 m_d.m_pro);
}
BEGIN_MESSAGE_MAP(CCreateThread CDialog)
ON_BN_CLICKED(IDOK &CCreateThread::OnBnClickedOk)
ON_WM_PAINT()
END_MESSAGE_MAP()
// CCreateThread message handlers
void CCreateThread::OnBnClickedOk()
{
// TODO: Add your control notification handler code here
m_d.b = check;
if(!check)
{
pThread=AfxBeginThread(MulThreadFunc&m_d004); //创建新的线程
pThread->ResumeThread(); //开始执行
GetDlgItem(IDOK)->SetWindowText(TEXT(“暂停“));
SetIcon(AfxGetApp()->LoadIcon(IDI_ICON2) FALSE);
}
else
{
GetDlgItem(IDOK)->SetWindowText(TEXT(“继续“));
SetIcon(AfxGetApp()->LoadIcon(IDI_ICON3) FALSE);
}
check = !check;
}
void CCreateThread::OnPaint()
{
CPaintDC dc(this); // device context for painting
// TODO: Add your message handler code here
// Do not call CDialog::OnPaint() for painting messages
CString showwin;
showwin.Format(_T(“Thread: %d“)n);
SetWindowText(showwin);
SetIcon(AfxGetApp()->LoadIcon(IDI_ICON4) FALSE);
}
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
目录 0 2009-07-14 17:03 MulThread
目录 0 2009-07-14 17:01 MulThread\debug
文件 749568 2009-07-14 16:58 MulThread\debug\MulThreadTest.exe
文件 919700 2009-07-14 16:58 MulThread\debug\MulThreadTest.ilk
目录 0 2009-07-14 16:58 MulThread\MulThreadTest
文件 1895 2009-07-14 16:58 MulThread\MulThreadTest\CreateThread.cpp
文件 755 2009-07-14 16:33 MulThread\MulThreadTest\CreateThread.h
目录 0 2009-07-14 17:01 MulThread\MulThreadTest\Debug
文件 7454 2009-07-14 16:58 MulThread\MulThreadTest\Debug\BuildLog.htm
文件 591424 2009-07-14 16:58 MulThread\MulThreadTest\MulThreadTest.aps
文件 1740 2009-07-14 16:04 MulThread\MulThreadTest\MulThreadTest.cpp
文件 483 2009-07-14 16:04 MulThread\MulThreadTest\MulThreadTest.h
文件 5164 2009-07-14 16:58 MulThread\MulThreadTest\MulThreadTest.rc
文件 6093 2009-07-14 16:58 MulThread\MulThreadTest\MulThreadTest.vcproj
文件 1403 2009-07-14 17:02 MulThread\MulThreadTest\MulThreadTest.vcproj.LYJ.Zhang.user
文件 2262 2009-07-14 16:50 MulThread\MulThreadTest\MulThreadTestDlg.cpp
文件 580 2009-07-14 16:11 MulThread\MulThreadTest\MulThreadTestDlg.h
文件 821 2009-07-14 16:34 MulThread\MulThreadTest\NewWinThread.cpp
文件 358 2009-07-14 16:15 MulThread\MulThreadTest\NewWinThread.h
文件 2871 2009-07-14 16:04 MulThread\MulThreadTest\ReadMe.txt
目录 0 2009-07-14 16:58 MulThread\MulThreadTest\res
文件 430178 2009-07-14 16:48 MulThread\MulThreadTest\res\Champicons Icon 27.ico
文件 766 2009-07-14 16:57 MulThread\MulThreadTest\res\icon3.ico
文件 766 2009-07-14 16:58 MulThread\MulThreadTest\res\icon4.ico
文件 99678 2009-07-14 16:48 MulThread\MulThreadTest\res\kalarm.ico
文件 21630 2005-09-23 09:25 MulThread\MulThreadTest\res\MulThreadTest.ico
文件 369 2009-07-14 16:04 MulThread\MulThreadTest\res\MulThreadTest.rc2
..A.SH. 8192 2009-07-14 17:01 MulThread\MulThreadTest\res\Thumbs.db
文件 772 2009-07-14 16:58 MulThread\MulThreadTest\resource.h
文件 144 2009-07-14 16:04 MulThread\MulThreadTest\stdafx.cpp
............此处省略8个文件信息
- 上一篇:C++课件PDF
- 下一篇:DlT—直接线性变换程序
评论
共有 条评论