BCB代码转C或C#
刚刚开始学windows程序设计。
代码如下,希望有高手能帮忙解决。
BLENDFUNCTION blend ;
TPoint P ;
TSize S ;
int X, Y;
Graphics::TBitmap *TempBmpRGBA ;
byte Alpha ;
PRGBQuad Linia32 ;
PRGBQuad Linia32RGBA ;
Graphics::TBitmap *bmpRGBA = Form1->Image1->Picture->Bitmap;
try
{
TempBmpRGBA = new Graphics::TBitmap();
try
{
TempBmpRGBA->Width = bmpRGBA->Width;
TempBmpRGBA->Height = bmpRGBA->Height;
TempBmpRGBA->PixelFormat = pf32bit;
for( Y = 0 ;Y<TempBmpRGBA->Height;Y++)
{
Linia32RGBA = (PRGBQuad)bmpRGBA->ScanLine[Y];
Linia32 = (PRGBQuad)TempBmpRGBA->ScanLine[Y];
for( X = 0;X<TempBmpRGBA->Width;X++)
{
if( PtInRegion(Region, X, Y))
{
Alpha = 0;
}
else
{
Alpha = Linia32RGBA->rgbReserved;
}
Linia32->rgbRed = MulDiv(Linia32RGBA->rgbRed, Alpha, 255);
Linia32->rgbGreen = MulDiv(Linia32RGBA->rgbGreen, Alpha, 255);
Linia32->rgbBlue = MulDiv(Linia32RGBA->rgbBlue, Alpha, 255);
Linia32->rgbReserved = Alpha;
Linia32++;
Linia32RGBA++;
}
}
P = Point(0, 0);
S.cx = bmpRGBA->Width;
S.cy = bmpRGBA->Height;
blend.BlendOp = AC_SRC_OVER;
blend.BlendFlags = 0;
blend.AlphaFormat = AC_SRC_ALPHA;
blend.SourceConstantAlpha = 255;
UpdateLayeredWindow(Hnd, GetDC(0), NULL, &S,
TempBmpRGBA->Canvas->Handle, &P, 0,
&blend, ULW_ALPHA);
}__finally
{
delete TempBmpRGBA;
TempBmpRGBA = NULL;
}
}__finally
{
}
代码如下,希望有高手能帮忙解决。
BLENDFUNCTION blend ;
TPoint P ;
TSize S ;
int X, Y;
Graphics::TBitmap *TempBmpRGBA ;
byte Alpha ;
PRGBQuad Linia32 ;
PRGBQuad Linia32RGBA ;
Graphics::TBitmap *bmpRGBA = Form1->Image1->Picture->Bitmap;
try
{
TempBmpRGBA = new Graphics::TBitmap();
try
{
TempBmpRGBA->Width = bmpRGBA->Width;
TempBmpRGBA->Height = bmpRGBA->Height;
TempBmpRGBA->PixelFormat = pf32bit;
for( Y = 0 ;Y<TempBmpRGBA->Height;Y++)
{
Linia32RGBA = (PRGBQuad)bmpRGBA->ScanLine[Y];
Linia32 = (PRGBQuad)TempBmpRGBA->ScanLine[Y];
for( X = 0;X<TempBmpRGBA->Width;X++)
{
if( PtInRegion(Region, X, Y))
{
Alpha = 0;
}
else
{
Alpha = Linia32RGBA->rgbReserved;
}
Linia32->rgbRed = MulDiv(Linia32RGBA->rgbRed, Alpha, 255);
Linia32->rgbGreen = MulDiv(Linia32RGBA->rgbGreen, Alpha, 255);
Linia32->rgbBlue = MulDiv(Linia32RGBA->rgbBlue, Alpha, 255);
Linia32->rgbReserved = Alpha;
Linia32++;
Linia32RGBA++;
}
}
P = Point(0, 0);
S.cx = bmpRGBA->Width;
S.cy = bmpRGBA->Height;
blend.BlendOp = AC_SRC_OVER;
blend.BlendFlags = 0;
blend.AlphaFormat = AC_SRC_ALPHA;
blend.SourceConstantAlpha = 255;
UpdateLayeredWindow(Hnd, GetDC(0), NULL, &S,
TempBmpRGBA->Canvas->Handle, &P, 0,
&blend, ULW_ALPHA);
}__finally
{
delete TempBmpRGBA;
TempBmpRGBA = NULL;
}
}__finally
{
}
...全文
相关推荐
GPIB卡控制源码(包括vb,c#,vb.net,labview,bcb,Delphi,vc)
通过调用这些函数,开发者可以发送命令、读取数据或控制设备状态。2. **C#**:作为.NET框架的一部分,C#提供了更现代的语法和更强大的类型系统。
加密狗软件加密例子bcb,VC,c#,jsp,delphi
在C#中,可以使用P/Invoke技术调用C/C++编写的加密狗驱动。首先创建一个C++/CLI项目,封装加密狗的C++接口,然后在C#项目中引用这个接口。
vc,delphi,bcb,asp,asp.net,c#调用vc写的com的例子
标题和描述提到的是如何使用多种编程语言,如VC(Visual C++)、Delphi、BCB(Borland C++ Builder)、ASP(Active Server Pages)、ASP.NET和
C++ Formatter for BCB6
Artistic Style是一款开源的源代码格式化器,支持C, C++, C++/CLI, Objective-C, C# 和 Java等语言。
这是关于BCB串口最经典的一篇文章
- **代码示例**: - 提供了部分初始化代码示例,展示了如何创建窗体和启动应用程序。 - 示例代码中包含了异常处理机制,确保程序能够稳定运行。#### 6.


