窗体背景的绘制(Windows窗体每次都会重绘其窗体背景,所以我们可以通过拦截窗体重绘背景的消息(WM_ERASEBKGND),并自定义方法来实现重绘窗体背景)
2023-09-11 14:19:08 时间
核心思想:由于Windows窗体每次都会重绘其窗体背景,所以我们可以通过拦截窗体重绘背景的消息(WM_ERASEBKGND),并自定义方法来实现重绘窗体背景。通过TImage组件也可以实现,但是重写WM_ERASEBKGND消息的效率更高一些,所以还是推荐使用这种方法。
(2)声明重绘背景消息响应函数
void fastcall OnWMEraseBkgnd(TWMEraseBkgnd& Msg);
(3)添加消息映射
BEGIN_MESSAGE_MAP
//拦截重画背景的事件
MESSAGE_HANDLER(WM_ERASEBKGND,TWMEraseBkgnd,OnWMEraseBkgnd);
END_MESSAGE_MAP(TForm);
//拦截重画背景的事件
MESSAGE_HANDLER(WM_ERASEBKGND,TWMEraseBkgnd,OnWMEraseBkgnd);
END_MESSAGE_MAP(TForm);
(4)编写自绘背景消息响应函数的代码
{
//重画背景
TCanvas* canvas = new TCanvas;
canvas->Handle = Msg.DC;
int cx = ClientWidth/bmpFormBK->Width + 1;
int cy = ClientHeight/bmpFormBK->Height + 1;
for (int i=0; i<cy; i++)
for (int j=0; j<cx; j++)
{
canvas->Draw(j*bmpFormBK->Width, i*bmpFormBK->Height,bmpFormBK); Msg.Result = true;
}
delete canvas;
}
http://www.cnblogs.com/songsu/articles/1336653.html
相关文章
- 牛 X ,这次 Windows 太给力了!!!
- Windows下Nexus 5的Android 5.0以上版本官方ROM的刷机教程
- windows bat命令 开启关闭Oracle服务
- 在windows上搭建镜像yum站的方法(附bat脚本)
- ONS C++ Windows SDK 调试方法及注意事项
- Linux挂载读取Windows分区文件及PVE 下挂载到虚拟机和LXC容器方法
- docker for windows--Windows 10 家庭中文版安装kali并配置更新源
- Windows静态库和动态库的调用方法汇总
- 下载Windows ISO镜像的方法
- Windows批处理(cmd/bat)常用命令小结
- 在windows电脑上配置kubectl远程操作kubernetes
- 2021-06-26 将dos格式文件转换成unix格式,即windows文件转换为linux下的文件
- MySQL——修改root密码的4种方法(以windows为例)
- 在Windows环境下使用hexo搭建博客以及部署到gitee / github
- Windows软件窗口跑到屏幕外移动方法
- Lua For windows 编辑器的使用
- Windows Azure下如何安装 MongoDb
- Running a Remote Desktop on a Windows Azure Linux VM (远程桌面到Windows Azure Linux )-摘自网络(试了,没成功 - -!)
- Windows下MySQL service manager数据库/mysqld.exe占用内存解决方法/Workbench 10061错误/Navicat 10038错误
- windows server 2016远程桌面进去,英文系统修改语言
- windows server 2012 设置IIS服务器定时自动重启的方法
- windows 下mysql每日定时备份的几种方法
- C/C++ Windows API——文件/文件夹创建、删除、移动及查看时间