先做了一个对话框工程,窗体的标题是"Form1",里面只有一个CEdit 文本框,文本框里的内容比如是"AAA".
然后又做了另外一个程序,目的是修改上一个程序里的文本框的内容,我的做法如下:
void CFindWDlg::OnOK()
{
HWND hWnd1,hWnd2;
hWnd1 = ::FindWindow("#32770","Form1");
if (hWnd1)
{
hWnd2 = ::FindWindowEx(hWnd1,NULL,"Edit",NULL);
if (hWnd2)
{
::SetWindowText(hWnd2,"BBB");
}
else
{
AfxMessageBox("没有找到第二级窗体");
}
}
else
{
AfxMessageBox("没有找到第一级窗体");
}
}
这个程序确实是找到了哪个窗体里的CEdit文本框,可却改不了里面的内容,改成用::GetWindowText() 函数来获取里面的内容却也是空的。请问该怎么样改里面的内容呢?多谢。
然后又做了另外一个程序,目的是修改上一个程序里的文本框的内容,我的做法如下:
void CFindWDlg::OnOK()
{
HWND hWnd1,hWnd2;
hWnd1 = ::FindWindow("#32770","Form1");
if (hWnd1)
{
hWnd2 = ::FindWindowEx(hWnd1,NULL,"Edit",NULL);
if (hWnd2)
{
::SetWindowText(hWnd2,"BBB");
}
else
{
AfxMessageBox("没有找到第二级窗体");
}
}
else
{
AfxMessageBox("没有找到第一级窗体");
}
}
这个程序确实是找到了哪个窗体里的CEdit文本框,可却改不了里面的内容,改成用::GetWindowText() 函数来获取里面的内容却也是空的。请问该怎么样改里面的内容呢?多谢。
应该是可以正常设置文本的
::SendMessage(Hwnd, WM_GETTEXT, 255, (LPARAM)szBuff);