我想得到一个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呢 真是搞不懂了,哪里出错了啊??
我是这么用的 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呢 真是搞不懂了,哪里出错了啊??
解决方案 »
- 最近想做个项目,大伙给个建议
- [100分]BeforeNavigate2(...) 中的参数 *Cancel=VARIANT_TRUE, 取消导航后,无法使页面Complete
- 寻找控件,谢谢帮忙
- 一个新手的简单问题
- 如何在MDI实现一个DOC拥有两个View? 最后100分啊
- help!!!我已经将图像画到屏幕了,怎么存储啊?
- 求Winsock错误码,还有对照中文意思。
- 请问各位都是用的什么管理软件的不同版本?ms的SourceSafe如何使用?有说明吗?
- 如何使程序图标出现在系统栏中,而不是在任务栏中
- 对话框程序使用MFC的CAsyncSocket接收不到数据
- 用MFC实现飞鸽传书的一些功能问题?
- 急!!抓屏后用socket发送数据奇慢!
那我应该怎么去处理这个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 就是说我什么东西都没有取到
真的被弄糊涂了
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)>,(LPARAM)p);
cout<<i<<endl;
cout<<p<<endl;delete [] p;
表现和 WM_GETTEXT的一样 真不知道该怎么办了 难道真的就没有办法了吗??不可能吧 ??
问题的关键在于不能跨进程使用WM_GETTEXT,需要使用某种进程间通信机制来传递数据。我以前写过一个复制其他进程中列表控件内容到自己进程中的列表的程序,使用的是挂钩机制,请参考我的文章http://blog.sina.com.cn/s/blog_56dee71a010007h1.html(我的博客:http://blog.sina.com.cn/yaozj中Windows分类下的文章)
http://vegeta.blog.enorth.com.cn/article/91714.shtml里面的例子的是读取写字板中的内容,也就是向RichEdit20发送WM_GETTEXT消息:
RICHEDIT20A 当然RICHEDIT50W的内容我是可以取到的啊 可是就是取不到RICHEDIT20A 里面的内容 我不知道了