C#- winfrom使用WndProc窗体重构,鼠标事件失效
我拦截Windows消息WM_NCHITTEST,来到达拖动缩放效果,但是其他的鼠标事件就失效了,求高手指教。屏蔽了WM_NCPAINT,和WM_NCCALCSIZE其他...
我拦截Windows消息 WM_NCHITTEST,来到达拖动缩放效果,但是其他的鼠标事件就失效了,求高手指教。
屏蔽了WM_NCPAINT,和WM_NCCALCSIZE其他的如下
case (int)WindowsMessage.WM_NCHITTEST:
WmNcHitTest(ref m);
break;
WmNcHitTest(ref m); 这里 重新指定了边框可 标题栏
失效--->
protected override void OnMouseDown(MouseEventArgs e)
{
base.OnMouseDown(e);
ChangeMouseState(EMouseState.Down, e.Location);
}
ChangeMouseState ()...改变区块鼠标状态 。。以便区块重绘。但是不执行。 展开
屏蔽了WM_NCPAINT,和WM_NCCALCSIZE其他的如下
case (int)WindowsMessage.WM_NCHITTEST:
WmNcHitTest(ref m);
break;
WmNcHitTest(ref m); 这里 重新指定了边框可 标题栏
失效--->
protected override void OnMouseDown(MouseEventArgs e)
{
base.OnMouseDown(e);
ChangeMouseState(EMouseState.Down, e.Location);
}
ChangeMouseState ()...改变区块鼠标状态 。。以便区块重绘。但是不执行。 展开
展开全部
WM_NCHITTEST这个消息是当鼠标移动或者有鼠标键按下时候发出的,
在处理你的消息时候也应该通知父类处理此消息。
case (int)WindowsMessage.WM_NCHITTEST:
base.WndProc(ref m);
WmNcHitTest(ref m);
break;
在处理你的消息时候也应该通知父类处理此消息。
case (int)WindowsMessage.WM_NCHITTEST:
base.WndProc(ref m);
WmNcHitTest(ref m);
break;
更多追问追答
追问
具体该怎么写呢,谢谢,这个问题纠结很久了
追答
在处理你的消息之前加上:
base.WndProc(ref m);
WmNcHitTest(ref m);
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
WM_NCHITTEST这些消息是非客户区的系统消息,如果你在WndProc函数里面自己处理而不还给系统的话,非客户区的鼠标消息就失效了,但是客户区的鼠标消息应该还是有的
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
WM_NCHITTEST这个消息是当鼠标移动或者有鼠标键按下时候发出的,
在处理你的消息时候也应该通知父类处理此消息。
case (int)WindowsMessage.WM_NCHITTEST:
base.WndProc(ref m);
WmNcHitTest(ref m);
break;
在处理你的消息之前加上:
base.WndProc(ref m);
WmNcHitTest(ref m);
在处理你的消息时候也应该通知父类处理此消息。
case (int)WindowsMessage.WM_NCHITTEST:
base.WndProc(ref m);
WmNcHitTest(ref m);
break;
在处理你的消息之前加上:
base.WndProc(ref m);
WmNcHitTest(ref m);
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询