问题标签 [wm-paint]

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 投票
0 回答
39 浏览

windows - 在 Windows 中的透明窗口上绘画

我希望在窗口收到WS_EX_TOPMOST|WS_EX_TRANSPARENT|WS_EX_LAYERED的消息中绘制使用样式创建的窗口。WM_PAINT

我可以这样做吗?如果不是,我该怎么做才能在透明(视觉和命中透明)窗口上绘制动画 (绘制的内容已更改) ?

我没有指定能够看到正在绘制的动画WS_EX_TRANSPARENT|WS_EX_LAYERED,但这并没有达到目标,因为我希望窗口是透明的。

0 投票
1 回答
1221 浏览

c++ - 在 WM_PAINT 之外画一条线

通常,要绘制一条线,我们在WM_PAINT中绘制它

但是,我想随时画线,简单的例子:

我的程序是面向对象的,我在 Display 类中显示东西,我想知道我是否可以在 Display 类中的 DrawLine() 之类的函数中画线。

0 投票
1 回答
1091 浏览

c# - 在 WM_PAINT 中绘制的文本框在鼠标进入/离开时闪烁

我有一个自定义的 TextBox,当它为空时,我会在其中绘制一些占位符文本。它工作得很好,但是当鼠标进入和离开文本框时它会闪烁。当鼠标悬停在控件上时,它似乎与边框变为蓝色有关(我在 Windows 8.1 上)。

知道如何解决这个问题吗?

我尝试了各种 SetStyles 标志但没有成功。


我在覆盖 OnPaint 时遇到了其他问题。这是我想出的最佳解决方案:

0 投票
2 回答
62 浏览

winapi - 长时间处理 WM_PAINT 后应用程序停止响应

我正在制作一个将白色椭圆移动到窗口中心的程序。我正在使用 BeginPaint、EndPaint、Ellipse 程序执行此操作。当没有循环时,它可以正常工作,在底部显示椭圆,但是当我使用循环时,它会将椭圆移动到我需要的位置,然后停止响应(我想程序不会返回控制)。如何解决这个问题?我什至已经开始复制注册值。

WM_油漆:

程序:

0 投票
2 回答
92 浏览

c# - OpenGL4Net WM_PAINT 不存在?

我正在尝试让 OpenGL4Net 在 Microsoft Visual Studio 社区 2015 中与 C# 一起使用。

我已经下载了这个文件: https ://sourceforge.net/projects/ogl4net/files/Rev.%2037/x64/

并遵循这些说明: https ://sourceforge.net/p/ogl4net/wiki/Tutorials/

一开始是使用控制台应用程序,但随后又使用 Windows 窗体应用程序,因为它似乎要使用该窗口,而不是自己创建窗口。

到目前为止,已经添加了各种引用,form1.cs 没有改变,Program.cs 看起来像这样:

编译器似乎对代码末尾的注释不满意,但主要问题是我收到错误:

命名空间“Windows”中不存在类型或命名空间名称“WM_PAINT”(您是否缺少程序集引用?)

我一直无法在线找到我需要的 WM_PAINT 参考资料,包括 System.Windows 的参考资料也没有帮助。

问:我该如何解决这个问题,我是否正确设置?

0 投票
1 回答
329 浏览

c++ - 为什么我对 D2D1::RenderTarget::DrawText() 的调用会导致重复发送 WM_PAINT?

我有一个在 Win32 应用程序上运行的 C++ 小型 2D 渲染库,并使用 Direct2D 进行绘图。我调用了 BeginDraw(),完成了大量绘图,然后调用了 DrawText()。这当然是在 EndDraw() 之前。

不是返回,所以我可以继续调用渲染函数,它停止是因为它已经发送了一个 WM_PAINT (大概没有等待)。(并且会继续发送消息直到窗口被验证?我不知道)

我试图接听电话并测试我当时是否正在绘图,在这种情况下,假装我已经正确处理了消息(但实际上没有手动验证任何客户区域),但它只是继续发送它,并且 DrawText()不回来。

这是正常行为吗?该怎么办?

(我也在使用 Visual Studio Community 2013。)

0 投票
0 回答
297 浏览

c++ - 在 WM_PAINT 期间在主窗口上绘制子​​窗口

我有一个问题,当我将我的子窗口移动到主窗口上时,它在 WM_PAINT 期间被绘制在它上面,它看起来像这样:( 窗户 它很快消失)。我怎样才能解决这个问题?这是我的代码,WM_PAINT:

以及我如何创建我的窗口:

这很有趣,因为当我将其他窗口移到我的主窗口(例如 Google Chrome)上时,一切正常。

0 投票
1 回答
28 浏览

win32gui - Win32 中 L"" 类型的内存错误

这是我在 Win32 项目中绘制方法的代码:

我一直收到错误,即围绕着问候或围绕ps的堆栈已损坏。需要明确的是,问候语的初始化如下:

LoadedFile像这样初始化:

LoadedFile还没有被任何改变,所以它不应该添加任何东西到greeting. 我试过像

这只是改变了错误。不知道这里有什么问题。

编辑:没有_tcscat_s(), 调用窗口正常加载

0 投票
1 回答
559 浏览

c++ - 使用 RedrawWindow 或 SendMessage(WM_PAINT) 重绘后的窗口故障

我正在使用标准 Windows API 用 C++ 编写应用程序。它使用按钮进行一些简单的注册表修改。按下按钮时,它会更改底部显示的标签。要更改它,我需要重新绘制窗口(它会根据需要自动更改标签)。但是当我重绘窗口时,它开始出现故障。静态标签开始闪烁,按钮完全丢失,但在移动窗口后停止。这是它发生的GIF:

故障窗口

这是我的WndProc功能:

什么可能导致我的代码出现问题?我认为这是 WM_PAINT 处理程序的问题,因为在取消最小化程序时有时也会发生这种情况。

0 投票
1 回答
177 浏览

c# - Windows 窗体按钮 WM_PAINT 在 FlatStyle = System 上闪烁

我正在创建一个按钮并将 FlatStyle 设置为 System.

因为此模式通常不支持图像,所以要与文本一起显示图像,Button 自己的 Text 设置为“”,我正在通过捕获 WndProc 中的 Graphics.FromHwnd 和 TextRenderer 在顶部绘制自己的图像和文本,通过捕获 WM_PAINT并在调用 base.WndProc 后自己绘图。

这很好用,除了一个问题:在 Windows 7 上,突出显示的按钮在灰色和蓝色之间缓慢地跳动。我发现这种脉冲会导致按钮偶尔闪烁。

  1. 我已经使用了 WS_EX_COMPOSITED。
  2. 我试过 DoubleBuffered = true。它没有帮助。
  3. 我用 WM_PRINTCLIENT 尝试了 BufferedGraphics,但这并没有以 Aero 风格绘制,所以根本没有脉动。

有任何想法吗?