【问题标题】:How can i draw in wxWidgets?我如何在 wxWidgets 中绘图?
【发布时间】:2020-03-12 16:15:18
【问题描述】:

所以我目前正在编写一个蛇游戏,我需要绘制指示蛇头的第一个像素(位于软件中间)。但我似乎找不到任何在屏幕上绘图的功能。我尝试过使用 DrawRectang 和 DrawPixel。

有什么帮助吗?

【问题讨论】:

标签: c++ wxwidgets


【解决方案1】:

wxWidgets 具有通过其自己的绘图 API 自定义绘制小部件/窗口(或其中的一小部分无效部分)的功能。

这通常用于自定义按钮或其他控件、图形等。您可以处理EVT_PAINT (wxPaintEvent),您可以在其中创建 DC(“设备上下文”)。除了创建或大小更改之外,您还可以使用wxWindow::RefreshwxWindow::RefreshRect(对于一小部分)强制重绘。您可以使用计时器来执行此操作。

请注意,性能和功能相当有限。可以使用 OpenGL 或 Direct3D ,或者各种带有 wxWidgets 的高级库,原生平台窗口句柄可通过wxWindow::GetHandle 获取。

【讨论】:

  • 非常感谢,我想我终于在程序上取得进展了。没想到你也需要一个事件处理程序来绘制哇
  • 我猜是因为大多数 GUI 都基于非常有限的硬件功率并且不会浪费电池,即使你有一个包含大量内容的滚动条,由于滚动条其他窗口正在显示,其中大部分内容都在屏幕外“在上面”。通常在 GUI 中(尤其是设计时的旧 GUI,屏幕上的每个窗口/应用程序可能共享一个单个“位图”)很少会逐帧更改,因此系统只需要画点点滴滴。有时甚至不是因为您自己的程序,例如如果另一个窗口被拖到它上面覆盖共享图像
猜你喜欢
  • 2010-12-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-05-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-08-16
相关资源
最近更新 更多