10得票4回答
让鼠标在Windows C++中穿梭

我正在开发一个Win32 C++应用程序,在这个应用程序中,我希望忽略鼠标事件,让它们穿透到我的窗口下面的窗口。基本上,我的下面的窗口将处理鼠标事件。我宁愿不使用SendMessage将鼠标消息发送到我的下面的窗口,也不使用SetCapture。是否有一种方法可以忽略鼠标事件,并让它们通过Wi...

18得票4回答
屏幕截图特定窗口

能否截屏指定窗口(也可能是其他进程的窗口)? 目前我正在捕捉特定监视器的整个桌面,但我真正想要的是捕捉特定窗口的内容(无论其位置如何)。

9得票1回答
使用MSDN库进行多屏幕截图

我正在进行多屏幕截图的工作。由于GetDesktopWindow()只能获得主显示器的句柄,因此我尝试使用EnumDisplayMonitors()来完成这项工作。 在阅读MSDN网站后,我在main()函数中写下了以下代码: HDC hdc = GetDC(NULL); EnumDisp...

7得票1回答
同步重绘窗口控件(使用阻塞方法)

我想做的是让一个控件(在同一进程中,但我无法控制它)重新绘制自己,并且我的代码会阻塞,直到它完成重绘。我尝试使用UpdateWindow,但似乎不等待重绘完成。我需要等待它完成重绘的原因是之后我想抓取屏幕。该控件不是dotNet控件,而是常规的Windows控件。我已确认以下内容:句柄正确;U...

15得票4回答
如何在C#中有效地在桌面上绘图?

我想在 C# 中直接在桌面上绘图。经过一番搜索,我使用了来自桌面 HDC(null)的 Graphics 对象。然后,我使用此 Graphics 对象正常绘制。 问题是当屏幕的任何部分重新绘制时,我的图形会丢失。我尝试使用 While 循环,但实际上它以应用程序可以处理的速度进行绘制,而不是...

11得票1回答
在Windows API中,逻辑坐标和设备坐标之间的区别让人困惑。

我一直在研究一个使用了两个函数SetWindowExt (...)和SetViewportExt (...)的Visual Studio C++ Windows应用程序项目。我对这两个函数的作用及其必要性感到困惑。通过搜索了解这些函数,我了解到逻辑坐标和设备坐标的概念。 请问有人能够解释一下...

10得票5回答
如何测量给定字体/大小中数字的像素宽度(C#)

我正在尝试计算Excel列的像素宽度,如这篇帖子所述,使用来自OpenXML规范的官方公式。然而,为了应用此公式,我需要知道正常字体的最大数字宽度,即最宽数字字符的像素宽度。 OpenXML规范给出了以下示例以进行说明: 以Calibri字体为例,11点字体大小的最大数字宽度为7个像素(在9...

52得票2回答
在计算机上枚举显示器

我找到了7种不同的方法来枚举连接到计算机上的监视器。但是所有的解决方案都给出了不同的结果(监视器的数量和每个监视器的信息)。 这些解决方案包括: 使用著名的EnumDisplayDevices 使用EnumDisplayMonitors 使用Windows Management Inst...

14得票5回答
SetPixel太慢了。有没有更快的方法来绘制位图?

我正在开发一个小型的绘图程序。使用SetPixel在位图上画线时,当笔刷大小变大(比如25像素),会出现明显的性能下降。我想知道是否有更快的方法来绘制位图。以下是该项目的一些背景: 我使用位图来利用图层,就像在Photoshop或The GIMP中一样。 线条是手动绘制的,因为它最终将使用...

18得票4回答
关于GDI/GDI+坐标兼容性的问题?

我在使用 GDI 和 GDI+ 进行绘图时遇到问题。其中页面变换,特别是缩放,在两者之间似乎有些微小差别。除了 SetViewportExt 和 SetWindowExt,GDI 上下文中哪些属性会影响输出的缩放? 代码几乎全部使用 GDI 进行绘制,但在需要半透明效果时会使用 GDI+。代...