我有一个类表示一个文本框,在类的构造函数中我调用了CreateWindow
函数,并且我想存储额外的窗口内存中的指针对象,所以在WndProc
函数中我会得到指针,并且会使用类成员。
我想这样做与此代码,但它不工作,能有人来写一个例子如何做到这一点:示例将指针存储在窗口类的额外窗口内存中
- 我应该给在
WNDCLASSEX
结构cbWndExtra
成员什么样的价值。 - 如何调用
SetWindowLong
。 - 如何调用
GetWindowLong
。
代码中,我写道:
wcex.cbWndExtra = 4;
,我在文本框中类的构造函数写了这个:
hWnd = CreateWindow(...);
SetWindowLong(hWnd,0,(LONG)this);
在WndProc
功能,这
unique_ptr<TextBox> pTextBox;
pTextBox.reset((TextBox*)GetWindowLong(hWnd,0));
===编辑===
现在我明白,如果我更改WndProc
功能的代码,这段代码:
TextBox *pTextBox;
pTextBox = (TextBox*)GetWindowLong(hWnd,0);
它的工作为好,但它unique_ptr
不工作。
“它不工作”是什么意思? – 2013-02-14 20:37:04
请注意SetWindowLong只存储一个长而不是指针。在64位平台上,这些不一样。 – 2013-02-14 20:38:44
@Robert - 我没有得到这个类的对象,jast新对象。 – user1544067 2013-02-14 20:38:56