【发布时间】:2014-03-12 18:08:14
【问题描述】:
我在 .net 2.0 上有一个 Windows 应用程序。在Form1,我打开一个PrintDialog。如何从我的代码中获取该对话框的句柄?
我尝试了很多win32函数:EnumWindows,EnumChildWindows,FindWindow,FindWindowEx,但是找不到我的PrintDialog。我能找到的只是Form1,它的孩子是它的控件。我无法获得PrintDialog's 句柄。
我尝试过的一些代码:
导入win32:
[DllImport("user32.dll", SetLastError = true)]
public static extern IntPtr FindWindow(string lpClassName, string lpWindowName);
调用win32函数:
using (PrintDialog dlg = new PrintDialog
{
AllowCurrentPage = false,
AllowSomePages = true,
AllowSelection = false
})
{
IntPtr printHandle = CustomPrintDialog.FindWindow("#32770", "Print");
// some logic with printHandle go here
if (dlg.ShowDialog(this)==DialogResult.OK){
// some logic go here
}
}
我已经检查了 Spy++,仍然有一个 PrintDialog 窗口。 PrintDialog 窗口的父窗口句柄与 Form1's 句柄完全相同。
有人可以帮我从其父窗口获取PrintDialog's 句柄吗?
【问题讨论】:
-
示例代码is here.