wxWidgets第五课 EVT_SIZE窗口修改事件

简介:

说明

    当父窗口的大小发生改变的时候,父窗口的OnSize函数优先调用,然后遍历子窗口的OnSize函数。在自定义控件,并且实现随着父窗口的大小,进行伸缩变换,可以创建一个比例尺因子,根据父窗口当前的大小,在父窗口的OnSize函数中调用子控件的两个方法进行子控件大小和位置的调整:

SetPosition设置子控件的位置

SetClientSize设置子控件的大小


问题

为了能够实现界面的拉伸,当窗口发生改变的时候,发出重绘事件(OnSize会调用OnPaint)进行界面的刷新,可以看到在快速伸缩窗口的情况下,非常明显看到闪烁的情况。


解析

在系统设置最佳的外观性能要求,拉伸界面的边框,会出现虚拟边框,等到鼠标弹起的时候,才会重新渲染界面,避免了闪烁。在其他的外观选项下,拉伸界面边框的时候,实时的渲染,会产生闪烁现象


真正自定义渲染

目前想到的一个解决方案:当鼠标按下拖动窗口的时候,并不进行窗口的重绘,而是等到鼠标弹起的时候,才进行重绘,这里就涉及到一个难点,该在什么地方关联鼠标弹起事件EVT_LEFT_UP,并且需要实时控制边框的渲染



注意

    当父控件销毁的时候,也会调用子控件的析构函数,对子控件进行销毁


两次进入OnSize函数的问题

    启动程序,在准备进入到主界面,渲染自定义的控件时候,检测到有两次进入到OnSize函数,导致界面在进入的时候,渲染了两次,目前不清楚是什么地方发送了两次WM_ONSIZE消息,导致该问题


怀疑方向

    1 是否是设置了父窗口指针:证实必须提供一个父窗口的指针

    2 是否是设置了扩展属性WX_EXPAND:没有理由根据






     本文转自fengyuzaitu 51CTO博客,原文链接http://blog.51cto.com/fengyuzaitu/1954791:,如需转载请自行联系原作者
相关文章
|
监控 Java
并发编程 - 利用Event Bus模式实现目录文件变化捕捉
并发编程 - 利用Event Bus模式实现目录文件变化捕捉
61 0
|
前端开发
【React工作记录五十三】键盘绑定按下事件
【React工作记录五十三】键盘绑定按下事件
153 0
Revit空闲事件(Idling Event)增强和外部事件(External Event)
Revit空闲事件(Idling Event)增强和外部事件(External Event)
Revit空闲事件(Idling Event)增强和外部事件(External Event)
|
前端开发
前端工作总结142-element上传组件时候的钩子--event里面有数据参数
前端工作总结142-element上传组件时候的钩子--event里面有数据参数
83 0
前端工作总结142-element上传组件时候的钩子--event里面有数据参数
|
前端开发
#yyds干货盘点# 【React工作记录五十三】键盘绑定按下事件
#yyds干货盘点# 【React工作记录五十三】键盘绑定按下事件
113 0
#yyds干货盘点# 【React工作记录五十三】键盘绑定按下事件
还在使用Window原始的CMD界面?教你一招进行界面完美优化(下)
还在使用Window原始的CMD界面?教你一招进行界面完美优化
144 0
还在使用Window原始的CMD界面?教你一招进行界面完美优化(下)
|
大数据 开发工具 git
还在使用Window原始的CMD界面?教你一招进行界面完美优化(上)
还在使用Window原始的CMD界面?教你一招进行界面完美优化
456 0
还在使用Window原始的CMD界面?教你一招进行界面完美优化(上)
|
C# 数据安全/隐私保护 Windows
WPF Event 在 Command 中的应用初级篇,支持所有Event 展示松耦合设计的全部代码 - 解决TextBoxBase.TextChanged或者TextBox.TextChanged等类似事件绑定问题。
原文:WPF Event 在 Command 中的应用初级篇,支持所有Event 展示松耦合设计的全部代码 - 解决TextBoxBase.TextChanged或者TextBox.TextChanged等类似事件绑定问题。
1348 0
|
Windows
WPF- 模拟触发Touch Events
原文:WPF- 模拟触发Touch Events 基于API: [DllImport("User32.dll")] public static extern bool InitializeTouchI...
1191 0
|
Windows
背水一战 Windows 10 (68) - 控件(控件基类): UIElement - Pointer 相关事件, Tap 相关事件, Key 相关事件, Focus 相关事件
原文:背水一战 Windows 10 (68) - 控件(控件基类): UIElement - Pointer 相关事件, Tap 相关事件, Key 相关事件, Focus 相关事件 [源码下载] 背水一战 Windows 10 (68) - 控件(控件基类): UIElement - Poin...
1223 0