【发布时间】:2014-06-07 10:10:39
【问题描述】:
我正在使用 wxHaskell 来显示简单 Haskell 游戏的 GUI。
我有一个问题:我正在编写简单游戏的 GUI 部分。当游戏状态更新时,GUI 模块的功能之一被调用并传递新的游戏状态参数。现在必须更新 gui。 GUI 是几个矩形,GUI 的更新只是在旧的矩形上画一些新的矩形。
但是,要绘制矩形,我需要将设备上下文 DC 作为参数传递。由于包含我的矩形的面板生成了“onpaint”事件,因此完成了电路板的第一次绘画。在 Paint 处理程序上必须有签名:
DC a -> Rect -> IO ()
当事件发生时,通过 dc 并显示板。
我的问题:如何获得 DC?
或替代问题:如果事件处理程序需要特定签名 - 我如何将其他参数传递给处理程序?
【问题讨论】:
-
你看过haskell.org/haskellwiki/WxHaskell/Quick_start的例子吗?第 3 节中的部分展示了如何使用 on paint 事件进行绘图。
标签: haskell user-interface wxhaskell