使用FindwindowEx()查找窗口中多个编辑控件句柄的问题

时间:2022-03-20 18:03:54
我使用Findwindow()找到某个对话框窗口,然后想用FindWindowEx()找到窗口中编辑框的句柄。代码如下:
m_hOk = CWnd::FromHandle(FindWindowEx(m_hMainWnd->GetSafeHwnd(),
NULL,"BUTTON","确认"));

//第一个编辑框
m_hEditUser = CWnd::FromHandle(FindWindowEx(m_hMainWnd->GetSafeHwnd(),
NULL,"EDIT",NULL));

//第二个编辑框
//m_hEditPassWord = CWnd::FromHandle(FindWindowEx(m_hMainWnd->GetSafeHwnd(),NULL,"EDIT",NULL));

即我想同时找到对话框中两个编辑框的句柄,但是它们不同于按扭,都没有窗口名,上面m_hEditUser和m_hEditPassWord 得到的都是第一个编辑框的句柄。请问,如何才能解决?谢谢!

6 个解决方案

#1


top

#2



//第二个编辑框
//m_hEditPassWord = CWnd::FromHandle(FindWindowEx(m_hMainWnd->GetSafeHwnd(),NULL,"EDIT",NULL));

//第二个编辑框
//m_hEditPassWord = CWnd::FromHandle(FindWindowEx(m_hMainWnd->GetSafeHwnd(),firstHWND/*第一个编辑框窗口句柄*/,"EDIT",NULL));

#3


用EnumChildWindows()吧

#4


top

#5


HWND FindWindowEx(
  HWND hwndParent,      // handle to parent window
  HWND hwndChildAfter,  // handle to child window
  LPCTSTR lpszClass,    // class name
  LPCTSTR lpszWindow    // window name
);

关于编辑框句柄问题。我试过了,不行的。上面是FindWindowEx()函数结构。请问,如何理解ChildAfter.是同一类型的控件,还是窗口所有子控件顺序的下一个?

#6


问题解决,谢谢。现在结帖。

#1


top

#2



//第二个编辑框
//m_hEditPassWord = CWnd::FromHandle(FindWindowEx(m_hMainWnd->GetSafeHwnd(),NULL,"EDIT",NULL));

//第二个编辑框
//m_hEditPassWord = CWnd::FromHandle(FindWindowEx(m_hMainWnd->GetSafeHwnd(),firstHWND/*第一个编辑框窗口句柄*/,"EDIT",NULL));

#3


用EnumChildWindows()吧

#4


top

#5


HWND FindWindowEx(
  HWND hwndParent,      // handle to parent window
  HWND hwndChildAfter,  // handle to child window
  LPCTSTR lpszClass,    // class name
  LPCTSTR lpszWindow    // window name
);

关于编辑框句柄问题。我试过了,不行的。上面是FindWindowEx()函数结构。请问,如何理解ChildAfter.是同一类型的控件,还是窗口所有子控件顺序的下一个?

#6


问题解决,谢谢。现在结帖。