控件消息的截获
参考链接:
总结:
(1) 就是把控件默认消息处理函数替换了
注意事项:
流程:
(1) DLGPROC g_oldEditProc; //定义一个全局变量来保存 (控件消息处理函数) 的指针
(2) 在创建主窗口时, 重新设置控件的回调函数
g_oldEditProc = (DLGPROC)SetWindowLong(GetDlgItem(hWnd, IDC_EDIT1),GWL_WNDPROC,(LONG)&EditProc);
(3) INT_PTR CALLBACK EditProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
{
switch (uMsg)
{
case WM_CHAR:
{
wParam += 1; //对消息做一些处理
}
}
return g_oldEditProc(hWnd, uMsg, wParam, lParam); //重新调用控件默认消息处理函数
}
(4)
主要的函数:
(1) SetWindowLong() //替换编辑框的回调函数
实例: