MFC消息三部曲(2)——线程中控制窗口内容
来源:互联网 发布:软件著作权 专利 区别 编辑:程序博客网 时间:2024/06/05 08:14
【原文】http://blog.csdn.net/kingsollyu/article/details/8294032
简单概要
在前一篇的文章中写到了使用MFC的自定义消息,那个例子过于简单,今天就写一个比较实用而且用的地方也很多的例子。
预备知识
你得知道什么是 消息机制 ,或者你读了我前面上次的文章。
具体步骤
新建一个工程,名称为“ThreadControlUi”,使用 Unicode 编码。具体界面可以如下:然后按照上一篇文章所写的方法添加一个 WM_CHENGE_EDIT_TEXT 消息(记得在.h文件添加消息ID)。然后为消息添加如下代码:添加完消息代码之后再给“按钮”添加代码:
- //------------------------------------------------------------------------------
- // 函数命名: CThreadControlUiDlg::OnChengeEditText
- // 返回类型: LRESULT
- //------------------------------------------------------------------------------
- // 参数信息: WPARAM wParam 这个参数用来接收传入的字符
- // 参数信息: LPARAM lParam 保留参数
- // 函数备注:
- //------------------------------------------------------------------------------
- afx_msg LRESULT CThreadControlUiDlg::OnChengeEditText(WPARAM wParam, LPARAM lParam)
- {
- // 将WPARAM的参数强制转换为CString类型
- CString* strEdit = (CString*)wParam;
- // 将字符串设置到控件中
- SetDlgItemText(IDC_EDIT1,*strEdit);
- return 0;
- }
这样我们的程序就算完成了。编译一下吧。
- void thread_proc(LPVOID lpVoid)
- {
- CString strEdit;
- for (int i = 0; i < 10 ; i++)
- {
- strEdit.Format( _T("我是在线程里哦~ ( ̄. ̄),现在值为:%d"),i);
- // 在线程中向主窗口发送自己的消息
- SendMessage(
- AfxGetApp()->GetMainWnd()->GetSafeHwnd(), // 获得主窗口在句柄
- WM_CHENGE_EDIT_TEXT, // 发送自己的窗口消息
- (WPARAM)&strEdit, // 设置发送的内容
- NULL); // 预留参数为空
- Sleep(500); // 使线程延时500毫秒,为了看清界面的数字变化
- }
- }
- void CThreadControlUiDlg::OnBnClickedButton1()
- {
- // 创建一个新的线程
- CreateThread(NULL,NULL,(LPTHREAD_START_ROUTINE)thread_proc,NULL,NULL,NULL);
- }
总结拓展
其实消息的用处是很广的,不值是在这里可以体现!
事例下载
下载地址:点击下载
0 0
- MFC消息三部曲(2)——线程中控制窗口内容
- MFC学习笔记——线程中控制窗口内容 .
- [每日一学]MFC学习笔记——线程中控制窗口内容
- MFC消息三部曲(3)——多窗口之间的通信
- MFC消息三部曲(1)——自定义消息的使用
- MFC —— 线程控制主窗口的控件
- 在MFC中从一个线程工作函数中向窗口发送消息以及窗口到窗口消息传送方法
- 在MFC中从一个线程工作函数中向窗口发送消息(this指针的妙用)
- 在MFC中从一个线程工作函数中向窗口发送消息(this指针的妙用) .
- 在MFC中从一个线程工作函数中向窗口发送消息(this指针的妙用)
- 在MFC中从一个线程工作函数中向窗口发送消息(this指针的妙用) .
- MFC中获取HRESULT错误消息内容
- c++控制台(非窗口,非MFC框架)里线程如何通过自定义消息通信
- 线程中向窗口发消息注意
- MFC中父窗口和子窗口消息的传递
- VC/MFC中常用消息总结(常见的窗口消息)
- MFC学习(18)MFC中利用HWND_BROADCAST 向其它所有窗口广播消息
- MFC 线程中发送最小化消息失败
- 数据在SQLLDR的时候提示错误, 使用TRAILING NULLCOLS
- 统一语言
- STL(6)之Traits编程技法 与迭代器
- TortoiseGit之配置密钥
- 高级结果映射 ResultMap Association Collection
- MFC消息三部曲(2)——线程中控制窗口内容
- Java-集合--Java集合排序
- 设计模式 - 迭代器模式(iterator pattern) 扩展 详解
- 百度云离线下载含有违规内容检测方法分析
- python 学习之range()函数
- 在一个数组里实现不同的下标访问不一样的数据类型。
- 操作符重载和友元的关系
- wget从oracle网站中下载jdk
- C# struc的陷阱 (无法修改""的返回值,因为他不是变量)