使用vs2010在MFC对话框的Button Click处理事件中获取外部窗口程序,无法设置外部对话框的Edit文本值

CWnd*testwnd=FindWindowW(NULL,_T("DlgTest"));if(!testwnd){testwnd->SetDlgItemText(100... CWnd* testwnd=FindWindowW(NULL,_T("DlgTest"));
if(!testwnd){testwnd->SetDlgItemText(1000,_T("HelloWorld");MessageBox(_T("OK"));}执行后弹出了OK对话框,但外部对话框程序的Edit文本还是空,通过SPY++查看EIDT的控件ID号为000003E8,转换成十进制后的确为1000
展开
 我来答
匿名用户
2011-03-30
展开全部
你再用SPY++察看一下其实是有值,只是没有显示
你可以换一个方法,获取这个控件的句柄给他发送一个WM_PASTE消息,这样实现起来比较简单~
追问
谢谢!我使用::SendMessage(testwnd->GetDlgItem(1000)->m_hWnd,WM_SETTEXT,0,(LPARAM)"HelloWorld"));可以给编辑框赋值的功能,只是不明白SetDlgItemText的本质也是发送一个WM_SETTEXT消息,为什么发送消息可以实现,而SetDlgItemText赋值后不能显示?
追答
MSDN上有一句话:To set the text of a control in another process, send the WM_SETTEXT message directly instead of calling SetDlgItemText
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式