SetWindowLong是干什么

Panghuang 2001-08-20 03:59:34
请问SetWindowLong(hwnd, GWL_USERDATA, (COS_LONG)pdata)是什么意思???
...全文
182 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
jerry2 2001-08-21
  • 打赏
  • 举报
回复
在窗口建立后的任何时候修改窗口的属性,比如SIZE,SYTLE等等。
cloudshadow1 2001-08-21
  • 打赏
  • 举报
回复
SetWindowLong()用于改变一个窗口的属性。
属性包括窗口的样式、扩展样式、窗口函数、窗口的ID值、窗口所在的进程的句柄、和用户自定义的一个USER DATA(也就是WNDCLASS结构里的cbWndExtra,通常为0, 其实没有多大的作用)。
至于改变的是何种属性就由该API的第二个参数nIndex决定,譬如GWL_STYLE就代表要修改的是窗口的样式,具体的样式标致由第三个参数dwNewLong指出。
Panghuang 2001-08-21
  • 打赏
  • 举报
回复
GZ
Panghuang 2001-08-20
  • 打赏
  • 举报
回复
jiangsheng(蒋晟):非常感谢你的解释,我还是有点不明白,你所说的数据块是否任何结构都可以吗??
蒋晟 2001-08-20
  • 打赏
  • 举报
回复
可以存一个32位数,通常这个数是一个用户的数据块的指针。
Panghuang 2001-08-20
  • 打赏
  • 举报
回复
tiongkohlang(SDK):非常感谢你的解释,我还是有点不明白,“那么我们可以把名字存在hwnd的userdata里边”,这句话是什么意思?难道userdata是hwnd的一个子项,hwnd好像不是结构呀
tiongkohlang 2001-08-20
  • 打赏
  • 举报
回复
每一个hwnd都可能有一些和应用程序有关的数据。比如说,你可以给每一个窗口起一个名字。现在你希望得到窗口之后就知道它的名字。现在有两种办法,首先,你可以建立一全局变量表,里边有每一个hwnd和它的名字,然后每得到一个hwnd之后在这个表里边查找。这是一种和麻烦的办法。
现在Windows位我们提供了userdata这个东西,那么我们可以把名字存在hwnd的userdata里边。这样可以实现一种“数据携带”。
不过如果你要设计一个可以重用的窗口类,那么建议不要使用userdata,因为类的使用者可能使用userdata。比如你是标准button的编写者,那么鉴于其他的编程人员要大量的使用button,那么你不应该实用userdata,因为其它的编程人员也需要存取一些数据。这时候你应该实用附加的窗口字节。
Panghuang 2001-08-20
  • 打赏
  • 举报
回复
colorknight(多彩的骑士) 我要的是中文的非MSDN
Panghuang 2001-08-20
  • 打赏
  • 举报
回复
GZ
colorknight 2001-08-20
  • 打赏
  • 举报
回复
The SetWindowLong function changes an attribute of the specified window. The function also sets the 32-bit (long) value at the specified offset into the extra window memory.

LONG SetWindowLong(
HWND hWnd, // handle to window
int nIndex, // offset of value to set
LONG dwNewLong // new value
);


GWL_USERDATA:Sets the 32-bit value associated with the window. Each window has a corresponding 32-bit value intended for use by the application that created the window. This value is initially zero.
Panghuang 2001-08-20
  • 打赏
  • 举报
回复
希望回答

16,470

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Web++
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

试试用AI创作助手写篇文章吧