各位老大,我想屏蔽另一个程序的一个CEdit控件的消息,帮我看看下面的代码,是一csdn的网友给我的,我看着没有什么问题,但在执行OldEditProc = (WNDPROC)SetWindowLong(hwndchild, GWL_WNDPROC,(LONG)SendEditProc);时返回是零,hwndchild是对的,我也查过了,问题在哪儿啊,谢谢大家了
WNDPROC OldEditProc;LRESULT CALLBACK SendEditProc(HWND hEdit,UINT message,WPARAM wParam,LPARAM lParam)
{
int i=0;
switch(message)
{
case WM_KILLFOCUS:
MessageBox(NULL,"Return","OK", MB_OK);
break;
case WM_SETFOCUS:
MessageBox(NULL,"Return","OK", MB_OK); break;
case WM_KEYDOWN:
MessageBox(NULL,"Return","OK", MB_OK);
return 0;
default:
MessageBox(NULL,"Return","OK", MB_OK); }
return CallWindowProc(OldEditProc,hEdit,message,wParam,lParam);
}
void CCellDlg::OnButton1()
{
HWND hwndmain=::FindWindow(0,"untitled");
HWND hwndchild=::FindWindowEx(hwndmain,0,"edit",0);
OldEditProc = (WNDPROC)SetWindowLong(hwndchild, GWL_WNDPROC,(LONG)SendEditProc);
}
WNDPROC OldEditProc;LRESULT CALLBACK SendEditProc(HWND hEdit,UINT message,WPARAM wParam,LPARAM lParam)
{
int i=0;
switch(message)
{
case WM_KILLFOCUS:
MessageBox(NULL,"Return","OK", MB_OK);
break;
case WM_SETFOCUS:
MessageBox(NULL,"Return","OK", MB_OK); break;
case WM_KEYDOWN:
MessageBox(NULL,"Return","OK", MB_OK);
return 0;
default:
MessageBox(NULL,"Return","OK", MB_OK); }
return CallWindowProc(OldEditProc,hEdit,message,wParam,lParam);
}
void CCellDlg::OnButton1()
{
HWND hwndmain=::FindWindow(0,"untitled");
HWND hwndchild=::FindWindowEx(hwndmain,0,"edit",0);
OldEditProc = (WNDPROC)SetWindowLong(hwndchild, GWL_WNDPROC,(LONG)SendEditProc);
}
解决方案 »
- _RecordsetPtr 对象转换成 tagvariant类型 ???
- MSComm串口通信控件问题
- 内心的焦虑... 自已的无奈...
- 用电脑发送短消息,请教高手指教
- 请大家回答一些面试题?thanks!
- 急~~~ListCtrl方面的问题!
- 高分向高手求助!
- 怎么样 在VC中把一个字符转成他本来的 ASCII码值!!
- [SOS]通过devenv命令行的方式编译几个solution,总是在同一个solution的同一位置停在那儿不动了,不知道是什么问题 @.@ T___________T
- 关于CDatabase::OpenEx()连接带有密码数据库的问题?
- 正规dll中引用资源(对话框,字符串等)的release版本有异常,无法执行,该怎么办?
- 如何知道选中了CListCtrl中的一表项(大图标模式显示)??
看看msdn上面的说明:
GWL_WNDPROC
Sets a new address for the window procedure.Windows NT/2000/XP: You cannot change this attribute if the window does not belong to the same process as the calling thread.