帮忙解决下,我在一个dialog中获得另一个dialog的editbox控件句柄,并使它disable

blue925 2006-09-14 03:28:26
HWND m_h1 = ::FindWindow(NULL,"Dialog");
HWND m_h2 = ::GetDlgItem(m_h1,IDC_EDIT1);
::EnableWindow(m_h2,FALSE);
查了一下,句柄m_h1的值获得时有问题,请帮忙看看
...全文
299 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
palmax 2006-09-15
  • 打赏
  • 举报
回复
必须窗口已经创建完成,不管它是Show还是Hide,都可以用FindWindow找句柄,可以参考一下spy++的源代码
blue925 2006-09-14
  • 打赏
  • 举报
回复
有一个问题,就是要获取窗口句柄,用Findwindow寻找窗口,是不是必须窗口已经出现,才能获得这个窗口的句柄。如果是这样,那实现的思路我就错了
palmax 2006-09-14
  • 打赏
  • 举报
回复
使用FindWindow 要注意如果只用窗口名来找窗口应确保窗口名在当前所有窗口中是唯一的,如果有重名的话,未必找到的是你要的那个,可以使用EnumWindows来枚举所有窗口,然后筛选你要找的

对话框上的控件窗口可以用EnumChildWindows来枚举,然后得到你要找的控件的窗口,再用EnableWindow

用getdlgitem来获得另一个对话框控件的句柄是不正确的,对话框上控件的id名是对应一个具体的数值的,你用IDC_EDIT1,程序会把id的数值解释为你程序中resource.h中定义的数值
blue925 2006-09-14
  • 打赏
  • 举报
回复
兄弟们,回一个吧

15,976

社区成员

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

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