慕码人2483693
根据您提供的屏幕截图,仅使用FindWindow/Ex()函数,您可以获得编辑控件的 HWND,如下所示:IntPtr hwndDlg = FindWindow(null, "Choose an image");
IntPtr hwndCBEx = FindWindowEx(hwndDlg, IntPtr.Zero, "ComboBoxEx32", null);
IntPtr hwndCB = FindWindowEx(hwndCBEx, IntPtr.Zero, "ComboBox", null);
IntPtr hwndEdit = FindWindowEx(hwndCB, IntPtr.Zero, "Edit", null);但是,一旦获得了 ComboBoxEx 控件的 HWND,获取其 Edit 控件的 HWND 的正确CBEM_GETEDITCONTROL方法是使用以下消息:const int CBEM_GETEDITCONTROL = 1031;
IntPtr hwndDlg = FindWindow(null, "Choose an image");
IntPtr hwndCBEx = FindWindowEx(hwndDlg, IntPtr.Zero, "ComboBoxEx32", null);
IntPtr hwndEdit = SendMessage(hwndCBEx, CBEM_GETEDITCONTROL, 0, 0);请注意,对于标准 ComboBox 控件(可以使用CBEM_GETCOMBOCONTROL消息从 ComboBoxEx 控件获取),可以使用CB_GETCOMBOBOXINFO消息或GetComboBoxInfo()函数。该字段中返回编辑控件的 HWND COMBOBOXINFO.hwndItem。