Window API函数,可根据nlndex参数的不一样获取指定窗口的相关信息,
也可用于获取窗口内存中指定偏移的32位度整型值。该值大小在注册窗口类时设定,函数
函数原型:
Long GetWindowLong(HWND hWnd, int nlndex);spa
第一个参数:HWND 须要操做的窗口句柄。指针
第二个参数:nlndexcode
1.若大于0,返回窗口内存中指定偏移量的32位值
有效范围为0到存储空间的字节数减4,
好比指定了12个字节的额外窗口存储空间,则应设置8来访问第三个4字节,设置4来访问第二个4字节
设置0来访问第一个4字节空间,blog
2.也能够设置如下数据: 描述发的内存
#define GWL_WNDPROC (-4) //获取窗口过程地址或句柄。必须使用CallWindowProc函数调用获取的窗口过程。 #define GWL_HINSTANCE (-6) //获取应用实例句柄 #define GWL_HWNDPARENT (-8) //获取全部者窗口句柄 #define GWL_STYLE (-16) //得到窗口样式 #define GWL_EXSTYLE (-20) //获取扩展窗口样式 #define GWL_USERDATA (-21) //获取用户设置的32位数据,其值默认为0 #define GWL_ID (-12) //获取窗口ID hWnd参数为对话框句柄时,还可用下列值: #define DWL_MSGRESULT 0 //获取在对话框过程当中某消息的返回值。 #define DWL_DLGPROC 4 //获取对话框过程地址或句柄。必须使用CallWindowProc函数来调用对话框过程。 #define DWL_USER 8 //获取应用程序专用的额外信息,例如一个句柄或指针。
返回值:原型
若是函数成功,返回值是指定的32位整数的原来的值。若是函数失败,返回值为0。class
可是,若是指定的32位整数值为0 函数成功将返回0,变量
补充:扩展
窗口的额外存储空间有注册窗口类时经过设置如下参数指定;
wndclass.cbWndExtra = sizeof(long); 该段代码为使用该窗口类注册的串口预留了 一个长整形变量大小的额外空间。
同时能够经过 SetWindowLong() 函数来改变该值
SetWindowLong(hwnd,0,1) //设置第一个4字节的值
SetWindowLong(hwnd,4,2) //设置第二个4字节的值
SetWindowLong(hwnd,8,3) //设置第三个4字节的值