9得票2回答
'GraphicsPath.AddString'中的字体比通常的字体要小

如果我使用AddString将字符串添加到GraphicsPath中,字体大小会比在字体对话框中看起来的要小。 SizeF sz = g.MeasureString(Text, new Font(Font.FontFamily, (int)(Font.Size - (Font.Size ...

9得票4回答
从OpenGL切换到GDI

我们有一个应用程序,在其中我们同时使用GDI和OpenGL来绘制到同一个HWND上,但是是互斥的。 例如: - 首先我们处于2D模式,因此我们使用GDI进行绘制。 - 然后我们切换到3D模式,使用OpenGL进行绘制。 - 然后我们切换回2D模式,并使用GDI对其进行绘制。 当切换到3D...

9得票11回答
Heisenbug:WinApi程序在某些计算机上崩溃

请帮忙!我真的很绝望。我的程序是一个小型个人笔记管理器(可以在谷歌上搜索“cintanotes”)。在某些电脑上(当然,我没有拥有它们中的任何一台),它在启动后会崩溃并显示未处理的异常。除了这些电脑倾向于使用AMD CPU外,没有什么特别之处。 环境:Windows XP,Visual C+...

9得票2回答
如何从HBITMAP创建一个带有alpha通道信息的Gdiplus :: Bitmap?

当我使用Bitmap::FromHBITMAP函数创建一个新的Gdiplus :: Bitmap时,生成的位图是不透明的 - 没有保留原始HBITMAP的任何部分透明度。 有没有办法从带有alpha通道数据的HBITMAP创建Gdiplus :: Bitmap?

9得票3回答
如何在Win32 C++中进行打印预览?

我有一个绘图函数,只需要一个HDC。 但我需要显示一个精确缩放版本的打印内容。 所以目前,我使用CreateCompatibleDC()与打印机HDC和 使用打印机的HDC创建CreateCompatibleBitmap()。 我想这样DC将具有打印机的精确宽度和高度。 当我把字体选择到这...

9得票3回答
在响应WM_PAINT消息时,使用BeginPaint/EndPain和使用GetDC/ReleaseDC有什么特殊之处吗?

可以使用GetDC/ReleaseDC在窗口的客户区绘制图形。但是在响应WM_PAINT消息时,必须使用BeginPaint/EndPaint。这里有什么特别之处吗?

9得票1回答
如何使用纯GDI实现颜色混合(根据指定的alpha值进行着色)画布区域?

我希望您能使用纯 Windows GDI(因此不使用GDI +、DirectX或类似工具,也不使用OpenGL、汇编语言或第三方库)来混合颜色(通过指定的alpha值着色)画布区域。 我已创建以下函数,并想知道是否有更有效或更简单的方法来实现此目标: procedure ColorBlend...

9得票1回答
如何绘制没有填充的字符串

我正在使用GraphicsPath.AddString()函数,但它会在文本周围绘制一些空白。有什么办法可以只绘制文本路径而不带有填充? 我的代码如下: GraphicsPath gp = new GraphicsPath(); gp.AddString(text, font.FontF...

9得票2回答
在原生Win32 GDI中绘制略透明的蓝色矩形

如何在Native Win32 C++中绘制一个蓝色矩形,并设置透明度为0.5(即50%透明度)? 使用RGBA()等宏失败,我不确定如何指定画刷的 alpha 值。 SetDCPenColor(hdc, RGBA(255,255,0,127)); SetDCBrushColor(hdc,...

9得票3回答
如何处理WM_ERASEBKGND以避免闪烁?

我在一个表单上有一些自定义进度条,每秒更新/刷新两次,但它们会闪烁。 TMyProgressBar = class(TCustomControl) 我从 TCustomControl 继承了控件,因为我需要 Handle 和一些 TWinControl 事件。这些控件(最多 64 个)是...