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

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

11得票2回答
如果操作系统低于Win10且使用从右到左书写的语言,则GraphicsPath AddString对字体的支持不足。

我需要在我的WPF应用程序中从字符串生成一个图像并显示它。这是我的代码:// Create Image and generate string on it System.Windows.Controls.Image img = new System.Windows.Controls.Image...

10得票4回答
如何在Windows中使用DrawText找到文本渲染的准确像素高度

我希望找到Windows下文本渲染的确切高度。我尝试了GetTextExtentPoint32和使用DT_CALCRECT标记调用DrawText,两者给出的结果都相同。 看起来返回的高度是基于整个单元格高度,而不管实际绘制的文本。 下面的代码是标准Visual Studio 2013 W...

10得票2回答
OpenGL层窗口中的立体视觉

有人知道如何在Windows 7中使用分层窗口时启用OpenGL立体视觉吗?

10得票4回答
Winforms:如何加速Invalidate()?

我正在使用GDI+开发一个保留模式绘图应用程序。该应用程序可以在画布上绘制简单的图形并进行基本编辑。此过程中的数学计算已经优化到了极致,因此不是问题所在。我正在绘制一个使用内置Controlstyles.DoubleBuffer的面板。 如果我将我的应用程序最大化到一个大屏幕上(例如我的高清...

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

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

10得票3回答
Win32:一个窗口在其整个生命周期中是否拥有相同的HDC?

我能在绘图周期外使用DC吗?我的窗口DC是否永久有效? 我正在尝试确定控件的设备上下文(DC)有效期。 我知道我可以调用: GetDC(hWnd); 我想获取我的控件窗口的设备上下文,但这样做可以吗? 当Windows发送WM_PAINT消息时,我应该调用BeginPaint/En...

10得票4回答
如何为32位位图生成单色位掩码

在Win32下,一种常见的技巧是通过执行以下操作从位图生成单色位掩码以用于透明度处理:SetBkColor(hdcSource, clrTransparency); VERIFY(BitBlt(hdcMask, 0, 0, bm.bmWidth, bm.bmHeight, hdcSource,...

10得票4回答
禁用特定GDI设备上下文的抗锯齿功能

我正在使用第三方库将图像渲染到GDI DC上,我需要确保任何文本都不被平滑处理/抗锯齿,这样我就可以将图像转换为预定义调色板中的索引颜色。 我使用的渲染第三方库不支持此功能,只按照当前Windows字体渲染设置呈现文本。他们还表示,他们不太可能很快添加关闭反走样的能力。 我目前找到的最佳解...

10得票1回答
C++/Win32: 如何从HBITMAP中获取阿尔法通道?

我有一个包含 alpha 通道数据的 HBITMAP。使用 ::AlphaBlend GDI 函数可以成功地将其渲染。 但是,当我调用 ::GetPixel GDI 函数时,我从未收到带有 alpha 分量的值。文档确实说它返回像素的 RGB 值。 是否有办法检索 HBITMAP 中像素的...