gpt4 book ai didi

C++ MFC如何绘制Alpha透明矩形

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:17:35 26 4
gpt4 key购买 nike

在 C++ MFC 应用程序中。使用 dc of ( CPaintDC dc(this); )

我如何绘制一个矩形 (LPRECT),它具有我可以调整的 alpha 透明度。?

以下是我需要将其转换为 C++ 的示例 C#

private void pictureBox1_Paint(object sender, PaintEventArgs e)  
{
Graphics g = e.Graphics;
Color color = Color.FromArgb(75,Color.Red); //sets color Red with 75% alpha transparency

Rectangle rectangle = new Rectangle(100,100,400,400);
g.FillRectangle(new SolidBrush(color), rectangle); //draws the rectangle with the color set.
}

最佳答案

您需要研究 GDI+。这有点麻烦,但您可以创建一个“图形”对象,如下所示:

Gdiplus::Graphics g( dc.GetSafeHdc() );
Gdiplus::Color color( 192, 255, 0, 0 );

Gdiplus::Rect rectangle( 100, 100, 400, 400 );
Gdiplus::SolidBrush solidBrush( color );
g.FillRectangle( &solidBrush, rectangle );

不要忘记做

#include <gdiplus.h>

并调用

 GdiplusStartup(...);

某处:)

您会注意到它与您的 C# 代码非常相似 ;)

值得注意的是,您在 FromArgb 代码中输入的 75 并未设置 75% alpha,它实际上设置了 75/255 alpha 或 ~29% alpha。

关于C++ MFC如何绘制Alpha透明矩形,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4087650/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com