我想关闭一个自动弹出的对话框,但我在让它工作时遇到了一些麻烦。经过几年的有限使用,我的 Win32 编程有点生疏了。
我正在使用 FindWindowEx 来获取对话框和我想要单击的按钮的句柄。我的印象是,使用 wParam 参数中的按钮句柄向对话框发送 WM_COMMAND 就可以了。
Window window = Window.FindWindow("TSomeDialog", null);
Window cancelButton = Window.FindWindow("TButton", "Cancel", window);
Message message = Message.Create(window.HWnd, 0x0111, cancelButton.HWnd, IntPtr.Zero);
PostMessage(message);
public void PostMessage(Message message)
{
// Win32 API import
PostMessage(message.HWnd, message.Msg, message.WParam, message.LParam);
}
Window 是一个实现 IWin32Window 并包装了一些 Win32 API 调用的类。我已经内联了 WM_COMMAND (0x111) 的常量。
我究竟做错了什么?:)