// Create a thread and keep the thread ID. CWinThread* pThreadObj = AfxBeginThread(ThreadProc, this); m_nDlgThreadID = pThreadObj->m_nThreadID; // Terminate a thread via it's thread ID. void CxDlg::OnBnClicked_TerminateThread() { ::PostThreadMessage(m_nDlgThreadID, WM_QUIT, 0, 0); }