问题标签 [redraw]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
379 浏览

c# - TabControl 通过顶部的窗口重绘

我有一个 .NET c# 表单,在基本表单上有一个 tabcontrol。此选项卡控件绝对加载了子控件和选项卡。如果我启动我的应用程序并立即打开另一个窗口(在我的应用程序中),我可以等待大约 3-5 秒,新打开的窗口后面的 tabcontrol 将自行重绘,而被刷新的区域实际上是通过上面绘制的窗户。几乎就像选项卡控件正在通过其上方的窗口重新绘制自身一样。

我查看了我能找到的 tabcontrol 上的每个事件,刷新时没有调用任何事件。因此,没有什么简单的方法可以解开以防止这种情况发生。

有什么想法可以解决这个问题吗?

0 投票
1 回答
901 浏览

cocoa - Mac Dev - 如何刷新 2d 游戏的视图?

如果你看到我的另一个问题,你就会知道我开始尝试在 mac 上制作简单的 2d 游戏。在那里我决定使用哪个库(OpenGL 或 Quartz),但无论如何我都必须使用 Cocoa 使其成为一个不错的 Mac 应用程序,以及窗口和视图(使用 OpenGL、NSOpenGLView)。显然,对于一个游戏,视图每秒必须重绘很多次。要重绘视图,您需要这样做[view setNeedsDisplay:YES];,但我读到您不应该多次这样做(因为它会花费很多)。但是我应该如何以合理的 fps 重新绘制 2d 游戏的视图?谢谢。

0 投票
2 回答
551 浏览

c# - 深度克隆面板;控件不重绘

我在重绘克隆面板的子控件时遇到问题。

首先,我没有使用 IClonable。我正在使用反射

我的代码:

0 投票
2 回答
2716 浏览

c# - c# form / tabcontrol 在最大化时重绘的问题

我有一个带有 tabcontrol 的应用程序/表单。当我最大化我的应用程序时,我看到一个重绘错误——标签页右侧区域的空白部分没有正确绘制并显示其他奇怪的东西。(只是背景,标签页的控件还可以)

我认为它一定是某个地方的简单设置,但我无法弄清楚它是什么。任何提示将不胜感激!:)

编辑:这里的问题截图:http: //i48.tinypic.com/dm318p.png 关注右上角:)

0 投票
1 回答
1771 浏览

qt - 如何在 Qt QSlider 上绘制图片而不是滑块?

我创建了一个继承自 QSlider 的类。我想在滑块(抓取器)上画一张图片,而不是显示普通的。怎么做?

--

收到回复后,我找到了答案并发布了。出于对响应者的应有尊重,我将选择该答复。但是,我想共享代码,以便遇到相同问题的任何人都可以受益:

0 投票
1 回答
377 浏览

windows - 一个窗口的屏幕截图

我一直在编写一些代码来对窗口进行屏幕抓取(在 Windows 中)。代码工作正常,但是在屏幕抓取之前,我必须将窗口带到我想要捕获的前面并强制重绘。

我用 InvalidateRect 强制重绘,然后我必须从消息循环中抽取一些消息,以便 WM_PAINT 得到处理。这显然有点蹩脚,因为我不知道要发送多少消息。

我尝试将 RedrawWindow 与 RDW_ALLCHILDREN 一起使用,但是我从中抓取屏幕的应用程序是 MDI 应用程序,似乎并没有重绘它的所有子项。

所以我的问题是,有没有更好的方法在屏幕抓取之前重绘窗口?

干杯丰富

0 投票
4 回答
5550 浏览

c# - 如何使用 OnResize 事件检查调整大小是否仍在进行中?

我需要在调整大小后重绘控件,而不是在调整大小时重绘控件,因为重绘控件需要花费大量时间并且会浪费大量资源。

我的控件继承了Control类,并且我覆盖了OnResize事件。

PS: OnSizeChanged 完全一样

0 投票
1 回答
1715 浏览

jquery - 使用 noLoop() 时,Processing.js 的基于事件的 redraw() 更好

我正在使用 Processing.js,我可以使用 jQuery 1.3.2,并针对 Firefox 3.5、Safari 4 和 IE 8(通过 ExplorerCanvas)。Processing.js 网站说“将 Explorer Canvas 与 Processing.js 一起使用通常会导致对于中等复杂的可视化效果不可用的帧速率。” 好吧,在这种情况下,不需要动画,只是一些简单的草图,所以帧率不是问题。每次表单中的输入数据发生变化时,我只需要一个 redraw() 。我 99% 都在那里,只需要一点灵感就可以控制 IE!

keyPressed() 可以完美地响应输入字段的变化,但是重绘复选框和选择字段的变化很遗憾,直到按下实际的键。mousePressed() 仅在画布内单击时才会导致更新。用户体验有点生涩和混乱。如何让草图在任何键盘/鼠标事件上立即重绘?

代码

在页面的主 JavaScript 块中,我设置了一个对象,用于传递 JSON 数据,该数据依赖于表单和 Processing.js 之间的选择字段,同时也是放置 IE 标志的地方:

当浏览器是 IE 使用“条件注释”脚本时,我在“通用”对象中放置了一个布尔值:

为了完整起见,“通用”对象以这种方式接收 JSON 数据,使用了出色的 jQuery getJSON 函数:

Processing.js 设置如下所示:

绘制循环是这样开始的,直接从表单中获取所需的参数数据:

当表单中的更改启动 AJAX 请求时,数据会像这样进入 draw() 循环:

在 draw() 循环之后是条件重绘逻辑:

0 投票
1 回答
2294 浏览

c# - Tao OpenGL 框架 SimpleOpenGLControl - 什么时候重绘,什么时候不重绘?

我在 Visual Studio Express 2008 中使用 C#。

我也在使用 Tao Framework OpenGL dll。

当我需要重绘时,实际上是什么导致 SimpleOpenGLControl 重绘?

当 SimpleOpenGLControl 驻留在活动窗体上时,为了重绘,我需要做的就是调用glFlush()SimpleOpenGLControl.Invalidate().

但是,当控件不在活动窗体上时,我根本无法重绘它。我找到了一种通过非正统方式使控件无效的方法,但这不会重绘控件的内容(3D 渲染),它只会给我留下一个空白(黑色)控件。

无论哪种形式处于活动状态,我都需要做什么才能使控件实际重绘?

0 投票
1 回答
1910 浏览

swt - 使用 SWT.NO_BACKGROUND 重绘复合后的控件

最初的目标:

我有一个 TreeMenu 用于显示我的菜单。在这棵树中,用户可以选择不同的项目。

我想禁用树,以便用户在选择第一个项目后无法选择新项目。问题是,我们不能使用 setEnabled,因为我们不允许使用灰色的外观。外观/颜色可能不会改变。

我们提出的解决方案

我们的第一个想法是在菜单顶部使用带有 SWT.NO_BACKGROUND 的 Composite,以防止用户与 TreeMenu 进行任何交互。

代码:

这有重绘的问题。

如果屏幕被另一个屏幕覆盖,然后又被带回前面,则 Cover Composite 将填充上一个重叠窗口的片段。

我们的想法是手动重绘菜单:

我们将代码放在paintEventListener 中。

但这导致了无限循环,并没有解决问题。

问题

有谁知道我们如何实现我们的原始目标?

有谁知道我们如何使我们提出的解决方案发挥作用?