目录
一、创建线程:不使用公司库
MFC头文件中编写:分文件类外定义的数据或者创建全局变量
public:
//线程
BOOL m_bThread;
再MFC的初始化中,编写如下代码
//_创建线程
AfxBeginThread(ThreadProc,(LPVOID)this);
m_bThread=TRUE;
然后线程是写在所有函数上面的,否则会报错
UINT ThreadProc(LPVOID pa)
{
CDCLXDlg *pDlg = (CDCLXDlg *)pa;
if (pDlg == NULL)
{
return -1;
}
else
{
while(pDlg->m_bThread)
{
AfxMessageBox(L"xzy");//对话框输出文字
Sleep(1000);//线程间隔时间
}
}
return 0;
}
一、创建线程:使用公司库
1、再类里面的成员函数里面创建线程
pThread = FastThreadRun(ThreadFunction, this);
2、线程里面模拟按键检测
void ThreadFunction(void *pd)
{
CFLYDlg *pThis = (CFLYDlg*)pd;
while (isCanThread)
{
int now_qiDong=ZT8408_DIBit(g_cardNO,channel_qiDong);
TRACE("channel_qiDong=%d\n", now_qiDong);
if (now_qiDong==openInput&&now_qiDong!=last_qiDong)
{
::PostMessage(pThis->m_hWnd, WM_KEYUP, 1 + 48, NULL);
}
last_qiDong = now_qiDong;
int now_tingZhi=ZT8408_DIBit(g_cardNO, channel_tingZhi);
TRACE("channel_tingZhi=%d\n", now_tingZhi);
if (now_tingZhi == openInput&&now_tingZhi != last_tingZhi)
{
::PostMessage(pThis->m_hWnd, WM_KEYUP, 2 + 48, NULL);
}
last_tingZhi = now_tingZhi;
int now_anQuanDai=ZT8408_DIBit(g_cardNO, channel_anQuanDai);
if (now_anQuanDai == openInput&&now_anQuanDai != last_anQuanDai)
{
}
last_anQuanDai = now_anQuanDai;
}
}