因为线程函数是全局的,而对话框串口的成员变量属于对话框类,所以不能调用,若想使用,可以自定义一个消息,在线程函数中利用SendMessage or PostMessage函数给主窗口发送消息,然后在窗口类的实现文件中定义消息处理函数即可,主要有以下步骤:
在对话框类的实现文件中:
1.定义消息
#define WM_MYMESSAGE WM_USER+100
2.在BEGIN_MESSAGE_MAP宏中增加一个入口将消息和函数关联起来
BEGIN_MESSAGE_MAP(CLmsTestDlg, CDialog)
..............................
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
3.定义消息处理函数
LRESULT CLmsTestDlg::OnMyMessage(WPARAM wParam,LPARAM lParam)
{}
在对话框类的头文件中声明消息函数:
此外,可以在线程函数加个参数,这个参数是对话框的指针,这样也可以做到访问成员变量,但对窗口控件的刷新要格外小心些!