根据一张位图(背景颜色为绿色)做一个不规则窗口,设置了该窗口扩展样式WS_EX_LAYERED,调用函数SetLayeredWindowAttributes,并设置该函数的后3个参数如下,crKey参数设置为“绿色”,bAlpha参数不使用,dwFlags参数设置为LWA_COLORKEY。
目前情况窗口是现实出来了,并且原先位图中绿色部分都不可见了,但是当鼠标点击原先位图中绿色部分的时候,实际操作的是下层的窗口。
【重点开始】可是因为需求特殊,我想当鼠标点击原先位图中绿色部分的时候,该窗口仍然能够收到鼠标点击的消息。不知道这个功能可不可以实现?如果能够实现,需要怎么做呢?

解决方案 »

  1.   

    capture了mouse,然后在ONLbuttonDown判断是否点击在自己的窗口范围内.........
    SetCapture.........
      

  2.   

    你这种需求,不用ALPHA是不行的
      

  3.   

    同意四楼意见,捕捉MouseEnter消息,然后SetCapture,等MouseLeave再ReleaseCapture。
    可以做个尝试======================================= 
    C++程序做UI方法的革命,用flash打造超炫UI 
    http://flash4ui.googlepages.com
      

  4.   

    同意楼上的意见,SetCapture是能够搞定的。
    另外还有一种办法就是Hook掉整个的鼠标事件,所有鼠标事件都由你先过一下,相信肯定有你要的,呵呵。(过分了一点)