比如类似播放器里侧边的播放列表 当鼠标移到播放列表框的边界 可以拖动这个列表空的水平大小
像这样嵌入的子窗口或子对话框拖到边界的操作是如何实现的呢我初步的想法是创建一个子对话框,响应OnHitTest,判断在某边界区域时,鼠标LoadCursor(..IDC_SIZEWE),
OnLButtonDown里SetCapture,然后OnMouseMove里画条移动的线,最后OnLButtonUp里ReleaseCapture,改变子窗口大小是这样实现么?有没有什么已经具体的实例?控件对话框大小

解决方案 »

  1.   

    父窗口里OnSize,在MoveWindow子窗口,改变大小多少,你自己控制一下,应该就可以了吧
      

  2.   


    我不是要改变 父窗口的大小啊 
    我只想改变子控件的边缘 父窗口里OnSize响应改变做不到吧
      

  3.   

    一般拖动窗口改变大小,也是对应在Onsize里Movewindow子控件大小,或者是我不明白你说的是什么
      

  4.   

    是这样
    你说的意思是不是改变父窗口的大小 在OnSize里调整子窗口的位置/大小,使之随父窗口变化而变化
    但我的意思是直接拖动子窗口 一般在父窗口里嵌入风格Child子对话框或者控件(比如listbox),我想拖动这样的窗口边缘
    比如类似VS里上下左右如"Solution Explorer" "Output"这样的子窗口是可以拖到大小的(父窗口大小不变),但是那个貌似是用分割窗口的CSplitterWnd类实现的 
    我想做的简单点 从控件类继承个子类这样实现 
      

  5.   


    恩 有CXXXSplitter之类的实例参考么?
      

  6.   

    CSplitterWnd,用起来有点麻烦,简单点,就像你说的,可以模仿实现就行了,拖动的时候自己画虚线,拖动放开的时候,就改变它的大小就行了,可以通过继承控件类来做
      

  7.   

    对话框上 2个控件 间 留一个 缝, 可以 用作 分隔条。
    参考我的“vcUsbView.rar”0分
    http://download.csdn.net/detail/schlafenhamster/1028404那里就是 这样做的