目的:取得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
但是我这样仍然拿不到文本内容
请问错在哪里?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
SendMessage Handle, WM_GETTEXT, 0, ByVal strText
or
GetWindowText ParentHandle, strText, Len(strText)
Handle = FindWindowEx(ParentHandle, 0&, "AfxFrameOrView42", vbNullString)
如果SendMessage ParentHandle, WM_GETTEXT, 0, ByVal strText 就可以取出子窗体的标题
但是SendMessage Handle, WM_GETTEXT, 0, ByVal strText 就什么都取不出来,是不是是AfxFrameOrView42的问题?
用spy++观察名为CFE的程序,发现父子关系
CFEClass-> MDICLient-> AfxFrameOrView42(有标题)-> AfxFrameOrView42(无标题)
这个时候对最后一个AfxFrameOrView42进行WM_SETTEXT发现标题由原来的""变为SET的内容,但是并没有反映到窗体上,而这个时候GETTEXT时得到的是刚才SET的内容,这又是为什么呢?
首先wm_gettext是可以得到内容的,但是得到的是caption内容
另外看起来这个不是edit或者richedit,好像是view,而这方面我知道得不多,再做些试验