问题标签 [repaint]

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 回答
2641 浏览

mfc - 如何停止 MFC/win32 控件重绘

我有一个 CRichEditCtrl,一个算法就地处理它的内容,遍历内容并进行更改。这似乎导致它每次都重新绘制,这会导致闪烁和完成操作的明显时间,尤其是当控件开始滚动时。我想知道是否有一种巧妙的方法可以让我停止重新粉刷一段时间。它实际上是使用中的 CRichEditCtrl 的自定义子类,所以我在想类似的东西:

最整洁的方法是什么?一个自定义的 on-paint 处理程序在操作进行时什么都不做?或者实际上可以禁用重绘?

0 投票
2 回答
6414 浏览

c# - 在 C# 中,如何将刷新/重绘消息发送到 WPF 网格或画布?

如何将刷新消息发送到 WPF 网格或画布?

换句话说,我注意到在调试模式下,我可以编写代码将一行发送到显示器,然后,如果该行不正确,我可以调整它——但前一行仍然存在。现在,我正在编写的代码根据用户点击的内容向显示器发送信息。所以这一定意味着每次新的一组行和框以及文本进入 WPF 中的网格或画布时,都不会刷新显示。

使用 C# 代码,如何将刷新/重绘消息发送到 WPF 网格或画布?

0 投票
3 回答
602 浏览

java - Java Applet 缓冲图像

好的,这是我的代码: http: //www.so.pastebin.com/Qca4ERmy

我正在尝试使用缓冲区,因此小程序不会在 redraw() 时闪烁,但似乎我遇到了麻烦。小程序仍然闪烁....

帮助?

谢谢你。

我制作了一个关于这个问题的快速视频:http: //www.vimeo.com/12035196

0 投票
3 回答
1344 浏览

java - 调整 JPopupMenu 大小并避免“闪烁”问题

我正在尝试实现类似于此处找到的样式的搜索结果弹出列表:

http://www.inquisitorx.com/

(我并没有尝试实现 Google 搜索,我只是将其用作我正在研究的风格的粗略示例。)

无论如何,我通过使用JList包含在 a中的 a 来实现这一点,它在 aJPopupMenu下方弹出JTextField

当用户输入搜索词时,列表会发生变化以反映不同的匹配结果。然后我呼吁调整它pack的大小。JPopupMenu这可行,但是,它会产生轻微的闪烁效果,因为它实际上隐藏了弹出窗口并显示了一个弹出窗口。(请参阅它明确执行此操作的私有方法getPopup。 )JPopupMenu

有没有办法让它只是调整自己的大小(除了使用 a JWindow)?

0 投票
4 回答
6607 浏览

c++ - QGraphicsItem 重绘

我想定期更改矩形内的文本颜色。这是我的试验:

此代码无法正常工作。怎么了?

0 投票
1 回答
1129 浏览

java - 重绘问题

我在move方法中的重绘有问题。我不知道该怎么做,代码如下

调用它的另一个类的代码如下:

0 投票
3 回答
13632 浏览

c++ - c++ 重绘窗口

我有一个带有图像的窗口。但是当它是一张小图片时,我首先需要调整窗口大小才能看到它,屏幕不会刷新/重新绘制。我怎样才能解决这个问题?

0 投票
4 回答
2529 浏览

java - 在鼠标悬停时停止 JButton 重绘?

我创建了一个自定义 JButton 类来表示垄断板上的空间。该游戏是多人游戏,因此绘制按钮所需的大量信息都保存在服务器上(通过 RMI 访问)。

我的问题是,当我将鼠标悬停在按钮上时,它似乎会自动调用 repaint() (并绘制边框)。这使得程序非常慢,因为每次鼠标悬停在其中一个空间上时,它都必须从服务器上提取数据。

我一直在试图找到一种方法来阻止这种情况的发生,但互联网上的其他所有人似乎都无法让按钮重新绘制()而不是停止它。

有谁知道我可以覆盖的方法或我可以更改以阻止这种情况发生的属性?

0 投票
2 回答
722 浏览

multithreading - Delphi 6:在非 VCL 线程上触发的断点停止主线程重绘

我有一个多线程的 Delphi 6 Pro 应用程序,我目前正在大量工作。如果我在主线程(VCL 线程)上下文中运行的任何代码上设置断点,我没有任何问题。但是,如果在我的其他线程之一中的任何代码上触发了断点,则在我从断点继续应用程序之后,对主线程(包括主窗体)上的 VCL 组件的所有重绘都不会再发生。应用程序没有死,因为其他后台代码一直在运行,只是主线程。就好像 Windows 消息调度程序已损坏或处于休眠状态。

注意,在这个应用程序中,我通过主窗体上的 allocateHwnd() 分配了我自己的 WndProc(),因为我需要捕获某些已注册的消息。我从那个 WndProc() 发送我处理的任何自定义消息,如果我的代码没有处理当前消息,我通过调用主窗体的继承 WndProc() 来传递消息。如果我确实处理了当前消息,我只需从 WndProc() 返回并将 Msg.Result 设置为 1,以告诉调度程序该消息已被处理。我不能简单地覆盖 TForm WndProc() 而不是分配我自己的 WndProc() 因为由于某种原因 Delphi VCL 不通过使用 Windows API RegisterWindowMessage() 调用实例化的注册消息。

有没有人在类似的情况下遇到过这种情况,如果有,你做了什么来解决它?

——罗舍尔

0 投票
1 回答
6590 浏览

java - 如何更新标签以使其显示新文本?

我正在 netbeans 中创建一个应用程序,并希望有一个状态标签来告诉程序在任何给定时刻发生的事情。有很多代码,但它的作用大致如下:假设 statusLabel 是一个已经放入程序中的标签,并且每个函数都是耗时几秒钟的昂贵函数。

这一直持续到 UI 完成 4 个任务。在整个过程中,标签不会更新,直到每个任务都完成后,然后它会显示“完成任务 4”。System.out.println 调用虽然完美。基本上我想知道我应该怎么做才能使标签显示它已设置的新文本。