MFC线程创建以及利用线程显示字符
2014-06-03 16:46
337 查看
1、首先利用VS2010建立MFC对话框应用程序命名为MFC_Thread_Test,去掉默认的union字符集,也可以在工程建立完后修改工程属性,改为多字符集
2、添加对话框类成员变量
CWinThread* Thread1;//定义线程指针
CWnd* MainWnd;//定义对话框窗口指针
3、定义并实现一个类成员函数,用来封装线程创建,这里只封装一个线程创建,可以创建多线程
定义:
void CreatThread();
实现:
void CMFC_Thread_TestDlg::CreatThread()
{
MainWnd=AfxGetApp()->m_pMainWnd;//获取对话框窗口指针
Thread1=AfxBeginThread(Thread1_Process,MainWnd,0,0,CREATE_SUSPENDED,NULL);//创建线程并挂起
Thread1->ResumeThread();//唤醒线程
}
4、定义并实现线程处理函数
定义一个全局的线程处理函数:
UINT Thread1_Process(LPVOID pParam);
实现该函数
UINT Thread1_Process(LPVOID pParam)
{
CMFC_Thread_TestDlg* pMainWnd=(CMFC_Thread_TestDlg*)pParam;//通过参数获取对话框窗口指针
pMainWnd->EditShow();//通过对话框窗口指针调用对话框类里面的成员函数
pMainWnd->GetDlgItem(IDC_EDIT2)->SetWindowText("NO EditShow!!!");//直接调用库函数显示字符串
return 0;
}
5、在对话框上加两个编辑框,ID分别为IDC_EDIT1、IDC_EDIT2。再加两个按钮ID为IDC_BUTTON1和IDC_BUTTON2。
将按钮一名字改为创建线程,按钮二改为清空显示,双击按钮一,添加处理函数,在处理函数里面加上:
CreatThread();
双击按钮二,添加处理函数,在函数里面加上:
GetDlgItem(IDC_EDIT1)->SetWindowText("");//清空编辑框1
GetDlgItem(IDC_EDIT2)->SetWindowText("");//清空编辑框2
6、再为对话框类添加一个成员函数
定义:
void EditShow();
实现:
void CMFC_Thread_TestDlg::EditShow();
{
GetDlgItem(IDC_EDIT1)->SetWindowText("Thread has been created!!!");//编辑框1显示
}
2、添加对话框类成员变量
CWinThread* Thread1;//定义线程指针
CWnd* MainWnd;//定义对话框窗口指针
3、定义并实现一个类成员函数,用来封装线程创建,这里只封装一个线程创建,可以创建多线程
定义:
void CreatThread();
实现:
void CMFC_Thread_TestDlg::CreatThread()
{
MainWnd=AfxGetApp()->m_pMainWnd;//获取对话框窗口指针
Thread1=AfxBeginThread(Thread1_Process,MainWnd,0,0,CREATE_SUSPENDED,NULL);//创建线程并挂起
Thread1->ResumeThread();//唤醒线程
}
4、定义并实现线程处理函数
定义一个全局的线程处理函数:
UINT Thread1_Process(LPVOID pParam);
实现该函数
UINT Thread1_Process(LPVOID pParam)
{
CMFC_Thread_TestDlg* pMainWnd=(CMFC_Thread_TestDlg*)pParam;//通过参数获取对话框窗口指针
pMainWnd->EditShow();//通过对话框窗口指针调用对话框类里面的成员函数
pMainWnd->GetDlgItem(IDC_EDIT2)->SetWindowText("NO EditShow!!!");//直接调用库函数显示字符串
return 0;
}
5、在对话框上加两个编辑框,ID分别为IDC_EDIT1、IDC_EDIT2。再加两个按钮ID为IDC_BUTTON1和IDC_BUTTON2。
将按钮一名字改为创建线程,按钮二改为清空显示,双击按钮一,添加处理函数,在处理函数里面加上:
CreatThread();
双击按钮二,添加处理函数,在函数里面加上:
GetDlgItem(IDC_EDIT1)->SetWindowText("");//清空编辑框1
GetDlgItem(IDC_EDIT2)->SetWindowText("");//清空编辑框2
6、再为对话框类添加一个成员函数
定义:
void EditShow();
实现:
void CMFC_Thread_TestDlg::EditShow();
{
GetDlgItem(IDC_EDIT1)->SetWindowText("Thread has been created!!!");//编辑框1显示
}
相关文章推荐
- MFC利用halcon以及cimage在picture control控件上面显示图片
- MFC 两种创建状态栏方法以及在状态栏实时显示时间
- MFC 用afxbeginthread创建线程 线程函数直接 return 0 返回。任务管理器显示线程数与理论值不符
- 关于MFC下多线程,在线程中创建非模态对话框以及消息传递
- 利用 OpenCV 在MFC中显示图像问题以及解决方法
- 利用中断16H,显示按下的某个键的扫描码和ASCII码(以十六进制形式),以及这个字符(如果存在可显示的形式),直到按下ESC键后程序退出。(别人的作业,我帮着做的)
- 在基于对话框的MFC创建状态栏以及添加时间显示
- MFC为窗口创建线程,以及线程与窗口间的通信
- 谨慎使用DLL_THREAD_ATTACH,以及利用DLL_THREAD_ATTACH来阻止远程线程的创建执行
- MFC 对话框 创建菜单栏、工具栏以及菜单栏Checked 勾选显示工具栏
- 怎样利用MFC创建VB能引用的DLL方法
- MFC 创建HTML格式数据并显示
- MFC 创建新线程
- flex3:利用itemRenderer创建在线书店的图书信息显示页面
- 创建字体以及文本控件显示的总结
- 在MFC中动态创建控件以及事件响应
- 仿MFC实现c++按名动态创建对象之续(瘦身以及解决其在dll中使用的问题)
- 《工作笔记》 mfc 利用HBITMAP 和CBITMAP 显示位图文件
- PIC单片机利用视觉暂留现象显示字符
- MFC中创建线程