SetWindowLongPtr
时间: 2023-11-27 09:52:41 浏览: 92
SetWindowLongPtr是Windows API中的一个函数,用于设置窗口的扩展风格或者过程函数。该函数的声明如下:
```
LONG_PTR SetWindowLongPtr(
HWND hWnd,
int nIndex,
LONG_PTR dwNewLong
);
```
其中,hWnd是待设置的窗口的句柄;nIndex是指定要设置的属性,可以是以下值之一:
- GWL_EXSTYLE:设置窗口的扩展风格。
- GWL_STYLE:设置窗口的风格。
- GWL_WNDPROC:设置窗口的过程函数。
dwNewLong是指定要设置的属性值。返回值为旧的属性值。
需要注意的是,如果使用的是32位编译器,则应该使用SetWindowLong函数,而不是SetWindowLongPtr函数。因为SetWindowLongPtr函数在64位编译器中才存在。
相关问题
SetWindowLongPtr 使用方法
SetWindowLongPtr 函数的使用方法如下:
```c++
LONG_PTR SetWindowLongPtr(
HWND hWnd, // 窗口句柄
int nIndex, // 索引
LONG_PTR dwNewLong // 新值
);
```
其中,参数说明如下:
- hWnd:要操作的窗口句柄。
- nIndex:指定要修改的值的类型。可以是以下值之一:
- GWL_EXSTYLE:修改扩展窗口风格。
- GWLP_HINSTANCE:修改与窗口相关联的实例句柄。
- GWLP_ID:修改窗口标识符。
- GWL_STYLE:修改窗口风格。
- GWLP_USERDATA:修改与窗口关联的用户数据。
- dwNewLong:新值,用于设置指定索引的值。
该函数的返回值是指定的值的先前值。需要注意的是,如果你使用 SetWindowLongPtr 函数来设置 GWL_EXSTYLE 或 GWL_STYLE 索引的值,那么必须在调用该函数之后使用 SetWindowPos 函数使更改生效。否则,你的更改可能不会立即生效。
SetWindowLongPtr(hWnd, GWLP_USERDATA
SetWindowLongPtr(hWnd, GWLP_USERDATA) 是一个函数调用的前半部分,它的作用是获取 hWnd 指定的窗口的用户数据。可以将其作为一个函数调用的一部分,如下所示:
```c++
LONG_PTR userData = SetWindowLongPtr(hWnd, GWLP_USERDATA, 0);
```
其中,userData 是一个 LONG_PTR 类型的变量,用于存储获取到的用户数据。该调用的作用是将 hWnd 指定的窗口的用户数据设置为 0,并返回原来的用户数据。如果你只是想获取窗口的用户数据,则可以将 dwNewLong 参数设置为 0,这样就不会修改窗口的用户数据。需要注意的是,如果窗口没有设置用户数据,则该函数会返回 0。
阅读全文