我在MFC对话框中添加一张大的位图作为背景,然后又添加了一张位图,但是第二次添加的位图有白边。

怎么不让白边遮挡背景位图。(也就是说怎么去掉白边)。
2025-01-05 14:52:28
推荐回答(3个)
回答1:

要明确两个情况:

  1. 如果原图上没有这个白边,那么是你代码问题,检查位图编解码代码和位图控制代码,这个要根据实际代码分析。

  2. 如果原图自带的白边(或者说白色区域)需要透明(通常是非规则图形需要),那么,关注一下API函数TransparentBlt

BOOL TransparentBlt(HDC hdcDest, int nXOriginDest, int

 nYOriginDest, int nWidthDest, int hHeightDest, HDC hdcSrc, int 

nXOriginSrc, int nYOriginSrc, int nWidthSrc, int nHeightSrc, UINT 

crTransparent);

参数: 

hdcDest:指向目标设备环境的句柄。 

nXOriginDest:指定目标矩形左上角的X轴坐标,坐标以逻辑单位表示。 

nYOriginDest:指定目标矩形左上角的Y轴坐标,坐标以逻辑单位表示。 

nWidthDest:指定目标矩形的宽度。 

nHeightDest:指定目标矩形的高度。 

hdcsrc:指向源设备环境的句柄。 

nXOriginSrc:指定源矩形(左上角)的X轴坐标,坐标以逻辑单位表示。 

nYOriginsrc:指定源矩形(左上角)的Y轴坐标,坐标以逻辑单位表示。 

nWidthSrc:指定源矩形的宽度。 

nHeightSrc:指定源矩形的高度。

crTransparent:源位图中的RGB值当作透明颜色。

回答2:

把效果图贴出来看看

回答3:

什么事吃货大食堂呢