0

如果我有一个窗口的句柄,当它们出现时如何截取任何新的子窗口?现在我的代码每 0.1 秒截取一个窗口窗体的屏幕截图。当我单击下拉列表框时,随后的屏幕截图不包括它。使用 spy++ 我可以看到创建了一个新的子窗口,但不确定如何确保它包含在我的屏幕截图中。有人有任何可能包含子窗口的代码吗?

提前致谢,

鲍勃

4

1 回答 1

1

是的,ComboBox 的下拉菜单是一个特殊的窗口,一个 LISTBOX。.NET 没有提供获取句柄的内置方法,您可以 P/Invoke SendMessage 并发送 CB_GETCOMBOBOXINFO 消息。COMBOBOXINFO.hwndList 包含句柄。

请注意,还有其他控件的行为方式,例如 DateTimePicker。另请注意,窗口可以超出表单的范围。

此线程中的代码应该有助于正确执行 P/Invoke。

于 2009-03-19T13:51:58.963 回答