现在做一个聊天软件,文件传输和聊天功能都实现了,现在努力改善界面,刚遇到的一个问题是,显示聊天信息的编辑框大小,如何拖动它的底部可以上下改变呢,我的做法是在对话框的onmousemove里判断鼠标位置,到了编辑框附近就显示上下箭头光标,现在也显示了,接下来就是,鼠标左键按下拖动时,往下拖动可以变,往上拖动就不行了,因为往上拖的话,鼠标位置就到了编辑框的范围,这时onmousemove就截获不到鼠标移动消息了。简单一句话:就是实现QQ那种,拖动输入框和显示框中间的位置可以动态改变两个框框大小的功能。

解决方案 »

  1.   

    将边界(border)属性设置为Resizing风格的对话框可以改变大小!
      

  2.   

    重载对话框的 PreTranslateMessage 
    这个里一直可以获得鼠标移动消息, 不论鼠标位于控件的那个区域
      

  3.   

    可以拖动中间的条上下改变两个编辑框的大小了,但是效果不太好,鼠标移动太快时就改变不了大小了,必须的慢慢移动鼠标,不像qq输入框和显示框中间那个区域,拖动再快也没问题,都能正确的将显示框向下扩大,我这个拖动太快,就不行,给我的感觉好像是,显示框y方向变动太慢造成的。
      

  4.   

    你鼠标按下时要调用SetCapture我写的例子,作为参考:http://cid-3ba16e78a53d2d3d.office.live.com/self.aspx/VC%5EM%5EM/%E8%B0%83%E6%95%B42%E4%B8%AA%E7%AA%97%E5%8F%A3%E7%9A%84%E5%A4%A7%E5%B0%8F.zip
      

  5.   

    我有些代码也写得很随便,可能会有bug,要注意。谢谢!