Delphi不规则窗体绘制技巧
Delphi 的窗体控件不只是矩形,其实你完全可以玩点花样,做出各种奇形怪状的 UI。不规则窗体就是个挺实用的技巧,尤其是你想做点酷炫界面,比如像播放器、启动器这种窗口不规则但又有辨识度的应用。
整个思路就是用GDI(或GDI+)绘一张图,拿它当窗体的轮廓。再通过SetWindowRgn
把窗体裁成这个形状,配合上WM_NCCALCSIZE
消息,就能实现任意形状的窗体边界了。
而为了让交互更自然,还加了个淡入淡出的效果,用TTimer
配合AlphaBlend
就能搞定。每次定时器触发,就调整一下窗体透明度,看起来就像慢慢显示/隐藏一样。整个过程响应快,视觉也舒服。
整个项目你可以从Delphi_不规则窗体
里扒代码研究,代码不难,逻辑也清晰。基本流程:窗体创建时启用定时器、双击关闭、重写消息、定时调节透明度。用的都是 Delphi 原生 API,没有额外依赖,稳定性也挺高。
如果你对 Delphi 界面开发感兴趣,或者想做点炫酷 UI,不妨看看这篇相关教程:不规则窗体_异形窗体_透明窗体_PNG 图片 Delphi,讲得也比较细。
哦对,透明窗体开发要注意:别在 Alpha 太低时响应用户操作,不然窗体还没完全出来用户就点没了。
如果你正好在用 Delphi 做桌面工具,或者 UI 风格想搞点差异化的效果,这个资源还挺值得一试。
349.61KB
文件大小:
评论区