源代码是这么写的:
HBITMAP CreateFloatButton1(HWND nParent)
{ HDC hDCDesktop = ::GetDC( nParent );
CRgn rgn;
HDC hDCBack = ::CreateCompatibleDC( hDCDesktop );//创建设备内存关联
HBITMAP hFloatBtn4 = ::CreateCompatibleBitmap(hDCDesktop , 81 , 23 ) ;//创建宽81 高 23的矩形位图
::SelectObject( hDCBack , hFloatBtn4 );
/*设置的81 x 23 矩形背景透明,可是没有效果
BLENDFUNCTION ftn = { 0 };
ftn.BlendOp = AC_SRC_OVER;
ftn.AlphaFormat = AC_SRC_ALPHA;
ftn.BlendFlags = 0;
ftn.SourceConstantAlpha =0;
AlphaBlend(hDCDesktop, 0, 0, 81, 23, hDCBack, 0, 0, 81, 23, ftn);
::SelectObject( hDCBack , hFloatBtn4 );
*/ rgn.CreateRoundRectRgn(0,0,82,24,10,10); //圆角矩形
::SelectObject(hDCBack,rgn); //这下面就别看了,伤神。
for( int i = 0 ; i < 23 ; i++)
{
for ( int j = 0 ; j < 81 ; j++)
SetPixel( hDCBack , j , i , m_colorBack) ;
} for ( int i = 0 ; i < 23 ; i ++)
{
SetPixel( hDCBack , 38 , i , RGB(255, 255, 255)) ;
SetPixel( hDCBack , 42 , i , RGB(255, 255, 255)) ;
}
::DeleteObject(hDCBack);
::ReleaseDC(nParent,hDCDesktop);
return hFloatBtn4;
}背景不能搞透明,我现在得到这样的图,注意4个角上的黑块,求助,怎么才能让生成的PNG图片透明。达到这种效果:
HBITMAP CreateFloatButton1(HWND nParent)
{ HDC hDCDesktop = ::GetDC( nParent );
CRgn rgn;
HDC hDCBack = ::CreateCompatibleDC( hDCDesktop );//创建设备内存关联
HBITMAP hFloatBtn4 = ::CreateCompatibleBitmap(hDCDesktop , 81 , 23 ) ;//创建宽81 高 23的矩形位图
::SelectObject( hDCBack , hFloatBtn4 );
/*设置的81 x 23 矩形背景透明,可是没有效果
BLENDFUNCTION ftn = { 0 };
ftn.BlendOp = AC_SRC_OVER;
ftn.AlphaFormat = AC_SRC_ALPHA;
ftn.BlendFlags = 0;
ftn.SourceConstantAlpha =0;
AlphaBlend(hDCDesktop, 0, 0, 81, 23, hDCBack, 0, 0, 81, 23, ftn);
::SelectObject( hDCBack , hFloatBtn4 );
*/ rgn.CreateRoundRectRgn(0,0,82,24,10,10); //圆角矩形
::SelectObject(hDCBack,rgn); //这下面就别看了,伤神。
for( int i = 0 ; i < 23 ; i++)
{
for ( int j = 0 ; j < 81 ; j++)
SetPixel( hDCBack , j , i , m_colorBack) ;
} for ( int i = 0 ; i < 23 ; i ++)
{
SetPixel( hDCBack , 38 , i , RGB(255, 255, 255)) ;
SetPixel( hDCBack , 42 , i , RGB(255, 255, 255)) ;
}
::DeleteObject(hDCBack);
::ReleaseDC(nParent,hDCDesktop);
return hFloatBtn4;
}背景不能搞透明,我现在得到这样的图,注意4个角上的黑块,求助,怎么才能让生成的PNG图片透明。达到这种效果:
我是本版版主
此帖已多日无人关注
请您及时结帖
如您认为问题没有解决可按无满意结帖处理
另外本版设置了疑难问题汇总帖
并已在版面置顶
相关规定其帖子中有说明
您可以根据规定提交您帖子的链接
如您目前不想结帖只需回帖说明
我们会删除此结帖通知见此回复三日内无回应
我们将强制结帖
相关规定详见界面界面版关于版主结帖工作的具体办法