问题标签 [gdi]

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 投票
2 回答
2758 浏览

.net - Graphics.MeasureString 允许过多的空白

我正在使用一个函数来调用要在一个区域内呈现的一段文本。该功能的基本工作是:

这样做的问题是 MeasureString 在它正在绘制的字符串周围添加了很多空白,并且最终的字体被渲染得太小了。

我确定我记得一些参数可以用来从 MeasureString 方法中删除所有填充,但是我的搜索目前没有出现任何结果。

有谁知道如何使用 MeasureString 来测量字符串的精确大小而没有任何边界?

0 投票
1 回答
397 浏览

.net - 立即找到 Windows.Forms 组件的可见区域的方法?

当我尝试将一些逻辑应用到表单上的定位元素时,我讨厌它,只是因为一些奇怪的问题,比如控件的可见区域受到边框的影响,所以地毯从我下面猛拉出来,实际上,创建在面板的内部可见区域周围有一个 3 像素的边距,完全放弃了我可能想要进行的任何大小计算,并且还偏移了控件的 0,0 点。

更糟糕的是表单控件本身,在大多数情况下,它在标题栏所在的位置有一个巨大的顶部边缘,但不会我记得)偏移 0,0 点,这意味着您放置在该点的控件通常可以甚至看不见。当然,当应用不同的 Windows 主题时,边距是不同的......

知识渊博的人能否让我了解一些更“有趣”的谎言 Windows.Forms 会告诉您有关表单区域和位置以及您是如何应对的?

0 投票
1 回答
981 浏览

windows-mobile - 在 Windows Mobile 上加载 JPEG

我正在寻找一种更快的方法将 JPEG(或 PNG?)加载到 Windows Mobile 上的 .NET 位图中...

我刚刚尝试加载 JPEG、PNG 和 GIF:

托管的 Bitmap 类可能不是最快的 - 但有人确定吗?

0 投票
4 回答
3596 浏览

windows - 将 GDI 转换为 XPS 时抑制 Microsoft XPS 文档编写器上的“另存为”对话框

在他的博客文章中,无需用户交互即可将文档打印到 Microsoft XPS Document Writer冯远说

如果您从自己的应用程序打印,很容易将 MXDW 指定为打印机驱动程序,并为要保存到的 XPS 文档提供文件名

谁能解释如何做到这一点并提供代码示例?

我遇到的主要问题是抑制 Microsoft XPS 文档编写器弹出的另存为对话框。我讨厌像袁在他的帖子中那样诉诸 UI 黑客攻击。

目前,我的应用程序对用户想要使用的任何打印机的设备上下文进行 GDI 绘图调用。我可以在 XPS Document Writer 上进行这些调用,但是当需要完成打印时,XPS Writer 会弹出另存为对话框。

0 投票
2 回答
1847 浏览

winapi - 如何仅使用 gdi 调用在 win32 中绘制选定的文本?

我尝试使用两个 TextOut 调用和 TA_UPDATECP 标志来绘制选定的文本,但是当我移动选定的区域时,字符会移动一点。

有人知道正确的方法吗?

0 投票
1 回答
1464 浏览

windows - Direct2D 是否有任何可用的性能测试?

我对绘制基元性能(CAD、GIS 等)特别感兴趣,但与 GDI/GDI+ 的任何速度比较都会非常有趣。

0 投票
1 回答
6208 浏览

gdi - StretchDIBits 似乎很慢,有更快的 API 吗?

我想在同样大小的 HDC 上画一个 dib。我正在使用:des 和 src 大小相同。

但我发现它很慢,因为 des 大小是相同的,我只需要将 dib 复制到 dc 上。有没有比 StretchDIBits 更快的方法?

正如

0 投票
1 回答
1664 浏览

vb.net - 执行撤消/重做时的问题

我的代码有问题

单击撤消后,我无法在图像上绘图,我不知道为什么

这是我的代码

0 投票
2 回答
2327 浏览

c# - 如何捕获(并希望修复)GDI 资源泄漏

我的应用程序在运行 6 小时后记录了一个异常:

操作系统版本:Microsoft Windows NT 5.1.2600 Service Pack 3 (5.1.2600.196608)

.NET 版本:2.0.50727.3082

SQL Server 版本:9.00.4035.00

SQL Server 级别:SP3

SQL Server 版:标准版

错误消息:参数无效。

异常类型:System.ArgumentException

来源:System.Drawing

0 投票
6 回答
2863 浏览

winforms - How can I create GDI Leaks in Windows Forms!

I am investigating a GDI resource leak in a large application. In order to further my understanding of how these problems occur, I have created a very small application which I have deliberately made 'leaky'. Here is a simple user control which should result in the creation of 100 Pen objects:

However, when I create an instance of my object and add it to a form, looking at my application with TaskManager I currently see ~37 GDI objects. If I repeatedly add new TestObject user controls to my form, I still only see ~37 GDI objects.

What is going on here! I thought that the constructor for System.Drawing.Pen would use the GDI+ API to create a new Pen, thus using a new GDI object.

I must be going nuts here. If I cannot write a simple test application that creates GDI objects, how can I create one which leaks them!

Any help would be much appreciated.

Best Regards, Colin E.