我要知道一个窗口上的按钮什么时候被点击了,并在那个按钮被点击时做一些处理,我知道用HOOK技术可以做到,不过我对HOOK不熟,所以希望高手给点代码做参考
解决方案 »
- 如果两个线程同时读写同一个串口,数据会干扰吗
- ★关于WTL中分割窗口的一个小小问题 [以解决,大家快来哪分 啊]
- 拖动图片到另外一个Static的例子
- 大三了我该怎样继续学习?
- SelectClipRgn 和 selectobject(CRgn) 这两个函数的作用相同吗??/
- 同一个socket能不能连接到多个server中?
- 弱弱的问
- CGRIDCTRL和CLISTCTRL相比,做数据库 的表格,有什么优势没有?
- 关于UDP,如A发了10BYTES给B,而B只接收5BYTES,这个时候RECEIVEFROM()中得到的SOURCE地址不对,好象根本就没有把来源地址填到变量上,
- 高分请教,如何改变ActiveX的默认外观?
- 对于非CEdit,CStatic等不能相应WM_GETTEXT消息的窗口如何取得其内容?
- 对于非CEdit,CStatic等不能相应WM_GETTEXT消息的窗口如何取得其内容?
下面的代码就是钩住所有键盘消息的例子/*void CVideoWindow::OnFullScreen()
{
if (m_pIVideoWnd)
{
if (!m_hKeyHook)
m_hKeyHook = ::SetWindowsHookEx(WH_KEYBOARD, (HOOKPROC)KbdHookProc, AfxGetInstanceHandle(), NULL);
if (!m_hMouseHook)
m_hMouseHook = ::SetWindowsHookEx(WH_MOUSE, (HOOKPROC)MouseHookProc, AfxGetInstanceHandle(), NULL); m_pIVideoWnd->put_FullScreenMode(OATRUE);
g_pView = m_pIVideoWnd;
}LRESULT KbdHookProc(int nCode, WPARAM wParam, LPARAM lParam)
{
if (((DWORD)lParam & 0x40000000) && (nCode == HC_ACTION))
{
switch (wParam)
{
case VK_ESCAPE:
OnFullscreenOff();
return true;
}
} return ::CallNextHookEx(m_hKeyHook, nCode, wParam, lParam);
}
有兴趣看看