我还没有在Graphics文档中找到有关窗口关闭检测的详细信息。如何检测它以便我可以触发关闭操作?
谢谢。
答案 0 :(得分:0)
使用一个简单的测试程序(包含在本答案的最后)并手动关闭窗口告诉我们引发了以下异常:
Fatal error: exception Graphics.Graphic_failure("fatal I/O error")
这意味着我们可以使用异常处理程序处理关闭的窗口:
try
(* Here goes the code opening and manipulating the window *)
with
| Graphic_failure("fatal I/O error") ->
(* Here goes the code handling the window being closed manually*)
测试程序(你需要运行ocamlc graphics.cma test.ml -o test
来编译它):
open Graphics
let rec loop () = loop ()
let () =
(*
try
*)
Graphics.open_graph " 400x600";
loop ()
(*
with
| Graphic_failure("fatal I/O error") ->
print_string "Caught exception";
print_newline ()
*)