检测窗口关闭OCaml Graphics

时间:2015-12-29 10:55:57

标签: events window ocaml

我还没有在Graphics文档中找到有关窗口关闭检测的详细信息。如何检测它以便我可以触发关闭操作?

谢谢。

1 个答案:

答案 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 ()
*)