下面是MouseProc:
LRESULT CALLBACK MouseProc(int nCode, WPARAM wParam, LPARAM lParam){ if (nCode == HC_ACTION) { RECT rc; TCHAR buff[512]; MOUSEHOOKSTRUCT *pMouseHookParam = reinterpret_cast<MOUSEHOOKSTRUCT*>(lParam); switch(wParam) { //鼠标消息 case WM_LBUTTONUP: //用WM_LBUTTONDOWN也行,但不能看到单击效果,感觉怪怪的。 GetWindowRect(pMouseHookParam->hwnd,&rc); //取得鼠标单击时某个控件的工作区 GetClassName(pMouseHookParam->hwnd,buff,512); //取得类名 if (_tcscmp(buff,_T("TTeThemePanel")) == 0) //还好整个工作区就这一个Panel,当然也可以用枚举窗口的句柄进行比较,因为这句柄以后也要用的。这里为方便。 { if (pMouseHookParam->pt.x>rc.right-46 && pMouseHookParam->pt.x<rc.right-22 && pMouseHookParam->pt.y>rc.bottom-30 && pMouseHookParam->pt.y<rc.bottom-5) //判断是否我要找的区域 { ShowDlg(); return 1; //不让其弹出它自己的窗口,非0就行。 } } break; default: break; } } return (CallNextHookEx(g_hook, nCode, wParam, lParam));
}
转发 https://www.cnblogs.com/laoa/archive/2005/11/08/271768.html