- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我正在尝试仅使用 GDI 函数将包含透明区域的增强图元文件转换为 32 位位图。这可能获得正确的 alpha 值吗?
以下内容生成一个 32 位位图,每个像素的 alpha 值设置为 0:
首先,我使用 CreateCompatibleDC(NULL)
创建一个内存 DC,并使用 GetDC 检索的屏幕 DC 创建一个
。 (后者生成 32 位位图的句柄。)HBITMAP
和 CreateCompatibleBitmap
(空)
然后我使用 SelectObject
选择创建的位图到内存 DC。
最后,我使用 PlayEnhMetaFile
将包含透明区域的增强图元文件绘制到内存 DC 中。
最佳答案
我没有使用 PlayEnhMetaFile
的经验,但您可以使用 AlphaBlend
绘制带有 alpha channel 的内存 DC
inline BOOL AlphaBlt(HDC hDC, int x, int y, int cx, int cy, HDC hSrcDC, int xSrc, int ySrc, int cxSrc, int cySrc)
{
static BLENDFUNCTION bf = {AC_SRC_OVER, 0, 255, AC_SRC_ALPHA};
return AlphaBlend(hDC, x, y, cx, cy, hSrcDC, xSrc, ySrc, cxSrc, cySrc, bf);
}
希望对您有所帮助。
关于c++ - 使用 PlayEnhMetaFile 绘制带有 alpha channel 的增强图元文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9467290/
我正在将一些 C++ 代码移植到 VB.NET,它创建了一个包含多个页面的打印作业。每个页面都有一个图形对象(文本、直线、曲线等)模板,每个页面都保持相同,并且覆盖在每个页面之上的是每个页面的不同数据
我正在尝试仅使用 GDI 函数将包含透明区域的增强图元文件转换为 32 位位图。这可能获得正确的 alpha 值吗? 以下内容生成一个 32 位位图,每个像素的 alpha 值设置为 0: 首先,我使
我正在尝试将现有的 EMF 文件重播到另一个文件中并更改一些记录。对于初学者,我想将整个文档重播到另一个文档中,但生成的文档是空白的,而且分辨率比原始文档小得多。 HENHMETAFILE hEmf
我是一名优秀的程序员,十分优秀!