1:在定时器中创建一个线程
case TIMER1:
if (m_SpiManage.IsSpiConnect())
{
m_pThread = AfxBeginThread(WORK_ReadSAWtag, &m_Info);
//ReadSAWtag();
}
2:创建线程函数 (放在ReadSAWtag()函数上面)
/创建的线程函数
/创建的线程函数
UINT WORK_ReadSAWtag(LPVOID pParam)
{
// TODO: 在此添加控件通知处理程序代码
threadInfo *pInfo = (threadInfo*)pParam;
CTryStaticDlg *dlg; //将void类型强制转换成dlg类型
dlg = (CTryStaticDlg *)pdlg;
dlg->ReadSAWtag();
case TIMER1:
if (m_SpiManage.IsSpiConnect())
{
m_pThread = AfxBeginThread(WORK_ReadSAWtag, &m_Info);
//ReadSAWtag();
}
2:创建线程函数 (放在ReadSAWtag()函数上面)
/创建的线程函数
/创建的线程函数
UINT WORK_ReadSAWtag(LPVOID pParam)
{
// TODO: 在此添加控件通知处理程序代码
threadInfo *pInfo = (threadInfo*)pParam;
CTryStaticDlg *dlg; //将void类型强制转换成dlg类型
dlg = (CTryStaticDlg *)pdlg;
dlg->ReadSAWtag();
::SendMessage(pInfo->hWnd, WM_ReadSAWtag_MSG, 0, -1);
return 0;
}
3.在CTryStaticDlg.h头文件中自定义消息:#define WM_ReadSAWtag_MSG WM_USER + 100
4.在CTryStaticDlg.h的类中增加定义
// 实现
protected:
CWinThread *m_pThread;
HICON m_hIcon;
threadInfo m_Info;
5.在CTryStaticDlg.h头文件中添加消息处理函数的声明
LRESULT OnReadSAWtagMsg(WPARAM wParam, LPARAM lParam);
6.在初始化函数中增加定义
m_Info.hWnd = m_hWnd;
7. 在CTryStaticDlg类实现文件CTryStaticDlg.cpp中的消息映射表中加入自定义消息映射:
BEGIN_MESSAGE_MAP(CTryStaticDlg, CDialogEx)
ON_WM_SYSCOMMAND()
ON_WM_PAINT()
ON_WM_QUERYDRAGICON()
ON_MESSAGE(WM_ReadSAWtag_MSG, OnReadSAWtagMsg)添加
ON_BN_CLICKED(IDC_BUTTON1, &CTryStaticDlg::OnBnClickedButton1)
ON_BN_CLICKED(IDC_BUTTON4, &CTryStaticDlg::OnBnClickedButton4)
ON_BN_CLICKED(IDC_BUTTON5, &CTryStaticDlg::OnBnClickedButton5)
ON_BN_CLICKED(IDC_BUTTON2, &CTryStaticDlg::OnBnClickedButton2)
ON_WM_TIMER()
ON_BN_CLICKED(IDC_BUTTON3, &CTryStaticDlg::OnBnClickedButton_Save)
ON_BN_CLICKED(IDC_BUTTON6, &CTryStaticDlg::OnBnClickedButton6)
ON_BN_CLICKED(IDC_BUTTON_ClearAll, &CTryStaticDlg::OnBnClickedButtonClearall)
ON_BN_CLICKED(IDOK, &CTryStaticDlg::OnBnClickedOk)
END_MESSAGE_MAP()
6.在CTryStaticDlg类实现文件CTryStaticDlg.cpp中定义消息响应
LRESULT CTryStaticDlg::OnReadSAWtagMsg(WPARAM wParam, LPARAM lParam)
{
return 0;
}
3.在CTryStaticDlg.h头文件中自定义消息:#define WM_ReadSAWtag_MSG WM_USER + 100
4.在CTryStaticDlg.h的类中增加定义
// 实现
protected:
CWinThread *m_pThread;
HICON m_hIcon;
threadInfo m_Info;
5.在CTryStaticDlg.h头文件中添加消息处理函数的声明
LRESULT OnReadSAWtagMsg(WPARAM wParam, LPARAM lParam);
6.在初始化函数中增加定义
m_Info.hWnd = m_hWnd;
7. 在CTryStaticDlg类实现文件CTryStaticDlg.cpp中的消息映射表中加入自定义消息映射:
BEGIN_MESSAGE_MAP(CTryStaticDlg, CDialogEx)
ON_WM_SYSCOMMAND()
ON_WM_PAINT()
ON_WM_QUERYDRAGICON()
ON_MESSAGE(WM_ReadSAWtag_MSG, OnReadSAWtagMsg)添加
ON_BN_CLICKED(IDC_BUTTON1, &CTryStaticDlg::OnBnClickedButton1)
ON_BN_CLICKED(IDC_BUTTON4, &CTryStaticDlg::OnBnClickedButton4)
ON_BN_CLICKED(IDC_BUTTON5, &CTryStaticDlg::OnBnClickedButton5)
ON_BN_CLICKED(IDC_BUTTON2, &CTryStaticDlg::OnBnClickedButton2)
ON_WM_TIMER()
ON_BN_CLICKED(IDC_BUTTON3, &CTryStaticDlg::OnBnClickedButton_Save)
ON_BN_CLICKED(IDC_BUTTON6, &CTryStaticDlg::OnBnClickedButton6)
ON_BN_CLICKED(IDC_BUTTON_ClearAll, &CTryStaticDlg::OnBnClickedButtonClearall)
ON_BN_CLICKED(IDOK, &CTryStaticDlg::OnBnClickedOk)
END_MESSAGE_MAP()
6.在CTryStaticDlg类实现文件CTryStaticDlg.cpp中定义消息响应
LRESULT CTryStaticDlg::OnReadSAWtagMsg(WPARAM wParam, LPARAM lParam)
{
if (wParam == 0 && lParam == -1)
{
//m_stTip.SetWindowText("完成");
//GetDlgItem(IDC_BUTTON_CAL)->EnableWindow(TRUE);
}
return 0;
}
3.备注
1)先申请个全局void类型指针: void *pdlg;
2)在dlg InitDialog中,将该void指针初始化为this:?pdlg= this;
3)在全局函数中加入以下程序
CTryStaticDlg *dlg; //将void类型强制转换成dlg类型
dlg = CTryStaticDlg *)pdlg;
{
//m_stTip.SetWindowText("完成");
//GetDlgItem(IDC_BUTTON_CAL)->EnableWindow(TRUE);
}
return 0;
}
3.备注
1)先申请个全局void类型指针: void *pdlg;
2)在dlg InitDialog中,将该void指针初始化为this:?pdlg= this;
3)在全局函数中加入以下程序
CTryStaticDlg *dlg; //将void类型强制转换成dlg类型
dlg = CTryStaticDlg *)pdlg;
1:在定时器中创建一个线程
case TIMER1:
if (m_SpiManage.IsSpiConnect())
{
m_pThread = AfxBeginThread(WORK_ReadSAWtag, &m_Info);
//ReadSAWtag();
}
2:创建线程函数 (放在ReadSAWtag()函数上面)
/创建的线程函数
/创建的线程函数
UINT WORK_ReadSAWtag(LPVOID pParam)
{
// TODO: 在此添加控件通知处理程序代码
threadInfo *pInfo = (threadInfo*)pParam;
CTryStaticDlg *dlg; //将void类型强制转换成dlg类型
dlg = (CTryStaticDlg *)pdlg;
dlg->ReadSAWtag();
case TIMER1:
if (m_SpiManage.IsSpiConnect())
{
m_pThread = AfxBeginThread(WORK_ReadSAWtag, &m_Info);
//ReadSAWtag();
}
2:创建线程函数 (放在ReadSAWtag()函数上面)
/创建的线程函数
/创建的线程函数
UINT WORK_ReadSAWtag(LPVOID pParam)
{
// TODO: 在此添加控件通知处理程序代码
threadInfo *pInfo = (threadInfo*)pParam;
CTryStaticDlg *dlg; //将void类型强制转换成dlg类型
dlg = (CTryStaticDlg *)pdlg;
dlg->ReadSAWtag();
::SendMessage(pInfo->hWnd, WM_ReadSAWtag_MSG, 0, -1);
return 0;
}
3.在CTryStaticDlg.h头文件中自定义消息:#define WM_ReadSAWtag_MSG WM_USER + 100
4.在CTryStaticDlg.h的类中增加定义
// 实现
protected:
CWinThread *m_pThread;
HICON m_hIcon;
threadInfo m_Info;
5.在CTryStaticDlg.h头文件中添加消息处理函数的声明
LRESULT OnReadSAWtagMsg(WPARAM wParam, LPARAM lParam);
6.在初始化函数中增加定义
m_Info.hWnd = m_hWnd;
7. 在CTryStaticDlg类实现文件CTryStaticDlg.cpp中的消息映射表中加入自定义消息映射:
BEGIN_MESSAGE_MAP(CTryStaticDlg, CDialogEx)
ON_WM_SYSCOMMAND()
ON_WM_PAINT()
ON_WM_QUERYDRAGICON()
ON_MESSAGE(WM_ReadSAWtag_MSG, OnReadSAWtagMsg)添加
ON_BN_CLICKED(IDC_BUTTON1, &CTryStaticDlg::OnBnClickedButton1)
ON_BN_CLICKED(IDC_BUTTON4, &CTryStaticDlg::OnBnClickedButton4)
ON_BN_CLICKED(IDC_BUTTON5, &CTryStaticDlg::OnBnClickedButton5)
ON_BN_CLICKED(IDC_BUTTON2, &CTryStaticDlg::OnBnClickedButton2)
ON_WM_TIMER()
ON_BN_CLICKED(IDC_BUTTON3, &CTryStaticDlg::OnBnClickedButton_Save)
ON_BN_CLICKED(IDC_BUTTON6, &CTryStaticDlg::OnBnClickedButton6)
ON_BN_CLICKED(IDC_BUTTON_ClearAll, &CTryStaticDlg::OnBnClickedButtonClearall)
ON_BN_CLICKED(IDOK, &CTryStaticDlg::OnBnClickedOk)
END_MESSAGE_MAP()
6.在CTryStaticDlg类实现文件CTryStaticDlg.cpp中定义消息响应
LRESULT CTryStaticDlg::OnReadSAWtagMsg(WPARAM wParam, LPARAM lParam)
{
return 0;
}
3.在CTryStaticDlg.h头文件中自定义消息:#define WM_ReadSAWtag_MSG WM_USER + 100
4.在CTryStaticDlg.h的类中增加定义
// 实现
protected:
CWinThread *m_pThread;
HICON m_hIcon;
threadInfo m_Info;
5.在CTryStaticDlg.h头文件中添加消息处理函数的声明
LRESULT OnReadSAWtagMsg(WPARAM wParam, LPARAM lParam);
6.在初始化函数中增加定义
m_Info.hWnd = m_hWnd;
7. 在CTryStaticDlg类实现文件CTryStaticDlg.cpp中的消息映射表中加入自定义消息映射:
BEGIN_MESSAGE_MAP(CTryStaticDlg, CDialogEx)
ON_WM_SYSCOMMAND()
ON_WM_PAINT()
ON_WM_QUERYDRAGICON()
ON_MESSAGE(WM_ReadSAWtag_MSG, OnReadSAWtagMsg)添加
ON_BN_CLICKED(IDC_BUTTON1, &CTryStaticDlg::OnBnClickedButton1)
ON_BN_CLICKED(IDC_BUTTON4, &CTryStaticDlg::OnBnClickedButton4)
ON_BN_CLICKED(IDC_BUTTON5, &CTryStaticDlg::OnBnClickedButton5)
ON_BN_CLICKED(IDC_BUTTON2, &CTryStaticDlg::OnBnClickedButton2)
ON_WM_TIMER()
ON_BN_CLICKED(IDC_BUTTON3, &CTryStaticDlg::OnBnClickedButton_Save)
ON_BN_CLICKED(IDC_BUTTON6, &CTryStaticDlg::OnBnClickedButton6)
ON_BN_CLICKED(IDC_BUTTON_ClearAll, &CTryStaticDlg::OnBnClickedButtonClearall)
ON_BN_CLICKED(IDOK, &CTryStaticDlg::OnBnClickedOk)
END_MESSAGE_MAP()
6.在CTryStaticDlg类实现文件CTryStaticDlg.cpp中定义消息响应
LRESULT CTryStaticDlg::OnReadSAWtagMsg(WPARAM wParam, LPARAM lParam)
{
if (wParam == 0 && lParam == -1)
{
//m_stTip.SetWindowText("完成");
//GetDlgItem(IDC_BUTTON_CAL)->EnableWindow(TRUE);
}
return 0;
}
3.备注
1)先申请个全局void类型指针: void *pdlg;
2)在dlg InitDialog中,将该void指针初始化为this:?pdlg= this;
3)在全局函数中加入以下程序
CTryStaticDlg *dlg; //将void类型强制转换成dlg类型
dlg = CTryStaticDlg *)pdlg;
{
//m_stTip.SetWindowText("完成");
//GetDlgItem(IDC_BUTTON_CAL)->EnableWindow(TRUE);
}
return 0;
}
3.备注
1)先申请个全局void类型指针: void *pdlg;
2)在dlg InitDialog中,将该void指针初始化为this:?pdlg= this;
3)在全局函数中加入以下程序
CTryStaticDlg *dlg; //将void类型强制转换成dlg类型
dlg = CTryStaticDlg *)pdlg;