无标题对话框的拖动,在OnLButtonDown函数中使用了PostMessage(WM_NCLBUTTONDOWN,HTCAPTION,MAKELPARAM(point.x,point.y));然后就无法响应WM_LBUTONUP或者WM_NCLBUTTONUP了。有什么办法解决这个问题啊?

解决方案 »

  1.   

    在OnLButtonDown里调用的是WM_NCLBUTTONDOWN消息,你把消息转化了,以后你在客户区鼠标左键按下就等于在非客户区按下,所以不会有OnLbuttonup消息了,你可以吧PostMessage里消息改一下
      

  2.   

    SendMessage 不行的,PostMessage里面的消息不能改啊,就是要拖动对话框,可是又要响应鼠标弹起的消息。
      

  3.   

    那你就在外面相应WM_NCLBUTTONUP消息,然后再转发WM_LBUTTONUP消息就可以了
      

  4.   

    http://www.vckbase.com/document/viewdoc/?id=464
    这篇文章可以看下 
      

  5.   

    还是不行啊,http://www.vckbase.com/document/viewdoc/?id=464这篇文章中的方法跟PostMessage(WM_NCLBUTTONDOWN,HTCAPTION,MAKELPARAM(point.x,point.y));效果一样的,也是无法响应鼠标谈起的消息
      

  6.   

    你再发送一个WM_LBUTTONDOWN消息,呵呵
      

  7.   

    4L正解,再发送一个WM_LBUTTONDOWN消息给本窗口,或者可以这样
    你移动的如果是子窗口的话,消息穿透下给父窗口,然后父窗口再发送NCLBUTTONDOWN,子窗口自己搞自己的就OKl饿
      

  8.   

    解决如下:
    添加WM_NCHITTEST处理代码如下:
     UINT nHit = CDialog::OnNcHitTest(point);
      return (nHit==HTCLIENT)?HTCAPTION:nHit;可以响应WM_NCLBUTTONUP消息,我试过了。
      

  9.   

    http://club.itqun.net/showtopic.aspx?topicid=34783&forumpage=1&onlyauthor=1
      

  10.   

    zxdyu2009 你是怎么试的啊,我试过是不行的啊,不管是子对话框还是主对话框我都试了,用这个方法都无法响应WM_NCLBUTTONUP