wxWidgets第五课 EVT_SIZE窗口修改事件
发表于:2025-01-30 作者:千家信息网编辑
千家信息网最后更新 2025年01月30日,说明当父窗口的大小发生改变的时候,父窗口的OnSize函数优先调用,然后遍历子窗口的OnSize函数。在自定义控件,并且实现随着父窗口的大小,进行伸缩变换,可以创建一个比例尺因子,根据父窗口当前的大小
千家信息网最后更新 2025年01月30日wxWidgets第五课 EVT_SIZE窗口修改事件
说明
当父窗口的大小发生改变的时候,父窗口的OnSize函数优先调用,然后遍历子窗口的OnSize函数。在自定义控件,并且实现随着父窗口的大小,进行伸缩变换,可以创建一个比例尺因子,根据父窗口当前的大小,在父窗口的OnSize函数中调用子控件的两个方法进行子控件大小和位置的调整:
SetPosition设置子控件的位置
SetClientSize设置子控件的大小
问题
为了能够实现界面的拉伸,当窗口发生改变的时候,发出重绘事件(OnSize会调用OnPaint)进行界面的刷新,可以看到在快速伸缩窗口的情况下,非常明显看到闪烁的情况。
解析
在系统设置最佳的外观性能要求,拉伸界面的边框,会出现虚拟边框,等到鼠标弹起的时候,才会重新渲染界面,避免了闪烁。在其他的外观选项下,拉伸界面边框的时候,实时的渲染,会产生闪烁现象
真正自定义渲染
目前想到的一个解决方案:当鼠标按下拖动窗口的时候,并不进行窗口的重绘,而是等到鼠标弹起的时候,才进行重绘,这里就涉及到一个难点,该在什么地方关联鼠标弹起事件EVT_LEFT_UP,并且需要实时控制边框的渲染
注意
当父控件销毁的时候,也会调用子控件的析构函数,对子控件进行销毁
两次进入OnSize函数的问题
启动程序,在准备进入到主界面,渲染自定义的控件时候,检测到有两次进入到OnSize函数,导致界面在进入的时候,渲染了两次,目前不清楚是什么地方发送了两次WM_ONSIZE消息,导致该问题
怀疑方向
1 是否是设置了父窗口指针:证实必须提供一个父窗口的指针
2 是否是设置了扩展属性WX_EXPAND:没有理由根据
控件
时候
界面
函数
大小
边框
鼠标
问题
事件
位置
地方
外观
实时
情况
指针
明显
清楚
两个
因子
对子
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
6.1网络安全课件
自学网络安全需要哪些知识
数据库系统可以减少
谷歌安装服务器发生错误
软件开发笔试题 答案
x86架构服务器采用指令集类型
武汉网络技术支持
益阳网络技术员
数据库应用技术考试答案
厦门软件开发百度贴吧
数据库地址ping不通
现任公安部网络安全局局长
数据库升本湖北
网络安全法自哪日起实施
bdai代表的网络安全事件
计算机网络技术算法程序
软件工程软件开发过程
戴尔服务器r430
南大通用数据库教程
nas服务器连接局域网
罪恶都市怎么切换服务器
杭州市东信网络技术有限公司
网络安全的征文4年级
软件开发社团
斑马互联网科技有限公司
广东工控软件开发定制
深圳市蓝瑜互联网科技
软件开发怎么运营推广
数据库技术项目化教程答案
福吉德网络技术