GetWindowLongPtr
这个函数是在指定的窗口中获取信息。也可以在指定window内存偏移量的情况下获取值。
可以拿这个函数来代替GetWindowLong函数来获取一个指示器或者句柄(注:指示器和句柄是32位或64位微软windows所特有的概念)。要写一个兼容32位或64位windows版本的代码,就要使用这个函数。
语法:
LONG_PTR GetWindowLongPtr(
HWND hWnd,
int nIndex
);
参数:
hWnd
欲获取信息的窗口(或属于窗口的类)的句柄。
nIndex
为欲获取的信息指定值。可以是以下其中之一。
GWL_EXSTYLE
获取扩展窗口样式。更多信息,查阅CreateWindowEx.
GWL_STYLE
获取窗口样式(window styles)
GWLP_WNDPROC
获取窗口程序指示器,或描述指示器的句柄 。如果使用此参数,必须使用CallWindowProc回调函数。
GWLP_HINSTANCE
获取一个应用程序实例的句柄 。
GWLP_HWNDPARENT
如果只有一个父窗口,获取父窗口的句柄 。
GWLP_ID
获取窗口标识符。
GWLP_USERDATA
获取窗口关联的数据,是应用程序创建窗口时留给用户的数据。初始值是0。
DWLP_DLGPROC
获取一个对话框的指示器,或描述指示器的句柄 。如果使用此参数,必须使用CallWindowProc回调函数。 DWLP_MSGRESULT 获取一个对话框中的被处理的信息的值。
DWLP_USER 作为指示器或句柄来获取私有应用程序的额外的信息。
返回值:
如果函数执行成功,将返回读取的值。
如果执行失败,将返回零,要获取更多扩展信息,请调用GetLastError.
如果SetWindowLong or SetWindowLongPtr没有被事先调用,就在扩展窗口或类内存中调用GetWindowLongPtr函数,将返回零
详情你也可以查看MSDN。
使用库:User32.DLL
例如:
[DllImport("user32", EntryPoint="GetWindowLongPtr")]
public static extern IntPtr GetWindowLongPtr(
InPtrt hwnd,
int nIndex
);
这个函数是在指定的窗口中获取信息。也可以在指定window内存偏移量的情况下获取值。
可以拿这个函数来代替GetWindowLong函数来获取一个指示器或者句柄(注:指示器和句柄是32位或64位微软windows所特有的概念)。要写一个兼容32位或64位windows版本的代码,就要使用这个函数。
语法:
LONG_PTR GetWindowLongPtr(
HWND hWnd,
int nIndex
);
参数:
hWnd
欲获取信息的窗口(或属于窗口的类)的句柄。
nIndex
为欲获取的信息指定值。可以是以下其中之一。
GWL_EXSTYLE
获取扩展窗口样式。更多信息,查阅CreateWindowEx.
GWL_STYLE
获取窗口样式(window styles)
GWLP_WNDPROC
获取窗口程序指示器,或描述指示器的句柄 。如果使用此参数,必须使用CallWindowProc回调函数。
GWLP_HINSTANCE
获取一个应用程序实例的句柄 。
GWLP_HWNDPARENT
如果只有一个父窗口,获取父窗口的句柄 。
GWLP_ID
获取窗口标识符。
GWLP_USERDATA
获取窗口关联的数据,是应用程序创建窗口时留给用户的数据。初始值是0。
DWLP_DLGPROC
获取一个对话框的指示器,或描述指示器的句柄 。如果使用此参数,必须使用CallWindowProc回调函数。
DWLP_USER
返回值:
如果函数执行成功,将返回读取的值。
如果执行失败,将返回零,要获取更多扩展信息,请调用GetLastError.
如果SetWindowLong or SetWindowLongPtr没有被事先调用,就在扩展窗口或类内存中调用GetWindowLongPtr函数,将返回零
详情你也可以查看MSDN。
使用库:User32.DLL
例如:
[DllImport("user32", EntryPoint="GetWindowLongPtr")]
public static extern IntPtr GetWindowLongPtr(
InPtrt hwnd,
int nIndex
);