- 1、本文档共11页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
wxWidget窗口基础知识
窗口解析窗口绘制当一个窗口需要重绘的时候,它将收到两个事件,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函数是很少直接被手动调用的。窗口类型窗口拥有一个类型和一个扩展类型。窗口类型是设置窗口创建时的行为和外观的一种简洁的方法。这些类型的值被设置成可以使用类似比特位的方法操作,例如下面的例子: wxCAPTION | wxMINIMIZE_BOX | wxMAXIMIZE_BOX | wxTHICK_FRAME?窗口类概览基本窗口类wxWindow. 这是所有窗口类的基类。wxControl. 所有控件(比如wxButton)的基类. wxControlWithItems. 是那些拥有多个子项目的控件的基类. 顶层窗口类顶层窗口类通常指那些独立的位于桌面上的类。wxFrame. 一个可以包含其他窗口,并且大小可变的窗口类。wxMDIParentFrame. 是一个可以管理其他Frame类的类. wxMDIChildFrame. 是一个可以被其父窗口管理的frame类. wxDialog. 是一种可变大小的用于给用户提供选项的窗口类. wxPopupWindow. 是一种暂态的只有很少修饰的顶层窗口. 容器窗口类容器窗口类可以管理其他窗口wxPanel. 这是一个给其它窗口提供布局的窗口. wxNotebook. 可以实用TAB页面进行切换的窗口. wxScrolledWindow. 可以有滚动条的窗口. wxSplitterWindow. 可以管理两个子窗口的一种特殊窗口类. 非静态控件窗口类这些控件是用户可以操作或者编辑的。wxButton. 一种拥有一个标签的按钮控件. wxBitmapButton. 一种拥有图片和标签的按钮控件. wxChoice. 拥有一个下拉列表的选择控件. wxComboBox. 拥有一组选项的可编辑的选择控件. wxCheckBox. 拥有一个复选框的
文档评论(0)