通过处理WM_MOUSEACTIVE,并返回MA_NOACTIVE可以实现点击客户区时不激活窗口,但是点击标题栏还是会激活窗口。
另外,如果在WM_NCHITTEST中返回HTBOTTOMRIGHT(告诉系统鼠标在右下角位置),则不论鼠标是否在客户区,抬起鼠标时都会激活窗口。请问冒泡的没冒泡的高手们,如何实现点击窗口的客户区和非客户区,都不能激活该窗口?

解决方案 »

  1.   

    既然你已经实现点击客户区时不激活窗口,那你点击标题栏时,在WM_NCHITTEST中直接返回HTCLIENT就可以了啊。
    HTCLIENT表示客户区
      

  2.   

    但是,我要让这个窗口可以调整大小,所以,必须当鼠标在右下角时,WM_NCHITTEST返回HTBOTTOMRIGHT,以保证可以使用系统提供的调整窗口大小的功能。
      

  3.   

    很简单啊,过滤WM_NCHITTEST的返回值,不需要的返回HTNOWHERE。
      

  4.   

    当鼠标在右下角时我必须返回HTBOTTOMRIGHT,才能有调整大小的功能。
      

  5.   

    又没有叫你过滤HTBOTTOMRIGHT,有什么关系?
      

  6.   

    一旦返回HTBOTTOMRIGHT,立即被激活。