在C++ MFC应用程序中.使用dc 的(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.
}
Run Code Online (Sandbox Code Playgroud)
你需要研究GDI +.它有点像faff但你可以创建一个"Graphics"对象,如下所示:
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 );
Run Code Online (Sandbox Code Playgroud)
别忘了做
#include <gdiplus.h>
Run Code Online (Sandbox Code Playgroud)
和打电话
GdiplusStartup(...);
Run Code Online (Sandbox Code Playgroud)
某处:)
你会发现它非常类似于你的C#代码;)
值得注意的是,你在你的FromArgb代码中放入的75 并没有设置75%的alpha,它实际上设置了75/255 alpha或~29%alpha.