MFC用户界面多线程实例1

本程序基于 VS2008,参考 MFC demo 做的。


写该文章的作用给自己做个备份,以后好直接用自己写好的代码。随便发表出来,赚点人气。


工程中新建一个基于 CWinThread 的类 CGift .

CGift 内部需要一个变量记录其对象个数,以及何时初始化临界区,销毁临界区。

还有一个临界区变量。

屏蔽 MFC 界面线程采用的消息循环,采用事件机制运行和结束线程。


头文件部分代码如下:


class CGift : public CWinThread
{
	DECLARE_DYNAMIC(CGift)

protected:
//	CGift();           // 动态创建所使用的受保护的构造函数
	virtual ~CGift();
	CGift(CWnd* pWnd, HDC hDC);

public:
	virtual BOOL InitInstance();
	virtual int ExitInstance();
	void Delete();

public:
	void KillThread();
	void UpdateBorder();
	virtual void SingleStep() = 0;
	
public:
	HANDLE m_hEventKill;
	HANDLE m_hEventDead;
	
	CRect  m_rectBorder;
	HDC    m_hDC;
	CDC*   m_pDC;

protected:
	static CRITICAL_SECTION m_csGiftLock;
private:
	static int m_nCounter; //记录类对象个数
public:
	inline int GetThreadCount(){return m_nCounter;}

protected:
	DECLARE_MESSAGE_MAP()
};

源文件部分代码如下:


//=========== Class CGift Area =================

CRITICAL_SECTION CGift::m_csGiftLock;
int CGift::m_nCounter = 0;
// CGift

//IMPLEMENT_DYNCREATE(CGift, CWinThread)
IMPLEMENT
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值