主要是想可以一直看着一张图,类似于snipaste的贴图,在缩放上额外做了比例的计算,效果和现在大多数网页的自适应背景图一致,写死了居中适应。
主要是snipaste没有自适应这块,就另外再写了。
源码写的比较乱,因为只是自己写着玩的玩具。用了精易模块的一条命令,用的黑月界面类模块。
新手向,看源码的话大概能了解这么几种代码:
1. 黑月界面类的创建窗口、菜单(其他组件同理),事件的处理
2. GDI+画图形、图像、文字,包括图像的缩放、文字实际画出的宽度高度,双缓冲绘图
3. 多线程的简单应用
4. 文件对话框的简单应用5. 载入图片加了三种方式,拖放、文件对话框、拖动图片到程序图标使用命令行读取(命令行启动同样)
6. 窗口无边框调整窗口大小
还有一些窗口消息的部分,剩下的还有啥我也忘了。
有类似的需求的自己拿去用。
有这么几个问题:
1. 另外黑月界面类的窗口的创建完毕事件没有触发,我不确定是不是哪里出现了变动导致失效。易语言自带的窗口事件正常。我在源码中用窗口的第一次重绘消息替代了创建完毕的部分。
2. 调试时,超过2K的图片,或者图片放大超过2K时,在我电脑上依旧会闪屏。做了一些不恰当的处理,有效果但不大。
3. 非调试时3K的图片在拖动窗口时会有明显的闪烁,应该是事件触发太快,绘制时间的原因,GDI+不强求,有需求的自行处理。
4. 窗口的圆角会限制窗口绘制的区域,所以在开启圆角时拖动窗口变大时,在松开鼠标之前窗口只会绘制一部分,我暂时没想到什么好的解决方案。也是做了一些不恰当的处理,每次触发事件时重新限制窗口绘制的区域,有效果,但是效果不大,也不应该这么处理。
不过满足我个人的需求没什么问题。