前面说到对wm_gettext的屏蔽,但是那种屏蔽方式太霸道,所有程序都无法访问了,最近我想出了一个解决办法,就是为lparam赋个值,这个值是你在子类函数里判断处理的.
void CMfc1Dlg::OnButton3()
{
UpdateData();
char s[100]="查看";
::SendMessage(GetDlgItem(IDC_EDIT1)->m_hWnd,WM_GETTEXT,100,long(s));
::MessageBox(0,s,"a",0);
// TODO: Add your control notification handler code here
}
LRESULT CALLBACK a(HWND h,UINT m,WPARAM w,LPARAM l){
if(m==WM_GETTEXT){
char *a=(char*)l;
//char sx[100]={0};
//return ::DefWindowProc(h,m,w,l);
if(::strnicmp(a,"查看",2)==0){
}
else{
strcpy(a,"sx");
return 1;
}
//return ::CallWindowProcA((WNDPROC)old,::h,m,w,l);
}
return ::CallWindowProcA((WNDPROC)old,h,m,w,l);
}
代码应该很好懂吧,就不做多解释了,如果可以把它封装成一个类以后调用的话就更好了,如果还有其他好办法的话还望大家多多赐教啊