私はAviReCompというプログラム内のチェックボックスをチェックしようとしています。何とかできません。私は、コードのすべての種類を試してみた:C#WinAPIを使用してチェックボックスをチェックすることができません
//Check the checkbox
IntPtr SubtitlesSection = FindWindowEx(MoreOptions, IntPtr.Zero, null, "Subtitles");
IntPtr AddSubtitlesCheckbox = FindWindowEx(SubtitlesSection, IntPtr.Zero, null, "Enable/Disable");
SendMessage(AddSubtitlesCheckbox, BM_SETSTATE, 1, IntPtr.Zero);
SendMessage(AddSubtitlesCheckbox, BM_SETCHECK, 1, IntPtr.Zero);
SendMessage(AddSubtitlesCheckbox, WM_PAINT, 0, IntPtr.Zero);
SendMessage(AddSubtitlesCheckbox, WM_LBUTTONDOWN, 1, MakeLParam(10, 10));
SendMessage(SubtitlesSection, WM_PARENTNOTIFY, (int)MakeLParam((int)AddSubtitlesCheckbox, WM_LBUTTONDOWN), MakeLParam(26, 31));
SendMessage(SubtitlesSection, WM_PARENTNOTIFY, (int)MakeLParam((int)AddSubtitlesCheckbox, WM_LBUTTONUP), MakeLParam(26, 31));
チェックボックスは、字幕のセクションの下に追加のタブ内に配置され、有効/無効を呼ばれています。
何か間違っていますか?
ありがとうございました!
編集:は、私は今、このコードは実際に動作し、それがチェックボックスにチェックを入れませんが、私はまだそれは私が手動ではなく内部のチェックボックスにチェックを入れたときに変更することになっているすべてのコントロールは変更されませんので、問題があることがわかり私のプログラム。チェックボックスをオンにしたときに、親コントロールに強制的に再描画させるか、変更イベントをトリガーする方法はありますか?
エラーハンドリングとメッセージを追加して、正確にどこが失敗するのか(その理由)を確認します。 –
エラーは発生しません。単にチェックボックスをチェックしません。 –
winapiを使用すると、エラーが発生することがあります。 IntPtrがIntPtr.Zeroの場合は例外をスローします。それは可能性が高いです。 –