我有一个代表文本框的类,在类的构造函数中我调用了CreateWindow
函数,并且我想在额外的窗口内存中存储指向该对象的指针,所以在WndProc
函数中我将获取指针,并将使用班级成员。
我试图用这段代码做到这一点,但它不工作,有人可以写一个例子来做到这一点:
- 我应该在结构
cbWndExtra
成员中赋予什么价值WNDCLASSEX
。 - 怎么打电话
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
它不起作用。