rust - 了解 FLTK 中的小部件损坏
问题描述
因为我对 fltk 内置 Scroll 组的样式不满意,所以我想创建自己的滚动组组件,具有类似的功能。阅读 的源代码FL_Scroll
,我了解到“屏蔽”滚动组子项中不需要的部分的过程涉及使用 fltk 的损坏功能。我发现小部件损坏是一个难以理解的概念。似乎它与小部件的绘制方式有关,但我不明白它如何用于有选择地绘制小部件的一部分。
根据 and 的fltk -rs 文档,损坏似乎是某种开/关状态,例如.WidgetExt::set_damage()
WidgetExt::damage()
set_resizeable()
然而在FLTK 文档中,我看到了这个定义:
When redrawing your widgets you should look at the damage bits to see what parts of your widget need redrawing.
The handle() method can then set individual damage bits to limit the amount of drawing that needs to be done:
MyClass::handle(int event) {
...
if (change_to_part1) damage(1);
if (change_to_part2) damage(2);
if (change_to_part3) damage(4);
}
MyClass::draw() {
if (damage() & fltk::DAMAGE_ALL) {
... draw frame/box and other static stuff ...
}
if (damage() & (fltk::DAMAGE_ALL | 1)) draw_part1();
if (damage() & (fltk::DAMAGE_ALL | 2)) draw_part2();
if (damage() & (fltk::DAMAGE_ALL | 4)) draw_part3();
}
这种描述使小部件损坏似乎是指有关小部件的某种字节数据数组。我猜是滚动组,您只想在滚动组的区域内绘制字节数据。但是这个字节数据存储在哪里呢?如何访问它?损坏与这些数据有什么关系?
解决方案
推荐阅读
- http - 用户名密码在 URL 中的作用是什么?
- javascript - 谷歌地图不显示,HTML
- kubernetes - 使用 Bastion SSH 到 Kubernetes pod
- karate - 如何在空手道中参数化来自詹金斯的黄瓜选项标签
- c++ - Opencv 从缓冲区写入和读取
- javascript - 用值初始化 Guard
- javascript - Chrome [VM] 文件在每次加载时创建事件处理程序
- python - 计算熊猫数据框中的摘要行
- php - mysqli_fetch_assoc() 在响应版本中不返回任何内容
- php - preg_replace 用于字符串中的“phpbb”报价和颜色标签