摘要: WPARAM 和 LPARAM wParam和lParam 这两个是Win16系统遗留下来的产物,在Win16API中WndProc有两个参数:一个是WORD类型的16位整型变量;另一个是LONG类型的32位整型变量。因此根据匈牙利命名法,16位的变量就被命名为wParam, 32位的变量就被命名为lParam。 而到了Win32API中,原来的16位变量也被扩展为32位,因此此时wParam和lParam的大小完全相同。 区别及习惯用法: MS在使用时两种参数分别代表不同的含义和内容,WPARAM常常代表一些控件的ID或者高位低位组合起来分别表示鼠标的位置,如果消息的发送者需要将某种... 阅读全文
posted @ 2014-01-05 20:27 Sky_Watcher 阅读(6581) 评论(0) 推荐(1) 编辑
摘要: 由于MFC中无法通过类向导来自定义消息,所以需要手动添加,主要过程如下:本文基于vs2008下通过线程实现数据实时更新的对话框运用程序1. 定义消息(Resource.h文件中):由于很多新控件也会用到WM_USER消息,所以定义WM_USER+100或更高,避免冲突#define WM_UPD... 阅读全文
posted @ 2014-01-05 19:18 Sky_Watcher 阅读(11791) 评论(0) 推荐(0) 编辑
摘要: 在尝试线程更新界面时,在线程中调用UpdateData(FALSE)后出现如下错误:原因: MFC对象不支持多线程操作,不能供多个线程进程使用。子线程调用pDlg-> UpdateData(FALSE)时主线程(界面线程)会阻塞,更新必须由它完成,这样就形成死锁。UpdateData()函数属于CDialog类的保护成员函数,在工作线程中不能使用UpdateData来更新主线程中的数据。更改界面的操作最好用主线程(界面线程),要想在子线程(工作线程)里执行界面线程的操作,可以通过向主线程发送消息来解决。解决办法:1. 创建线程时使用AfxBeginThread创建CWinThread继承 阅读全文
posted @ 2014-01-05 17:08 Sky_Watcher 阅读(4076) 评论(0) 推荐(1) 编辑