回 帖 发 新 帖 刷新版面

主题:SetWindowLong(); GetWindowLong();

我创建了一个子窗口,我希望对这个子窗口附加一些我自己的东西。

然后我便使用了

SetWindowLong(hwChild, DWL_USER, (LONG)P);

但是不知道为什么返回值是 0(失败了)

用GetLastError();
查看错误代码是1413,我上网查了下代码表示的意思是“无效索引”

……我到底错到那里呢?一般都什么情况会出现这个错误呢?

[em10]

回复列表 (共3个回复)

沙发

在MSDN中我们可以看到这样一句话:
The following values are also available when the hWnd parameter identifies a dialog box

DWL_DLGPROC
DWL_MSGRESULT
 DWL_USER  

什么意思呢?也就是说 DWL_USER 这个标识只在当hWnd参数标识的是一个对话框的时候才可以用。也就是说必须要传递对话框的句柄才行

板凳

我不同意你对这句话的理解,我是这样理解这句话的:

“以下的标识也(also)可以在hWnd标识对象是对话框的时候生效”

also不能理解为“只”吧?



3 楼

也许lisuimeng说的是对的,因为also + when,其意思也就是那三个参数值只适合对话框了,如果没有when,就是"也适合"。

最好把你更具体些的代码贴出来。

我来回复

您尚未登录,请登录后再回复。点此登录或注册