#define SubclassWindow(hwnd, lpfn) \
((WNDPROC)SetWindowLongPtr((hwnd), GWLP_WNDPROC, (LPARAM)(WNDPROC)(lpfn)))
从该宏可以看出是调用SetWindowLongPtr
具体的详解:http:///sunliangyuan/article/details/6028425
由于照着上面的链接敲的时候遇到了两个问题:
1、OnChar无法响应
2、当按回车键的时候整个程序直接退出了
一、其实也是看链接里面的介绍,要进行消息映射,而我只是简单的创建一个类,然后继承CEdit
.h
这样一种无法进入onchar函数,后来觉得CEdit也应该是一个窗体,既然是窗体就应该要有自己的消息映射函数
于是就写如下代码
很幸运的成功了。 那究竟为何这样才能成功呢?
WNDPROC* lplpfn = GetSuperWndProcAddr(); WNDPROC oldWndProc = (WNDPROC)::SetWindowLongPtr(hWnd, GWLP_WNDPROC, (INT_PTR)AfxGetAfxWndProc());
设置自身的回掉函数。具体如样例的描述解释。
二、第二个问题的解释
具体详解:http://tech.163.com/05/0906/09/1SV5EEQF000915.html