我在使用.net控件包装ActiveX时遇到了清理问题。默认行为是当我尝试关闭SDK的测试容器应用程序(TstCon32.exe)时,该应用程序将作为无GUI进程运行。
我最初通过Google找到的解决方法是重写WndProc并手动调用
该应用程序是MDI的,当包含控件的页面关闭时,将发送
我最初通过Google找到的解决方法是重写WndProc并手动调用
Environment.Exit(0)
。这确实使TstCon32.exe完全关闭;然而,它破坏了我需要托管控件的应用程序。该应用程序是MDI的,当包含控件的页面关闭时,将发送
WM_DESTROY
,此时Environment.Exit(0)
调用将使整个应用程序崩溃。我尝试过Application.Exit()
作为替代方案,但这仍然会导致TstCon32.exe以隐形模式运行。protected override void WndProc(ref Message m)
{
base.WndProc(ref m);
// WM_DESTROY
if (m.Msg == 2)
Environment.Exit(0);
}