我想關閉一個會自動彈出的對話框,但我在使其工作時遇到了一些麻煩。經過幾年的有限使用,我的Win32編程有點生疏。模擬單擊C中另一個窗口中的按鈕#
我使用FindWindowEx獲取對話框的句柄和我想單擊的按鈕。我的印象是,發送一個WM_COMMAND到對話框,wParam參數中的按鈕句柄可以解決問題。
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);
}
窗口是實現IWin32Window幷包裝一些Win32 API調用的類。我已經爲WM_COMMAND(0x111)內聯了常量。
我在做什麼錯? :)
謝謝,我剛發現我自己應該使用lParam來代替。永遠不要假設其他人寫的是正確的:( – Thorarin 2009-06-12 14:10:07