当前位置: 首页 > news >正文

GUI之绘画控制

一、绘制的动力

GUI的绘画是根据消息动作驱动的

主循环应该是

 

二、绘制的过程

绘画过程应该是这样的:

首先窗口存在上下层关系->

在绘制时应该从底部窗口开始绘制,逐一绘制

下面是一些特殊的窗口

1.(模态窗口)需要显示在前面的 不受其他窗口影响的 窗口

  该类窗口另外管理,在绘制完前面的窗口后再按照这个数据类中的顺序进行逐一绘制

2.popup与dialog弹出框

  对于GUI说,两者区别在于popup窗口需要保存当前界面的样子,而dialog会实时变化

 

三、特殊的显示效果接口

× 组件的hide/show操作:

1.show: 这个比较简单,设置对应属性,下次绘制的时候进行绘制就能实现show效果

2.hide:由于要考虑到实际显示时各个组件的包含关系,比较复杂。

大致的hide逻辑如下

(1)如果hide的对象是window,查询有没有在它下面的window,并从最前面的window查找哪个是被该window沾边或包含的,刷新两个window之间的window

(2)如果hide的对象是widget,

①如果是聚焦窗口中的组件

刷新其容器父组件,刷新被该组件覆盖的所有组件,刷新覆盖组件所沾边或包含的所有组件

②如果是非聚焦窗口的组件

刷新该组件所在的window以及其上的所有window

 

转载于:https://www.cnblogs.com/chencesc/p/5777328.html

相关文章:

  • jmc远程监控java服务
  • 制作根文件系统的经验
  • SharePoint UserProfileService 接口列表 注解
  • Liferay 6.2 改造系列之二十二:如何发布WAR包
  • 关于投资那些事
  • FreeRTOS下的串口编程
  • YII2.0邮箱发送
  • 格式是否正确输入年、月、日判断
  • Learn GIT
  • Redis常用命令入门4:集合类型
  • 工作反思
  • 特殊数列的求和
  • wireshark 导出所有filter出来的包
  • TWRP基于omnirom 6.0.1编译教程
  • Django知识(二)
  • 【个人向】《HTTP图解》阅后小结
  • ES6之路之模块详解
  • IndexedDB
  • isset在php5.6-和php7.0+的一些差异
  • Java,console输出实时的转向GUI textbox
  • Redis 中的布隆过滤器
  • Redis中的lru算法实现
  • vue.js框架原理浅析
  • Vue实战(四)登录/注册页的实现
  • 笨办法学C 练习34:动态数组
  • 翻译--Thinking in React
  • 检测对象或数组
  • 简单实现一个textarea自适应高度
  • 前端路由实现-history
  • 微服务框架lagom
  • 为视图添加丝滑的水波纹
  • 小白应该如何快速入门阿里云服务器,新手使用ECS的方法 ...
  • ​七周四次课(5月9日)iptables filter表案例、iptables nat表应用
  • #if和#ifdef区别
  • (2022版)一套教程搞定k8s安装到实战 | RBAC
  • (android 地图实战开发)3 在地图上显示当前位置和自定义银行位置
  • (Note)C++中的继承方式
  • (附源码)ssm失物招领系统 毕业设计 182317
  • (论文阅读笔记)Network planning with deep reinforcement learning
  • (七)微服务分布式云架构spring cloud - common-service 项目构建过程
  • (十六)串口UART
  • (十一)手动添加用户和文件的特殊权限
  • (学习日记)2024.01.19
  • (转)Scala的“=”符号简介
  • (转)原始图像数据和PDF中的图像数据
  • .CSS-hover 的解释
  • .NET CORE 第一节 创建基本的 asp.net core
  • .Net 访问电子邮箱-LumiSoft.Net,好用
  • .net 提取注释生成API文档 帮助文档
  • .NET面试题(二)
  • @transaction 提交事务_【读源码】剖析TCCTransaction事务提交实现细节
  • [20161101]rman备份与数据文件变化7.txt
  • [AI]文心一言爆火的同时,ChatGPT带来了这么多的开源项目你了解吗
  • [AIGC] 如何建立和优化你的工作流?
  • [bzoj2957]楼房重建