如何制作忽略鼠标事件的窗口

来源:百度知道 编辑:UC知道 时间:2024/06/22 20:31:16
我没有说清楚?是用代码写,这和我假装看不到,以及不响应有啥关系?

fascinating 兄,理解了我的意思,我就是想做一个类似幽灵窗口的一个东西,就是窗口好像不存在。

哀楼上的都搞错了吧,我看他要做个窗口鼠标点了没有反映,包括里面的按钮、复选框、单选按钮等等点了都没有用吧,如果光拦截那些鼠标事件,那按钮等等还是鼠标能操作的哦,还有上面的老兄想把窗口不可用话,那键盘都不能操作了,不行不行哦。
我看用HOOK不错吧,鼠标钩子,这样就行了
自己想办法搞钩子吧

添加消息映射
WM_LBUTTONDOWN
WM_LBUTTONUP
WM_RBUTTONDOWN
WM_RBUTTONUP
WM_MOUSEMOVE

去掉鼠标指针
把函数里面的代码置空
添加消息映射
WM_SETCURSOR
用下面的代码替换函数里面的代码
SetCursor( NULL ) ;
return TRUE ;

大体思路是这个样子的:
截获消息,在消息响应函数里面什么也不做就行了。这样:
BEGIN_MESSAGE_MAP(CProjectDlg, CDialog)
//{{AFX_MSG_MAP(CProjectDlg)
ON_WM_LBUTTONDBLCLK()
//}}AFX_MSG_MAP
END_MESSAGE_MAP()

void CProjectDlg::OnLButtonDblClk(UINT nFlags, CPoint point)
{
// TODO: Add your message handler code here and/or call default

//CDialog::OnLButtonDblClk(nFlags, point);//注释掉,让它什么也不干,当然,这里这么些没什么必要
}

//EnableWindow(hWnd, FALSE);
//-----------------------------------
好像明白了, 这个可以这么办:
在鼠标移动的时候用SetWindowRgn把窗口的光标所在位置"漏"出去, 是这个意思么?