MFC总结(12) -- 在mfc中使用线程 更新Progress Control(1)
来源:互联网 发布:cdn网宿和阿里云cdn 编辑:程序博客网 时间:2024/05/22 20:28
实现效果:
1、创建一个mfc工程,并添加Progress Control,将属性中的 Vetical 设置为True (这样Progress Ctrl是竖着 而不是横着),将ID修改为IDC_THRED_PROGRESS。
添加一个Static Text,ID设置为IDC_SHOETEXTSTATIC,Caption设置为0
2、给Progress Control绑定一个变量,m_threadProgressCtrl。
3、在OnInitDialog() 方法中添加一个定时器 SetTimer(1, 200, NULL);
BOOL Cmfc线程Dlg::OnInitDialog(){CDialogEx::OnInitDialog();// 将“关于...”菜单项添加到系统菜单中。 //........// 设置此对话框的图标。 当应用程序主窗口不是对话框时,框架将自动// 执行此操作SetIcon(m_hIcon, TRUE);// 设置大图标SetIcon(m_hIcon, FALSE);// 设置小图标// TODO: 在此添加额外的初始化代码//添加定时器SetTimer(1, 200, NULL);//设置Progress Control//范围m_threadProgressCtrl.SetRange(0, 200);//开始位置m_threadProgressCtrl.SetPos(0);return TRUE; // 除非将焦点设置到控件,否则返回 TRUE}
SetTimer(1, 200, NULL);//添加定时器 //设置Progress Control //范围 m_threadProgressCtrl.SetRange(0, 200); //开始位置 m_threadProgressCtrl.SetPos(0); return TRUE; // 除非将焦点设置到控件,否则返回 TRUE}
4、ctrl + shif + x 添加WM_TIME消息处理函数 onTime()
5、添加一个需要线程执行的方法,更新界面
void Cmfc线程Dlg::updatePro(DWORDLONG size){//线程函数实现CString str; //更新Progressm_threadProgressCtrl.SetPos(size);str.Format(L"%d", size);//给Static Text设置文本内容GetDlgItem(IDC_SHOETEXTSTATIC)->SetWindowText(str);Sleep(500);}
6、在头文件中添加 CWinThread *m_pThread; //线程指针 成员变量
7、编写OnTime方法
void Cmfc线程Dlg::OnTimer(UINT_PTR nIDEvent){// TODO: 在此添加消息处理程序代码和/或调用默认值//一个随机数字DWORDLONG tim = rand() % 80;//启动线程m_pThread = AfxBeginThread(ThreadFunc, (LPVOID)tim); //销毁线程m_pThread->ResumeThread();CDialogEx::OnTimer(nIDEvent);}
8、添加一个线程函数,注意要在类外面
UINT ThreadFunc(LPVOID pParam);//线程函数声明
线程函数实现
UINT ThreadFunc(LPVOID pParam){DWORDLONG size = (DWORDLONG)pParam;Cmfc线程Dlg* hh = (Cmfc线程Dlg*)AfxGetApp()->m_pMainWnd;hh->updatePro(size);return 0;}
代码网址
http://download.csdn.net/detail/obuyiseng/9263099
0 0
- MFC总结(12) -- 在mfc中使用线程 更新Progress Control(1)
- MFC总结(13) -- 在mfc中使用线程 更新Progress Control(2)
- MFC-进度条Progress Control
- MFC中在线程函数中如何更新CLIST CONTROL中的值呢?求大佬解答
- 在MFC中使用Tab Control
- 在MFC中使用Tab Control
- 在MFC中使用Tab Control
- 在MFC中使用Tab Control
- 在MFC中使用Tab Control
- 在MFC中使用Tab Control
- MFC控件小记-Progress Control
- MFC中使用Tab Control
- 在MFC中使用Tab Control的源代码
- 在MFC中使用Tab Control的方法
- 在MFC中的picture control 中使用opengl作图
- MFC 在线程中通过PostMessage更新界面主线程
- MFC中Spin Control控件使用,同时数据在Edit Control中显示
- MFC中Spin Control控件使用,同时数据在Edit Control中显示
- 困了累了,就想想这些吧
- sqlite数据库解析
- Unity错误(3)—— java.lang.IllegalArgumentException: ResClass is not initialized
- Android.mk 简介(二)
- 设置字符串中为数字字符的属性
- MFC总结(12) -- 在mfc中使用线程 更新Progress Control(1)
- 获取当前网络状态
- 四种单例设计模式
- Xcode之lldb的技巧
- 非控件ajax举例
- eclipse 设置 jdk 1.8 与 android sdk的问题
- geohash算法
- Mahout推荐算法API详解
- 使用TCP/IP协议实现聊天程序