我有一个代表文本框的类,在类的构造函数中我调用了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它不起作用。