[HOOK,画图]问

xujungood 2004-07-21 04:27:33
我在HOOK函数里面写了这样的代码:

HDC hdc=GetDC(hookwnd);
RECT r;
GetClientRect(hookwnd,&r);
DrawText(hdc,TEXT("HookDraw!"),-1,&r,DT_SINGLELINE|DT_CENTER|DT_VCENTER);
ReleaseDC(hookwnd,hdc);
MessageBeep(0);

我的用意是,每次截获那个窗口的键盘消息后,在那个窗口中间写上“HOOKDRAW”这
几个字,然后发出声音通知。hookwnd是被借火消息的窗口句柄,
结果,运行时发现,每次按下键,声音是发出了,但是程序没有为我画上这个字符串
这是为什么啊?
我在另外一个程序,通过FINDWINDOW来找到窗口,执行相同的代码,结果运行的很好,为什么放在钩子函数中就不行了呢?
...全文
145 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
chuiyun 2004-07-30
  • 打赏
  • 举报
回复
需要用到CallNextHookEx,查一下资料吧
xujungood 2004-07-25
  • 打赏
  • 举报
回复
up
xujungood 2004-07-24
  • 打赏
  • 举报
回复
顶,有时候发现放在共享内存里的东西在不同函数中调用的值是不一样的,怎么回事啊
MSN3000 2004-07-23
  • 打赏
  • 举报
回复
你写了后又被目标窗口的OnDraw给咔嚓掉了~
lanstar200 2004-07-23
  • 打赏
  • 举报
回复
窗口句柄不對
xujungood 2004-07-23
  • 打赏
  • 举报
回复
窗口句柄怎么不对了?该怎么赋值?
xujungood 2004-07-22
  • 打赏
  • 举报
回复
已经初始化了,我在DLL里面写了个SETHOOK函数,接受一个窗口句柄为参数,然后初始化HOOKWND,并创建了钩子.也把HOOKWND放在共享内存里面了,
liotion 2004-07-22
  • 打赏
  • 举报
回复
hookwnd怎麽獲得的?估計是窗口句柄的問題。
rivershan 2004-07-22
  • 打赏
  • 举报
回复
hookwnd初始化了么?放在共享内存段里~
xujungood 2004-07-22
  • 打赏
  • 举报
回复
这个句柄是我创建钩子的时候传进去的,在DLL里面保存为全局变量,放在共享内存里面
xujungood 2004-07-21
  • 打赏
  • 举报
回复
自己顶

15,471

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 进程/线程/DLL
社区管理员
  • 进程/线程/DLL社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧