社区
嵌入开发(WinCE)
帖子详情
CE上如何实现对话框背景半透明?
w12
2004-07-02 05:49:18
试了很多PC上的方法,都没有效果,难道不行吗?
...全文
333
13
打赏
收藏
CE上如何实现对话框背景半透明?
试了很多PC上的方法,都没有效果,难道不行吗?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
13 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
w12
2004-07-09
打赏
举报
回复
谢谢,也可能没有其它更快的办法了。
载舟之水
2004-07-08
打赏
举报
回复
补充一下,半透明其实不需要每个象素都算一次,可以跳跃,只要眼睛认为是半透明就行了。
ricky460
2004-07-07
打赏
举报
回复
mark 。 。 。
buptpki
2004-07-07
打赏
举报
回复
摘录一段别人实现的代码,可能对你有帮助,
做两个BMP,一个是背景图,一个是有蒙板的图。
下面这个函数用来显示透明位图,关键是最后一个参数,它提供了蒙板的颜色。在调用下面这个函数前先可以定义mask颜色
COLORREF crMask = RGB(0x00,0x00,0xff); //mask颜色
这里的MASK颜色是纯蓝色,其实是一个需要显示透明位图的文件里没有使用过的颜色,你需要在那个BMP文件中把透明部分都填成这种蓝色。然后调用下面这个TransparentBlt2函数即可,比如:
TransparentBlt2(hdc,IMAGEX_KONGXI*3+IMAGEX*2, IMAGEY_SHANG*2+IMAGEY+IMAGEY_XIA,24, 24,hMemDC,0,0,24,24,crMask);
void TransparentBlt2( HDC hdcDest, // 目标DC
int nXOriginDest, // 目标X偏移
int nYOriginDest, // 目标Y偏移
int nWidthDest, // 目标宽度
int nHeightDest, // 目标高度
HDC hdcSrc, // 源DC
int nXOriginSrc, // 源X起点
int nYOriginSrc, // 源Y起点
int nWidthSrc, // 源宽度
int nHeightSrc, // 源高度
UINT crTransparent // 透明色,COLORREF类型
)
{
HBITMAP hOldImageBMP, hImageBMP = CreateCompatibleBitmap(hdcDest, nWidthDest, nHeightDest); // 创建兼容位图
HBITMAP hOldMaskBMP, hMaskBMP = CreateBitmap(nWidthDest, nHeightDest, 1, 1, NULL); // 创建单色掩码位图
HDC hImageDC = CreateCompatibleDC(hdcDest);
HDC hMaskDC = CreateCompatibleDC(hdcDest);
hOldImageBMP = (HBITMAP)SelectObject(hImageDC, hImageBMP);
hOldMaskBMP = (HBITMAP)SelectObject(hMaskDC, hMaskBMP);
// 将源DC中的位图拷贝到临时DC中
if (nWidthDest == nWidthSrc && nHeightDest == nHeightSrc)
BitBlt(hImageDC, 0, 0, nWidthDest, nHeightDest, hdcSrc, nXOriginSrc, nYOriginSrc, SRCCOPY);
else
StretchBlt(hImageDC, 0, 0, nWidthDest, nHeightDest,
hdcSrc, nXOriginSrc, nYOriginSrc, nWidthSrc, nHeightSrc, SRCCOPY);
// 设置透明色
SetBkColor(hImageDC, crTransparent);
// 生成透明区域为白色,其它区域为黑色的掩码位图
BitBlt(hMaskDC, 0, 0, nWidthDest, nHeightDest, hImageDC, 0, 0, SRCCOPY);
// 生成透明区域为黑色,其它区域保持不变的位图
SetBkColor(hImageDC, RGB(0,0,0));
SetTextColor(hImageDC, RGB(255,255,255));
BitBlt(hImageDC, 0, 0, nWidthDest, nHeightDest, hMaskDC, 0, 0, SRCAND);
// 透明部分保持屏幕不变,其它部分变成黑色
SetBkColor(hdcDest,RGB(0xff,0xff,0xff));
SetTextColor(hdcDest,RGB(0,0,0));
BitBlt(hdcDest, nXOriginDest, nYOriginDest, nWidthDest, nHeightDest, hMaskDC, 0, 0, SRCAND);
// "或"运算,生成最终效果
BitBlt(hdcDest, nXOriginDest, nYOriginDest, nWidthDest, nHeightDest, hImageDC, 0, 0, SRCPAINT);
SelectObject(hImageDC, hOldImageBMP);
DeleteDC(hImageDC);
SelectObject(hMaskDC, hOldMaskBMP);
DeleteDC(hMaskDC);
DeleteObject(hImageBMP);
DeleteObject(hMaskBMP);
}
buptpki
2004-07-07
打赏
举报
回复
实现归实现,可惜效率不高。如果区域大,就要等上好几秒钟。
不错,确实存在这个问题,但是这个算法还是可以优化,具体实现参考游戏的做法,采用游戏API,这是DirectX没有出现时,微软提供的一个临时解决办法,这些API在动态链接库gx.dll中,可以直接操作视频缓冲区,速度大大提高,在Smartphone, pocketpc的SDK中有相关的源代码。
载舟之水
2004-07-06
打赏
举报
回复
应该不会,你的算法需要优化
w12
2004-07-06
打赏
举报
回复
实现归实现,可惜效率不高。如果区域大,就要等上好几秒钟。
lqlq99612
2004-07-05
打赏
举报
回复
nbcool(载舟之水),说详细一点撒,贴写代码上来我也想看看
载舟之水
2004-07-05
打赏
举报
回复
我这里的alpha 是指图像半透明叠加象素处理
具体的做法。参考我的C友:buptpki 的回答
http://community.csdn.net/Expert/topic/2899/2899695.xml?temp=.6300012
w12
2004-07-05
打赏
举报
回复
不支持alpha吧。
载舟之水
2004-07-03
打赏
举报
回复
你在WM_PAINT中做alpha混合不就行了
jiayodo
2004-07-03
打赏
举报
回复
gz
101monster
2004-07-02
打赏
举报
回复
呵呵,UP!
pyqt5 各种基础组件使用方式(一)
本文详细介绍PyQt5中各种基础组件的使用方法,包括窗口管理、常用控件如按钮、文本输入等,以及复杂控件如表格、树形结构等,并展示了如何使用PyQt5与JavaScript交互。
告别ImageJ!用Klayout直接画图的3个高阶技巧(含图层管理秘籍)
本文介绍Klayout在微纳加工版图设计中的三大高阶应用:基于已知特征的图片精准坐标标定与对齐;支持非90度精确定位旋转、批量阵列生成及Ruby参数化绘图;面向多层复杂设计的图层命名规范、分组管理和版本差异可视化。所有技巧均服务于从SEM/仿真图到GDSII文件的一站式高效转化,显著减少跨工具链误差。
foobar2000个性化引擎与体验优化完全指南
本文系统讲解foobox-cn为foobar2000提供的DUI(自定义用户界面)个性化引擎,涵盖动态主题切换、模块化面板布局、增强型元数据展示三大核心能力;详解夜间聆听与工作
背景
音乐两类典型场景配置;深入解析高级封面操作、智能播放列表筛选及主题快速切换等隐藏功能;并提供性能优化、界面复位、组件兼容性等避坑方案,以及内置/社区/自制三类资源拓展路径。
【AI赋能科研绘图】从数据到Nature级可视化的全流程实战(数据清洗、图表推荐、智能标注、期刊适配)
本文介绍AI赋能科研数据可视化的完整工作流,涵盖智能数据清洗(自动化诊断与特征工程)、图表推荐(基于数据维度、分布及样本量的匹配)、智能标注(统计检验与语义注释一体化)、期刊格式自动适配(200+模板、多版本管理)四大核心技术模块,并通过肿瘤免疫研究案例验证其高效性与可靠性,显著提升Nature级图表产出效率。
面向GPT-5能力预期的高阶使用协议框架
本文提出一套面向GPT-5能力预期的高阶人机协作协议框架,基于GPT-4o实测表现与技术演进趋势,聚焦意图显性化、过程可追溯、结果可证伪与责任边界四大核心约定。框架强调将人类专业判断编码为可复用、可验证、可自动校验的协议模块,依托现有工具链(如DSPy、LangChain、Weaviate)
实现
渐进式升级,不依赖未发布模型特性,全部可在GPT-4o环境中立即部署与压测。
嵌入开发(WinCE)
19,523
社区成员
41,565
社区内容
发帖
与我相关
我的任务
嵌入开发(WinCE)
硬件/嵌入开发 嵌入开发(WinCE)
复制链接
扫一扫
分享
社区描述
硬件/嵌入开发 嵌入开发(WinCE)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章