分享

透明窗口 , 鼠标穿透

 quasiceo 2015-07-24

//窗口h无法响应鼠标 无法用鼠标移动

SetWindowPos (h, -1, 0, 0, 0, 0, 1 Or 2); //'置顶

extendedStyle := GetWindowLong(h, GWL_EXSTYLE);
SetWindowLong(h, GWL_EXSTYLE, extendedStyle or WS_EX_TRANSPARENT or  WS_EX_LAYERED);
SetLayeredWindowAttributes (h, 0, 255, LWA_ALPHA);

//////////////////////////////////////////////////////////////////////////////////////////////

A是单文档的视图,B窗口,全透明。覆盖在A视图上,大小和A一样,但是这样B就鼠标穿透了。响应不了鼠标消息

B不穿透必须满足以下条件:
1. B的透明度不为0
2. B不能有WS_EX_TRANSPARENT
3. B的WM_NCHITTEST消息不应返回HTTRANSPARENT (需要返回HTCLIENT)

WS_EX_TRANSPARENT 属性不是指绘制文字时候透明,而是对鼠标点击时间的透明,也就是说
鼠标点在一个具有透明属性的窗口上,鼠标消息将传递给其下面不具有透明属性的窗口


    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多