为什么WM_GETTEXT取不出数据?

wyarrant 2004-10-06 10:52:06
目的:取得CFE程序子窗体的内容

用spy++观察名为CFE的程序,发现父子关系CFEClass-> MDICLient-> AfxFrameOrView42
但是我这样仍然拿不到文本内容
请问错在哪里?

ParentHandle = FindWindow("CFEClass", "CFE")
ParentHandle = FindWindowEx(ParentHandle, 0&, "MDIClient", vbNullString)
ParentHandle = FindWindowEx(ParentHandle, 0&, "AfxFrameOrView42", "SESSION 1")
Handle = FindWindowEx(ParentHandle, 0&, "AfxFrameOrView42", vbNullString)
strText = Space(255)
SendMessage ParentHandle, WM_GETTEXT, 0, ByVal strText
MsgBox strText
...全文
426 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
wyarrant 2004-10-22
  • 打赏
  • 举报
回复
乱讲不好
wyarrant 2004-10-11
  • 打赏
  • 举报
回复
to zdcwin(赵大成)
首先wm_gettext是可以得到内容的,但是得到的是caption内容
另外看起来这个不是edit或者richedit,好像是view,而这方面我知道得不多,再做些试验
jam021 2004-10-10
  • 打赏
  • 举报
回复
关注,帮你顶!
zdcwin 2004-10-10
  • 打赏
  • 举报
回复
在win2000,winxp下,对其它进程发送WM_GETTEXT是无法获取文本框中的内容的!微软对此消息进行了必要的防范!
wyarrant 2004-10-06
  • 打赏
  • 举报
回复
在更正
用spy++观察名为CFE的程序,发现父子关系
CFEClass-> MDICLient-> AfxFrameOrView42(有标题)-> AfxFrameOrView42(无标题)
这个时候对最后一个AfxFrameOrView42进行WM_SETTEXT发现标题由原来的""变为SET的内容,但是并没有反映到窗体上,而这个时候GETTEXT时得到的是刚才SET的内容,这又是为什么呢?
wyarrant 2004-10-06
  • 打赏
  • 举报
回复
ParentHandle = FindWindowEx(ParentHandle, 0&, "AfxFrameOrView42", "SESSION 1")
Handle = FindWindowEx(ParentHandle, 0&, "AfxFrameOrView42", vbNullString)
。。。
如果SendMessage ParentHandle, WM_GETTEXT, 0, ByVal strText 就可以取出子窗体的标题
但是SendMessage Handle, WM_GETTEXT, 0, ByVal strText 就什么都取不出来,是不是是AfxFrameOrView42的问题?
leolan 2004-10-06
  • 打赏
  • 举报
回复
SendMessage ParentHandle, WM_GETTEXT, Len(strText), ByVal strText
or
GetWindowText ParentHandle, strText, Len(strText)
wyarrant 2004-10-06
  • 打赏
  • 举报
回复
最后一句编辑错误
SendMessage Handle, WM_GETTEXT, 0, ByVal strText

1,486

社区成员

发帖
与我相关
我的任务
社区描述
VB API
社区管理员
  • API
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧