用Spy++看到的WndProc地址一样是什么意思? 用Spy++看到的两个对话框的WndProc地址一样是什么意思?我想模仿QQ主界面的#32770类的对话框,怎样才能做到跟它一样的WndProc地址? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 那如果我想模仿QQ主界面的#32770类的对话框,怎样才能做到跟它一样的WndProc地址?楼上好像只回答了一半的问题。 地址是相对的,所以相同很正常。句柄才唯一,所以只有取得QQ界面的句柄,然后取得的WndProc函数的地址才是你想要的地址。看楼主的意思是想写死这个地址,肯定是不行的,只能运行的时候去获取。 #32770, 只是一个窗口的classname, 只要是对话框程序,其主对话框都是#32770, 并且#32770在在MFC中的源代码中就可以直接找到。所以WndProc的地址实际上对你没什么意义。 可以试下,先创建一个系统对话框HWND hSysWnd = CreateWindow("#32770", ...);返回系统对话框句柄,然后为已存在的对话框赋值新的窗口过程SetWindowLong(hMyWnd, GWL_WNDPROC, GetWindowLong(hSysWnd, GWL_WNDPROC)); 可能我有点不太理解...DentistryDoctor可能是对的 不知道楼上说的“地址是相对的”是想说明什么? 我不是说想获取QQ里的地址,我是说自己做一个仿照QQ的界面,原来我想自己做的WndProc跟QQ的地址一样是不可能,因为这意味着两者是同一个窗口类了,即同一个窗口回调。 但是www.vckbase.com上有人确实做到了。地址跟QQ一样的,都是0x77D241E2. http://www.vckbase.com/document/viewdoc/?id=1725 如果是MFC程序的话,那么所有窗体就是使用一个WndProc。QQ程序每次加载的内存地址是不一样的,程序运行的环境也不一样,所以不能使用它的WndProc。 楼上: 如果是MFC程序的话,那么所有窗体就是使用一个WndProc。好像不可能的吧?应该每个窗口都有自己的WndProc吧? 刚刚说错了!楼上: 如果是MFC程序的话,那么所有窗体就是使用一个WndProc。好像不可能的吧?应该每个窗口类都有自己的WndProc吧? 顺便问一下,网上哪里能找到关于"MFCReportCtrl"的资料??找了半天没找到! 注册窗口类时设定窗口附加字节或使用GWL_USERDATA,并在CreateWindowEx中指定lParam,可在程序中只注册一个窗口类,每个窗口在处理消息时使用同一个lpWndProc,在lpWndProc中将消息分发到相应的窗口处理。n个窗口的WndProc很可能完全相同,但可以有各自的处理。 非常感谢chehw(chehw)和mynamelj给我的回答或建议!不过我还是不明白怎样才能是我的程序中的WndProc地址能刚好和QQ中的一样? 难道http://www.vckbase.com/document/viewdoc/?id=1725 中的例子仅仅是偶尔吗? 给其他进程发送鼠标双击消息怎么不行?看下我代码 那本书上有专门将C#中与C++的不同点全部摘出来讲的 钩子处理键盘输入的问题,谁能帮我这个忙? 各位进来帮帮小弟啊!满分求(关于window9x类,VC实现点对点通信程序设计) 为什么我一最小化窗口画的图形就没了? MFC中时间计数器的问题(郁闷)!! 在线提问送分!!COM在mozilla上支持吗?我要实现通过浏览器对本机串口进行通讯,应该选择什么技术? 好象不是很难,可是。。。 高分求教一界面问题。 关于文件拖放时图标显示的问题。 SDK中 ListView_SortItems使用问题! 需要管理大量长连接,使用那个结构好?
看楼主的意思是想写死这个地址,肯定是不行的,只能运行的时候去获取。
HWND hSysWnd = CreateWindow("#32770", ...);
返回系统对话框句柄,然后为已存在的对话框赋值新的窗口过程
SetWindowLong(hMyWnd, GWL_WNDPROC, GetWindowLong(hSysWnd, GWL_WNDPROC));
我不是说想获取QQ里的地址,我是说自己做一个仿照QQ的界面,原来我想自己做的WndProc跟QQ的地址一样是不可能,因为这意味着两者是同一个窗口类了,即同一个窗口回调。
但是www.vckbase.com上有人确实做到了。地址跟QQ一样的,都是0x77D241E2.
http://www.vckbase.com/document/viewdoc/?id=1725
QQ程序每次加载的内存地址是不一样的,程序运行的环境也不一样,所以不能使用它的WndProc。
好像不可能的吧?应该每个窗口都有自己的WndProc吧?
好像不可能的吧?应该每个窗口类都有自己的WndProc吧?
注册窗口类时设定窗口附加字节或使用GWL_USERDATA,并在CreateWindowEx中指定lParam,可在程序中只注册一个窗口类,每个窗口在处理消息时使用同一个lpWndProc,在lpWndProc中将消息分发到相应的窗口处理。n个窗口的WndProc很可能完全相同,但可以有各自的处理。
不过我还是不明白怎样才能是我的程序中的WndProc地址能刚好和QQ中的一样? 难道
http://www.vckbase.com/document/viewdoc/?id=1725
中的例子仅仅是偶尔吗?