我想得到一个RiceEdit20A里面的文本内容,想到了  用sendmessage
我是这么用的 LPARAM lparam=NULL;
cout<<lparam<<endl;
int i=::SendMessage((HWND)0x001F040E,WM_GETTEXT,100,lparam); cout<<lparam<<endl;
cout<<i<<endl;
句柄绝对是RiceEdit20A的句柄,可是我的输出怎么是0, 0, 0呢  真是搞不懂了,哪里出错了啊??

解决方案 »

  1.   

    当然 这个 RiceEdit20A不是我自己的UI上的  而是别的软件上的 
      

  2.   

    WM_GETTEXT好像已经不能跨进程取文本了吧。
      

  3.   

    你传递的参数要自己分配好内存。传递NULL指针进去,当然取不到数据。仔细看看WM_GETTEXT消息的说明,还是有点复杂的。
      

  4.   

    Mackz大哥
    那我应该怎么去处理这个LPARAM参数呢??   WM_GETTEXT消息我已经看了好几遍了啊  就说明这个参数是用来存放 TEXT内容的 
    我现在是这样处理的 
    WPARAM wParam=10;
    char *lparam=new char[10];
    cout<<"aaa"<<lparam<<endl; int i=::SendMessage((HWND)0x00020870,WM_GETTEXT,wParam,(LPARAM)lparam);
    cout<<"dddddddd"<<lparam<<endl;
    cout<<i<<endl; delete [] lparam;
    cout<<"dddddddd"<<lparam<<endl;输出的却只有dddddddd 而且i的值是0 就是说我什么东西都没有取到  
    真的被弄糊涂了   
      

  5.   

    http://blog.csdn.net/Prince_vegeta/archive/2006/06/24/828896.aspxhttp://vegeta.blog.enorth.com.cn/article/91714.shtml
      

  6.   

    这个 RiceEdit20A不是我自己的UI上的  而是别的软件上的 别人的这个RiceEdit 做过特殊处理, WM_GETTEXT没办法取出来的
      

  7.   

    GETTEXTEX gt;
    char *p=new char[200];
    gt.cb = 200;
    gt.flags =GT_DEFAULT;
    gt.codepage =CP_ACP ;
    gt.lpDefaultChar = NULL; 
    gt.lpUsedDefChar = NULL;
    int i=SendMessage((HWND)0x00040BD2,GT_USECRLF,(WPARAM)&gt,(LPARAM)p);
    cout<<i<<endl;
    cout<<p<<endl;delete [] p;
    表现和 WM_GETTEXT的一样  真不知道该怎么办了 难道真的就没有办法了吗??不可能吧 ??
      

  8.   


      问题的关键在于不能跨进程使用WM_GETTEXT,需要使用某种进程间通信机制来传递数据。我以前写过一个复制其他进程中列表控件内容到自己进程中的列表的程序,使用的是挂钩机制,请参考我的文章http://blog.sina.com.cn/s/blog_56dee71a010007h1.html(我的博客:http://blog.sina.com.cn/yaozj中Windows分类下的文章)
      

  9.   

    怎么还没解决呢?RichEdit20直接用WM_GETTEXT消息就可以,LZ没看我给你的地址吗?http://blog.csdn.net/Prince_vegeta/archive/2006/06/24/828896.aspx 
    http://vegeta.blog.enorth.com.cn/article/91714.shtml里面的例子的是读取写字板中的内容,也就是向RichEdit20发送WM_GETTEXT消息:
      

  10.   

    Prince_vegeta   这位大哥我看了啊   而且我也试过了 写字版 了 是行的啊   可是我发现写字板的是 RICHEDIT50W而不是
    RICHEDIT20A  当然RICHEDIT50W的内容我是可以取到的啊   可是就是取不到RICHEDIT20A 里面的内容  我不知道了