主题:Rich Edit 没有EN_CHANGE和EN_UPDATE消息??
我用下面的一句将文本框的消息处理程序改为我自己的.
(这一句在窗口的WM_CREATE消息里)
pOldProcRichEdit = (WNDPROC)SetWindowLong(hEdit_Exp, GWL_WNDPROC,(long)Proc_Edit_Exp);
这里是文本框的消息处理程序:
/*<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<*/
LRESULT CALLBACK Proc_Edit_Exp(HWND hWnd,UINT uMsg,WPARAM wParam,LPARAM lParam)
{
switch (uMsg){
case EN_CHANGE:
MessageBox(0,"ENCHANGE",0,MB_OK);
break;
case WM_CHAR:
MessageBox(0,"char",0,MB_OK);
break;
default:
return CallWindowProc(pOldProcRichEdit,hWnd,uMsg,wParam,lParam);
}
return CallWindowProc(pOldProcRichEdit,hWnd,uMsg,wParam,lParam);
}
//<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
但只能接收到WM_CHAR,EN_CHANGE怎么也接收不到,,为什么??
(这一句在窗口的WM_CREATE消息里)
pOldProcRichEdit = (WNDPROC)SetWindowLong(hEdit_Exp, GWL_WNDPROC,(long)Proc_Edit_Exp);
这里是文本框的消息处理程序:
/*<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<*/
LRESULT CALLBACK Proc_Edit_Exp(HWND hWnd,UINT uMsg,WPARAM wParam,LPARAM lParam)
{
switch (uMsg){
case EN_CHANGE:
MessageBox(0,"ENCHANGE",0,MB_OK);
break;
case WM_CHAR:
MessageBox(0,"char",0,MB_OK);
break;
default:
return CallWindowProc(pOldProcRichEdit,hWnd,uMsg,wParam,lParam);
}
return CallWindowProc(pOldProcRichEdit,hWnd,uMsg,wParam,lParam);
}
//<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
但只能接收到WM_CHAR,EN_CHANGE怎么也接收不到,,为什么??