很多自己实现文字编辑控件,不一定会完整的实现WM_GetText消息,而且我们有很多时候也会屏蔽密码输入框的WM_getText消息
所以,这个获得的未必是正确的!

解决方案 »

  1.   

    我用spy++查看窗口类是TRichViewEdit,如果一个窗口的类是TRichViewEdit,它还会自己实现文字编辑吗?
      

  2.   

    不行,用GetWindowTextW就什么都读不出来了。
      

  3.   

    囧,TRichViewEdit就是自己实现的编辑器。。自己实现编辑器不开放WM_GetText消息,你就获得不了内容
      

  4.   

    我以前就自己模拟过文字编辑,连句柄你都查不到,如何通过WM_GetText来获得内容呢?
      

  5.   

    GetWindowText这些系统API也能屏蔽吗?WM_GetText不是读不出来,而是能读一半内容。
      

  6.   

    囧,GetWindowText是调用的WM_GetText消息获取的,但是这个消息,别人可以拦截
      

  7.   

    拦截了可以随便反馈给你什么内容,比如我返回给你的是XXOO,和内容风马牛不及的东西给你都行!
    具体你还是去学习一下Windows消息相关的东西吧,理解了消息机制,这个就理解了
      

  8.   

    好吧,那就是没办法了的意思吧我知道你说的消息驱动,我其实是不太清楚TRichViewEdit这个控件内部的机制。最新在网上搜到的这个开源控件,里面可以SetText,可以GetText,但是显示的内容和设置/获取到的完全不是一回事,不知道他怎么实现的。
      

  9.   

    RichView不是简单的文本,文本中有隐藏的格式字符或控制字符,你取到一半文本就可能是碰到非显示的字符了。
    或者把缓冲区加大点儿再取。 如果delphi是2010以上的话,里面就是unicode字符,每字符占两个字节。