0

我对edit和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);

我正在使用 vc++ 6。

提前致谢。

4

1 回答 1

5

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

此外,很难从您提供的示例中分辨出来,但请确保OriginalProc没有被多个窗口使用。它在这里看起来是一个单一的全局变量,但我猜你正在继承多个窗口。

于 2011-03-27T11:14:24.123 回答