下面列出了编写辅助线程的基本步骤:
(1)用AppWizard生成一个基于对话框的应用程序,工程名为MultiThreadA,其余选项都设置为默认。
(2)在对话框资源编辑器中,对话框的界面设计如图5-6所示。对话框中控件属性设置见表5-2。
图5-6 对话框界面
表5-2 对话框中控件属性设置
(3)使用ClassWizard将对话框中的IDC_ED_TIME和IDC_PROGRESS1控件映射为对应的两个成员变量m_nSecond和m_ctrlProgress,映射过程如图5-7所示。这样,可以通过变量操作控件。
图5-7 增加两个成员变量
(4)在MultiThreadADlg.h文件中定义threadInfo结构,并在CMultiThreadADlg类中增加成员变量:CWinThread* pThread。其实现如程序清单5-1所示。
程序清单5-1 threadInfo结构定义
(www.xing528.com)
(5)增加全局线程函数ThreadProc()。为方便起见,该函数就定义在CMultiThreadADlg类的实现文件MultiThreadADlg.cpp中,ThreadProc()函数的声明和实现见程序清单5-2。
程序清单5-2 ThreadProc函数的声明和实现
注意:threadInfo必须在TheadProc之前定义。
(6)为“启动”按钮增加单击事件处理函数,在函数中调用AfxBeginThread函数启动辅助线程。对于AfxBeginThread函数,我们使用如下原型:
CWinThread* AfxBeginThread( AFX_THREADPROC pfnThreadProc, LPVOID pParam);
“启动”按钮对应的单击事件处理函数见程序清单5-3。
程序清单5-3 启动按钮的单击事件处理函数
(7)在OnInitDialog函数中初始化数据,见程序清单5-4。
程序清单5-4 OnInitDialog函数
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。