看流星社区

 找回密码
 注册账号
查看: 2015|回复: 0

一种hook SetWindowLong函数修改窗口处理过程

[复制链接]

该用户从未签到

发表于 2016-9-10 07:25:17 | 显示全部楼层 |阅读模式
LONG OldWndProc = 0;
LRESULT CALLBACK WindowProc2(  HWND hwnd,      // handle to window
                                                        UINT uMsg,      // message identifier
                                                        WPARAM wParam,  // first message parameter
                                                        LPARAM lParam   // second message parameter
                                                        )
{
        if (uMsg == WM_KEYDOWN)
        {
                if (wParam == VK_F6)
                {
                        AfxMessageBox(L"您按下了F6键");
                }
        }
        return CallWindowProc((WNDPROC)OldWndProc,hwnd,uMsg,wParam,lParam);
}


void CttDlg::OnBnClickedOk()
{
        OldWndProc = ::SetWindowLong(m_hWnd,GWL_WNDPROC,(LONG)WindowProc2);
}

这种写法和热键的区别是:

做智辅时方便用,只需要一个窗口句柄就行了。
点击按钮快速添加回复内容: 支持 高兴 激动 给力 加油 苦寻 生气 回帖 路过 感恩
您需要登录后才可以回帖 登录 | 注册账号

本版积分规则

小黑屋|手机版|Archiver|看流星社区 |网站地图

GMT+8, 2024-3-28 18:33

Powered by Kanliuxing X3.4

© 2010-2019 kanliuxing.com

快速回复 返回顶部 返回列表