2013-02-26 126 views
0

我刚刚从所提供的源代码构建了tcl 8.5,并开始了一个wish85/wish进程。Tcl 8.5 Wish.exe生成两个窗口(控制台+另一个窗口)

产生了两个窗口,其中一个是实际的控制台。

我想知道如何强制这种行为:关闭控制台应该关闭进程。 我试图强制WM_DELETE_WINDOW消息的处理程序,但它似乎不工作。

你们能帮忙吗?

+0

当您运行应用程序时,控制台通常不会显示,只有当您将其作为外壳启动时才会显示。你想让控制台始终显示你的应用程序? – 2013-02-26 17:21:32

+0

是的,控制台应该始终显示。我的问题是关闭控制台不会关闭整个过程(wish85.exe)。 – 2013-03-27 06:33:10

回答

2

控制台窗口运行在不同的interp中,因此您必须在其中安装协议处理程序。要做到这一点的方法是用

console eval {wm protocol . WM_DELETE_WINDOW exit} 

控制台实现在[file join $tk_library console.tcl](在我的系统C:/Tcl/lib/tk8.6/console.tcl),如果你想勾搭有(不推荐)。

+0

谢谢。我会试一试。 – 2013-03-27 06:33:33