用setwindowtext 给编辑框传字符串,怎么没变呢??

guolaikk 2014-08-01 01:21:36

//0x0006085C 是从spy++获得的对话框句柄,1001是编辑框的ID
CWnd *pDlgwd = CWnd::FromHandle(HWND(0x0006085C));
// pDlgwd->GetDlgItem(1001)->SetWindowText(_T("1234"));
HWND hEditwnd = ::GetDlgItem(HWND(0x0006085C),1001);
BOOL ret = ::SetWindowText(hEditwnd,_T("1234"));
if (ret == FALSE)
{
TRACE("%d\n",GetLastError());
}
pDlgwd->UpdateData(FALSE);


有ADlg,BDlg俩对话框,这段代码放到BDlg里,来操作运行起来了的ADlg上的一个编辑框。
一开始只有个setwindowtext,没反应,后来加上UpdateData一样没反应。
再看一下setwindowtext的返回值,居然是成功的。
莫名其妙
...全文
222 8 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
url=http://blog.csdn.net/bojie5744/article/details/37918221][/url]
  • 打赏
  • 举报
回复
注意!SetWindowText不能跨进程,请使用SendMessage发送WM_SETTEXT消息。LPARAM为附带信息
xiaohuh421 2014-08-01
  • 打赏
  • 举报
回复
//0x0006085C 是从spy++获得的对话框句柄,1001是编辑框的ID CWnd *pDlgwd = CWnd::FromHandle(HWND(0x0006085C)); 我在想, 你既然都找到编辑框父窗口句柄, 为什么不直接找到那个编辑框的句柄, 直接发送呢. HWND hEdit = (HAND)0xXXXXXX; ::SetWindowText(hEdit, strText);
叶恭介叶恭介 2014-08-01
  • 打赏
  • 举报
回复
(1)首先你要确保hEditwnd,跟你SPY查找的文本框句柄ID一样 (2)我也做过这样的事,不过我是用::SendMessage(pro2,WM_SETTEXT,0,(LPARAM)(LPCTSTR)str);来设置文本的,是可以设置成功的
凌乱哥 2014-08-01
  • 打赏
  • 举报
回复
发送WM_SETTEXT消息是可以的
schlafenhamster 2014-08-01
  • 打赏
  • 举报
回复
CWnd *pDlgwd = FindWindow("#32770","Adlg");
SiGoYi 2014-08-01
  • 打赏
  • 举报
回复
pDlgwd->UpdateData(FALSE); 这句有问题吧,我也好久没做mfc了,你这段代码应该是在一个窗体类中,式式直接调用UpdateData(FALSE); 或UpdateData(TRUE);

16,548

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • AIGC Browser
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

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