叔叔好,请教一个关于窗口子类化的问题
臭你个臭臭 2008-11-27 03:47:40 .
.
.
WndProc proc hWnd, uMsg, wParam, lParam
mov eax, uMsg
.if eax==WM_CREATE
invoke CreateWindowEx,xx,xx,xx.......
mov hRichEdit, eax
invoke SetWindowLong, hwndRichEdit, GWL_WNDPROC, addr NewRichEditProc
mov OldWndProc, eax
invoke SetWindowLong, hwndRichEdit, GWL_USERDATA, eax
.elseif eax==WM_SIZE
.
.
我在窗口处理函数中对Rich Edit控件进行子类化,程式运行证明子类化是成功的,主要代码如上,但问题也出来了,耗了10个小时也没解决。
一,如果我将子类化函数置于WM_CREATE消息中,程式ml和link都通过,但运行.exe时只会在屏幕上闪现一下就自动关闭,一瞬间。
二,如果我将子类化函数置于WM_SIZE消息中,程式可以运行,子类化成功切.exe档不会消失,但先前关于WM_SIZE消息的处理都不再有用,且当编辑区有鼠标按键动作时,程式关闭(当没有创建子类化时一切正常)。比如说,没有创建子类化时编辑框会随里面资料自动调整大小,但创建子类化后,一旦资料有超过预定义的窗口大小程式就会关闭,且鼠标拖动边界也会导致关闭,实在想不明白。