我有一個類表示一個文本框,在類的構造函數中我調用了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