- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
窗口解析
窗口绘制
当一个窗口需要重绘的时候,它将收到两个事件,
wxEVT_ERASE_BACKGROUND 事件用于通知应用程序重新绘制背景,
wxEVT_PAINT 则用于通知重新绘制前景。
颜色和字体
每一个窗口都有一个前景色和一个背景色。 默认的背景擦除函数会使用背景色来
清除窗口背景,如果没有设置背景色,则会使用当前的系统皮肤推 荐的颜色进
行背景的清除。前景色则相对来说很少被用到。
改变大小
当一个窗口的大小, 无论是来自用户还是应用程序本身的原因, 发生变化时, 它
将收到一个 wxEVT_SIZE 事件。如果这个窗口拥有子窗 口,它们可能需要被重
新放置和重新计算大小。处理这种情况推荐的方法是使用 sizer 类。大多数已经
确定的窗口类都有一个默认的大小和位置, 这需要你在创建这些窗口的时候使用
wxDefaultSize 和 wxDefaultPosition 这两个特殊的值。
输入
正变成活动状 态的窗口会收到 wxEVT_SET_FOCUS 事件,而正失去焦点的窗
口会收到 wxEVT_KILL_FOCUS 事件。
空闲事件处理和用户界面更新
所有的窗口 (除非特殊声明 )都将收到空闲事件 wxEVT_IDLE, 这个事件是在所有
其它的事件都已经被处理完以后发出的。使用 EVT_IDLE 事件映射宏来处理。
其中一个特殊的空闲时间操作就是进行用户界面更新, 在这个操作中所有的窗口
都可以定义一个函数来更新自己的状态。这个函数将会被周期性的 在系统空闲
时调用。而 EVT_UPDATE_UI(id, func) 这个宏则通常不需要作什么事情。
窗口的创建和删除
一般来说,窗口都是在堆上使用 new 方法创建的。大多数的窗口类都可以通过
两种方法被创建:单步创建和两步创建。
使用一步创建的方法: wxButton* button = new wxButton(parent, wxID_OK);
除非是 frame 或者 dialog 窗口,对于别的窗口,都必须在构造函数中传入一个非
空的父窗口。 这会自动把这个新窗口作为这个父窗口的子窗口。 当父窗口被释放
的时候,它的所有的子窗口也将被释放。
两步创建的意思是说, 你先使用默认的构造函数创建一个实例, 然后再使用这个
实例 Create方法实际创建这个对象。 Create 的参数和前面使用的构造函数的参数
完全相同。
wxButton* button = new wxButton;
button-Create(parent, wxID_OK);
窗口在你调用 Create 函数的时候会收到 wxEVT_CREATE 事件,你可以对这个
事件进行进一步的处理。
使用两步创建的原因是什么呢?第一个原因是有时侯你可能想在晚些时候, 在真
正需要的时候才完整的创建窗口。另外一个原因是你希望在调用 Create函数之
前设置窗口的某些属性值。
窗口是通过调用其 Destroy 函数(对于顶层窗口来说 )或者 delete 函数 (对于其子窗
口来说)来释放的。 wxEVT_DESTROY 事件会在窗口刚刚要被释放之前被调用。
实际上,子窗口是被自动释放的,所以 delete 函数是很少直接被手动调用的。
窗口类型
窗口拥有一个类型和一个扩展类型。
原创力文档


文档评论(0)