如题,

解决方案 »

  1.   

    用MoveWindow把子窗口移动到父窗口的指定的rect位置。
    m_ChildWnd.MoveWindow(&rect);其他的内容能够正常显示在父窗口的client 中是什么意思?
      

  2.   

    开来我是没有说明白了, 呵呵, 
    这样:
    parent 窗口的 client 顶点是 (80, 100, 180, 200), 我在 改窗口上创建个子窗口, 要让子窗口限定在父窗口的一个范围内 如( 顶点是( 90, 110, 180, 200) ), 子窗口可以随意拖动的,( 可能要有很多的子窗口) , 当超过 改范围的时候, 就不显示了,
      

  3.   

    处理子窗口的 WM_WINDOWPOSCHANGING  消息在其中判断要移动的位置,如果超出范围,就修改lParam 参数所指向 WINDOWPOS 结构中的子窗口的位置和尺寸就可以。至于是修改大小不让他显示超出范围的部分,还是修改位置不让他出范围,就看你的喜好。
      

  4.   


    thank you, 我可以获得 窗口移动的位置了, 但是 , 我想让超出范围的地方不显示, 就想父窗口 剪切子窗口那样的效果(不在范围内的给剪切掉了, 在范围内的还是正常显示 ), 改怎么实现呢? 给点提示 ,
      

  5.   

    用setwindowpos加NOMOVE属性设置在你要的区域里,然后处理ONLBUTTONDOWN消息让它移动,看行不行
      

  6.   

    to : breakind(冰舞)
      没有明白你的意思,  setwindowpos 设置谁的??? 如果是设置子窗口的, 那也onlbuttondown 让他移动也移动不料呀,  如果是 parent窗口的, 那设置也没有什么用呀, 子窗口就在父窗口中呀
      

  7.   

    在你的了窗口中增加WM_LBUTTONDOWN的消息处理,用一句某牛人的经典代码
    SendMessage(WM_SYSCOMMAND,0XF012,0);
    这样当你右键在子窗口上时就可以拖动子窗口了