控件的消息处理函数是系统定义好的,通常情况下,不需要再见提供。
但是要是想要对其进行特殊控制时,可以提供一个消息处理函数,替换原来的消息处理函数。自己处理完后,在调用系统的缺省处理函数
相关函数
// 函数原型
// GetWindowLong函数检索有关指定窗口的信息。该函数还在额外的窗口内存中获取指定偏移量处的32位(长)值
// 要编写兼容32位和64位版本Windows的代码,可以使用GetWindowLongPtr
LONG GetWindowLong(
HWND hWnd, // handle to window
int nIndex // offset of value to retrieve
);
// SetWindowLong函数改变指定窗口的属性。该函数还将指定偏移量处的32位(长)值设置为额外的窗口内存。
// 注意,这个函数已经被SetWindowLongPtr函数取代了。要编写兼容32位和64位版本Windows的代码,可以使用SetWindowLongPtr。
LONG SetWindowLong(
HWND hWnd, // handle to window
int nIndex, // offset of value to set
LONG dwNewLong // new value
);
- nIndex的值
GWL_EXSTYLE | 扩展风格 |
---|---|
GWL_STYLE | 风格 |
GWL_WNDPROC | 窗口消息回调函数 |
GWL_HINSTANCE | 实例 |
GWL_ID | 窗口ID |
GWL_USERDATA | 用户数据 |
GWL_DLGPROC | 对话框消息回调函数 |
// 获得控件的消息处理函数
LONG hControlProc = GetWindowLong(hControl, GWL_WNDPROC);
// 劫持对话框消息处理函数