SetWindowLong函数用来改变指定窗口的属性,函数同时在窗口的额外内存中设置32位的偏移量值:
LONG WINAPI SetWindowLong(
__in HWND hWnd, //指定窗口的句柄,或者间接地,窗口所属的类
__in int nIndex, //指定要设置的属性值的偏移地址
__in LONG dwNewLong //指定设置的新值
);
参数nIndex的取值如下:
GWL_EXSTYLE //设置一个新的扩展窗口风格
GWL_HINSTANCE //设置一个新的应用程序实例句柄
GWL_ID //为窗口设置一个新的标识
GWL_STYLE //设置一个新的窗口风格
GWL_USERDATA //设置与窗口相关的32位值
GWL_WNDPROC //设置一个新的窗口过程
当hWnd参数指定的是一个对话框时,那么nIndex参数还可以取如下值:
DWL_DLGPROC //设置新的对话框过程
DWL_MSGRESULT //设置在对话框过程中处理的消息的返回值
DWL_USER //设置新的额外信息,该信息仅为应用程序所有,例如句柄或指针
函数调用成功,setWindowLong函数将返回先前为窗口指定的32位整型值。也就是说,如果为指定窗口设定一个新的窗口过程,则该函数将返回先前为该窗口类指定的窗口过程的地址。
实例代码见:《Windows核心编程》の窗口过程的使用:http://blog.csdn.net/ACE1985/archive/2010/08/28/5846524.aspx
GetWindowLong函数用来获取指定窗口的属性信息。函数同时在窗口的额外内存中获取32位的偏移量值:
LONG WINAPI GetWindowLong(
__in HWND hWnd, //指定窗口的句柄,或者间接地,窗口所属的类
__in int nIndex //指定要获取的属性值的偏移地址
);
参数nIndex取值同SetWindowLong相应参数。
函数调用成功,返回指定的值;失败时,返回0。如果前面没有调用SetWindowLong函数,则GetWindowLong函数返回的额外窗口或类内存中的值是0。