user32.dllを使用するサードパーティのコントロールを修正する
public partial class Form1 : Form
{
TheForm theForm;//empty form
public Form1()
{
InitializeComponent();
theForm = new TheForm();
}
internal const int SWP_SHOWWINDOW = 0x0040;
[DllImport("user32.dll", CharSet = CharSet.Auto)]
internal static extern int ShowWindow(IntPtr hWnd, short cmdShow);
private void button1_Click(object sender, EventArgs e)//shows theForm when it wants to
{
ShowWindow(theForm.Handle, SWP_SHOWWINDOW);
}
private void button2_Click(object sender, EventArgs e)//shows theForm always
{
theForm.Show();
}
}
user32 ShowWindowを呼び出した後、ほとんどの場合、ウィンドウが「行き詰まった」のはなぜですか。フォーカスの喪失をキャプチャして破棄しますが、マウスイベントをキャプチャせず、それ自体をペイントしません。