使用GWL_WNDPROC子类化richedit的问题

0 c winapi richedit subclassing common-controls

我为编辑和richedit做了这个确切的事情但是对于后者存在访问冲突,为什么?当tabctrl完成时也会发生同样的事情.我究竟做错了什么?我怎样才能让它发挥作用?

WNDPROC OriginalProc;

LRESULT CALLBACK MyProc(HWND h, UINT m, WPARAM w, LPARAM p)
{
return OriginalProc (h, m, w, p);// access violation for common controls
}

// elsewhere 
HWND h = CreateWindow(....)
OriginalProc = (WNDPROC)SetWindowLong(h, GWL_WNDPROC, (LONG)MyProc);
Run Code Online (Sandbox Code Playgroud)

我正在使用vc ++ 6.

提前致谢.

ten*_*our 5

你不应该OriginalProc直接打电话; 使用CallWindowProc来调用它.

此外,从您提供的示例中很难判断,但请确保OriginalProc多个窗口未使用它.它看起来这是一个单一的全局变量,但我猜你正在为多个窗口创建子类.