AfxBeginThread(RUNTIME_CLASS(CUIThread));//线程类的执行期类指针

void CProBDlg::OnButton1() 
{
	// TODO: Add your control notification handler code here
	//CUIThread *pui=new CUIThread();
	//pui->InitInstance();
	AfxBeginThread(RUNTIME_CLASS(CUIThread));//线程类的执行期类指针
}
#if !defined(AFX_UITHREAD_H__EFAC7BE1_6653_497E_9E14_E54C7BA534B5__INCLUDED_)
#define AFX_UITHREAD_H__EFAC7BE1_6653_497E_9E14_E54C7BA534B5__INCLUDED_

#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000
// UIThread.h : header file
//



/////////////////////////////////////////////////////////////////////////////
// CUIThread thread

class CUIThread : public CWinThread
{
	DECLARE_DYNCREATE(CUIThread)
protected:
	CUIThread();           // protected constructor used by dynamic creation

// Attributes
public:

// Operations
public:

// Overrides
	// ClassWizard generated virtual function overrides
	//{{AFX_VIRTUAL(CUIThread)
	public:
	virtual BOOL InitInstance();
	virtual int ExitInstance();
	//}}AFX_VIRTUAL

// Implementation
protected:
	virtual ~CUIThread();

	// Generated message map functions
	//{{AFX_MSG(CUIThread)
		// NOTE - the ClassWizard will add and remove member functions here.
	//}}AFX_MSG

	DECLARE_MESSAGE_MAP()
};

/////////////////////////////////////////////////////////////////////////////

//{{AFX_INSERT_LOCATION}}
// Microsoft Visual C++ will insert additional declarations immediately before the previous line.

#endif // !defined(AFX_UITHREAD_H__EFAC7BE1_6653_497E_9E14_E54C7BA534B5__INCLUDED_)

// UIThread.cpp : implementation file
//

#include "stdafx.h"
#include "proB.h"
#include "UIThread.h"

#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif

/////////////////////////////////////////////////////////////////////////////
// CUIThread

IMPLEMENT_DYNCREATE(CUIThread, CWinThread)

CUIThread::CUIThread()
{
}

CUIThread::~CUIThread()
{
}

BOOL CUIThread::InitInstance()
{
	// TODO:  perform and per-thread initialization here
	CFrameWnd* wnd=new CFrameWnd;
	wnd->Create(NULL,"UI Thread Window");
	wnd->ShowWindow(SW_SHOW);
	wnd->UpdateWindow();
	m_pMainWnd=wnd;

	return TRUE;
}

int CUIThread::ExitInstance()
{
	// TODO:  perform any per-thread cleanup here
	return CWinThread::ExitInstance();
}

BEGIN_MESSAGE_MAP(CUIThread, CWinThread)
	//{{AFX_MSG_MAP(CUIThread)
		// NOTE - the ClassWizard will add and remove mapping macros here.
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CUIThread message handlers


你可能感兴趣的:(c++MFC学习笔记,多线程)