我制作了一个小型应用程序,通过 SendMessage 和 EM_REPLACESEL 将文本发送到记事本。
现在我正在尝试连接记事本以获取 EM_REPLACESEL 值(lParam 值,在本例中为“GET THIS TEXT”文本)。
编辑:见这张照片:http: //i.stack.imgur.com/8scNL.jpg
钩子工作正常,我的问题是监听 EM_REPLACESEL 消息并从 lParam 中获取值。
当消息发送到记事本时,此代码工作正常:
LRESULT CALLBACK GetMsgProc(int nCode, WPARAM wParam, LPARAM lParam)
{
Beep (2000,100);
return(CallNextHookEx(g_hHook, nCode, wParam, lParam));
}
所以现在我想拦截 EM_REPLACESEL 消息。这不起作用:
LRESULT CALLBACK GetMsgProc(int nCode, WPARAM wParam, LPARAM lParam)
{
if (nCode == EM_REPLACESEL)
{
Beep (2000,100);
}
return(CallNextHookEx(g_hHook, nCode, wParam, lParam));
}
1) 如何监听 EM_REPLACESEL 消息?
2) 当我收到消息时,如何获取 lParam 值,例如在 MessageBox 中显示它。像这样的东西:
LRESULT CALLBACK GetMsgProc(int nCode, WPARAM wParam, LPARAM lParam)
{
if (nCode == EM_REPLACESEL)
{
MSG *lpMsg;
lpMsg = (MSG *) lParam;
MessageBox(NULL,(LPCWSTR)lpMsg,NULL,NULL);
}
return(CallNextHookEx(g_hHook, nCode, wParam, lParam));
}
谢谢