CEdit作为文字输入框,想让他可以改变大小,输入文字等功能。
又不要象对话框那样 当自己处在激活状态时,主窗口就处于非激活状态了。
而只有一个CEdit时,就象在CFormView中加入一个CEdit对象一样,主窗口还是在激活状态的。
但在CFormView中,CEdit就不能改变大小:如果用自己判断鼠标位置,CEdit的位置,再自添改变大小等,将是很麻烦的事。是否又稍微简单一点的方法实现呢?

解决方案 »

  1.   

    http://www.vczx.com/article/show.php?id=539
      

  2.   

    其实,我是想实现画板中“加入文字的效果”。
    文字输入框可以改变大小,又不是一个窗体(否则,会使主窗口处在非激活状态!)
    绘图区,我用的是CScrollView。(尽量不要用CFormView)有办法么?
      

  3.   

    可以用CStatic,背景透明后效果不错
      

  4.   

    把Edit控件作为子窗口好了,重载一下或者子类化一个控件,在里面处理EN_CHANGE消息,根据当前字符调整窗口大小。
      

  5.   

    CEdit edt;
    edt.Create(...);
    和其他窗口一样的操作
    鼠标点一下MoveWinodw然后ShowWindow
    失去焦点的时候隐藏窗口
      

  6.   

    回 xing_xing_xing(ζ未名ζ) :
    这个方法可以起到一定的作用。但是,他不可以改变输入框的大小,
    即使我使用了别人的ResizeEdit,在CView下,也起不了作用,在SetCursor时,他只能接受到NCCLIENT =0或=1,所以光标不能起到作用(不知道这是为什么);也没有改变大小的功能了。(在对话框下工作正常)不知道如何解决。
      

  7.   

    【首先,上面的NCCLIENT应该为HTCLIENT】
    后来发现,在dialog中加CEdit时,如果用SubClassDlgItem时,可以响应鼠标在边界上(HTBORDER)消息。而用Create时,只能受到(HTCLIENT)消息。
    不知道时为什么。