Horse.speed = m_BSpeed.GetPos();
m_BlueHorse.size = 10;
m_BlueHorse.rect.TopLeft() = racingrect.TopLeft()+CPoint(0, racingrect.Height()*2/3);
m_BlueHorse.rect.right = m_BlueHorse.rect.TopLeft().x + racingrect.Width();
m_BlueHorse.rect.bottom = m_BlueHorse.rect.TopLeft().y + racingrect.Height()/3;
m_BlueHorse.x = m_BlueHorse.rect.left + m_BlueHorse.size;
m_BlueHorse.y = m_BlueHorse.rect.top + m_BlueHorse.rect.Height()/2;
// 创建蓝马线程
m_hBlue = CreateThread(NULL, 0, ThreadProc, &m_BlueHorse, 0, &tID);
if(m_hBlue == NULL)
{
AfxMessageBox("创建线程失败");
枫叶文学网www.fywxw.com
Visual C++ 6.0 程序设计从入门到精通
·226·
}
}
// 设置按钮状态
CButton* pBtn;
pBtn = (CButton*)GetDlgItem(IDSTART);
pBtn->EnableWindow(FALSE);
pBtn = (CButton*)GetDlgItem(IDPAUSE);
pBtn->EnableWindow(TRUE);
pBtn = (CButton*)GetDlgItem(IDSTOP);
pBtn->EnableWindow(TRUE);
}
(11)响应“暂停”按钮
响应“暂停”按钮,用来暂停和继续线程,代码如下:
void CRacingDlg::OnPause()
{
// 得到button 的指针
CButton* pBtn = (CButton*)GetDlgItem(IDPAUSE);
// 改变按钮的名称
if( !m_bPaused )
{
SuspendThread(m_hRed);
SuspendThread(m_hGreen);
SuspendThread(m_hBlue);
pBtn->SetWindowText("继续");
}
else
{
RescomThread(m_hRed);
RescomThread(m_hGreen);
RescomThread(m_hBlue);
枫叶文学网www.fywxw.com