- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个神秘的 WM_PAINT 消息被无缘无故地发送到一个窗口,我无法理解。我正在使用我的一些代码发送一条 WM_PAINT 消息-
InvalidateRgn(graphwin_hwnd,NULL,1);
SendMessage(graphwin_hwnd,WM_PAINT,0,0);
但是在执行了在屏幕上绘制一些图形的后续代码之后,调试器指示第二条 WM_PAINT 消息从某处到达。我的问题是,如何诊断导致发送第二条 WM_PAINT 消息的原因。
编辑: i486 已正确指出我不需要明确执行 SendMessage()...但令我惊讶的是,即使我将其注释掉,我仍然得到 1 个多余的神秘的 WM_PAINT 消息被发送到我的图形窗口的处理程序,所以问题还没有完全解决。
编辑: 糟糕,我错了,在注释掉 SendMessage 之后,似乎我仍然有一个不相关的错误搞砸了 - 但我只收到一条 WM_PAINT 消息......所以问题解决了。
最佳答案
您不需要发送 WM_PAINT - 它会在 Invalidate 之后自动发送。调用 UpdateWindow
强制执行。可能第二个 WM_PAINT 是因为 InvalidateRgn
。要对此进行测试,请注释您的 SendMessage
并检查 WM_PAINT。
关于c++ - 诊断神秘的 WM_PAINT 消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34811431/
我的自定义绘图区的 WM_PAINT 看起来像这样: // TRUE to clear the background if (GetUpdateRect(hwnd, &r, TRUE) == 0)
我一直在玩 uni 的 Windows api,但在初始创建后我无法让窗口消息调用 WM_PAINT。它在创建窗口时调用它,但不是在创建之后。 所有其他消息都会被调用!只是无法调用 WM_PAINT。
我经常画画。目前我正在使用 WM_TIMER 来安排使用 InvalidateRect 的绘画。由于某种原因,WM_PAINT 经常被称为区域 (0,0,0,0),因此基本上是一个空矩形。我试图将其解
当我隐藏窗口时,图形的一部分被删除。我使用 cout 来显示我的代码正在运行的位置,似乎每个函数都已执行,但图像没有重绘 case WM_PAINT:{ hDC = BeginPain
有人能告诉我如何获得 WM_PAINT 消息的帧速率(以每秒帧数为单位)吗?我正在尝试制作一个软件渲染器,帧率对于调试非常重要。 最佳答案 这个问题之前被问过here 。作为附加提示,您可以使用动态分
我在互联网上阅读了很多示例,但我仍然陷入困境。我正在尝试处理发送到我的应用程序的 WM_PAINT 消息。 在我的应用程序中,我总是在同一个 DC 中绘制,名为 g_hDC。它工作完美。当收到 WM_
我正在尝试编写一个窗口过程,仅在单击开始按钮时调用窗口中矩形的动画,并在单击停止按钮时停止。 我试过这样做: LRESULT CALLBACK WindowProcedure(HWND hWnd, U
我想“拦截”其他进程聊天框的 WM_PAINT 消息。功能:GetMessage(msg, hwnd, 0, 0) 似乎很完美,但我没有收到任何消息(我作为 super 用户尝试过)从现在开始,我的
在这篇文章中About Messages and Message Queues ,据说 WM_PAINT 是一种排队消息。 排队的消息 Whenever the user moves the mous
WM_PAINT 究竟是什么时候被调用的?我试图创建一个基于对话框的老虎机应用程序,但我遇到了几个逻辑问题。我的申请将包括: “旋转”按钮 退出按钮 三个 BMP 图像显示旋转结果(硬币/心/士兵)
我读到我永远不应该手动发送 WM_PAINT 并且应该调用 InvalidateRect 但没有找到任何关于为什么不这样做的信息。那为什么不呢? update 适用于 InvalidateRect 但
我有 MSVC 2019、vc142 x64、SDK 10.0.18362.0、WINAPI 游戏项目、已启用 JIT 调试、_DEBUG被定义为。我用assert()来自标准库#include 。
我创建了一个父窗口,它有许多子窗口,例如按钮、静态文本等。它们都是可见的并且工作没有任何问题,但是当我向窗口回调添加一段代码时它们全部消失+我看不到我刚刚尝试从函数中绘制的线。 如何解决这个问题? c
我有一个神秘的 WM_PAINT 消息被无缘无故地发送到一个窗口,我无法理解。我正在使用我的一些代码发送一条 WM_PAINT 消息- InvalidateRgn(graphwin_hwnd,NULL
我正在创建 Win32 控件: m_progress = CreateWindowExW(0, PROGRESS_CLASSW, L"ProgressBar", WS_VISIBLE | WS_CHI
这是针对 C++ - win32 的。基本上,我已将图像 (bmp) 从文件加载到 HBITMAP 中,并将其位 block 传输到主窗口的设备上下文。 如果我想更改图像,我该如何再次调用它? 我调用
我正在尝试使用带有 wm_paint 和 wm_printclient 的 SendMessage 捕获游戏窗口。 我已经使用 PrintWindow 成功地做到了,但是游戏可以在图形引擎之间切换,对
简介: 我决定在 MS Visual Studio 2008 中用 C++ 做一个测试项目来测试纯 WIN32 中的一个小程序,关于绘制位图作为窗口背景。 问题: 窗口应该有灰色画笔和在其客户区拉伸(
在 TextOut 行的这段代码中遇到一些问题,它说: error: cannot convert 'std::string* {aka std::basic_string*}' to 'LPCSTR
有没有办法在所有 WM_PAINT 调用完成后调整大小?这样我就可以自动调整我的窗口大小以适应我绘制的任何内容,因为最初我的窗口大小被定义为特定大小,可能会有未绘制的剩余空间,我如何删除这些剩余空间?
我是一名优秀的程序员,十分优秀!