获取Child Window的截图

时间:2009-03-19 00:47:16

标签: windows winforms screenshot childwindow

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

提前致谢,

鲍勃

1 个答案:

答案 0 :(得分:1)

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

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

this thread中的代码应该有助于使P / Invoke正确。