· 428 · 第20章 完善你的应用程序 滚动,这将使得你只需要更新剩下的很小的区域,这将大大降低闪烁.(wxScrolledWindow类已经为你 实现了这种机制,GetUpdateRegion函数将反应你需要更新的这个很小的区域.) 正如我们在第5章,"绘画和打印"中介绍的那样,你还可以定义你自己的背景擦除事件处理 函数,并将其留空,以禁止控件自己清除自己的背景.然后你可以直接在旧的图片上更新整个 图片(包括整个背景所在的范围),以便降低由于在绘图前擦除背景导致的屏幕闪烁.使用wxWin- dow::SetBackgroundStyle函数将背景类型设置为wxBG STYLE CUSTOM将阻止控件自作主张的更新背 景.第5章还介绍了wxBufferedDC和wxBufferedPaintDC,你可以结合前面提到的这些技术一起使用来 降低闪烁. 另外一种情况是由于对一个窗口进行多次连续的更新导致窗口闪烁.wxWidgets提供了wxWin- dow::Freeze函数和wxWindow::Thaw函数,这两个函数可以控制窗口在被更新的时候是否立即显示在 屏幕上.比如说,在你需要往一个文本框中增加很多行文本的时候,或者往一个列表框中增加很多个 子项的时候,你可以使用这两个函数.当Thaw函数被调用的时候,窗口才会进行彻底刷新.在Windows系 统和Mac OSX系统上,所有的wxWindow类都支持Freeze和Thaw函数,而在GTK+平台上,wxTextCtrl也支 持这两个函数.你也可以在自己的控件中实现这两个函数来避免过度的更新用户界面(第12章介绍的 wxThumbnailCtrl例子实现了这两个函数,你可以参考examples/chap12/thumbnail目录中的代码). 20.4 实现联机帮助 虽然你应该尽可能的将你的应用程序界面设计的非常直观,以便用户根本不需要使用联机帮助, 但是除了那些最最简单的应用程序外,对于大多数应用程序来说,提供联机帮助都是一个非常重要的 事情.你可以提供PDF版的帮助文件或者是HTML格式的帮助文件以便用户可以使用他最习惯的方式浏 览,不过如果你能够借助于某种帮助制作手段,使得你的联机帮助中的主题直接和对话框或者你的主 窗口中的控件联系起来,这会让你的用户感觉更好. wxWidgets提供了帮助控制器,你的应用程序可以使用它来加载和显示帮助文件中的主题,它主要 包括下面几个类: • wxWinHelpController,这个类用来提供对windows平台的基于RTF格式的帮助文件(扩展名 为.hlp)的支持. 这中格式现在已经不推荐使用了,新的用来代替它的类是wxCHMHelpCon- troller. • wxCHMHelpController, 用来提供对windows平台的MS HTML帮助文件(扩展名是.chm)的支持. • wxWinceHelpController,用来提供对WindowsCE上的帮助文件(扩展名是.htm)的支持. • wxHtmlHelpController, 用来提供对wxWidgets自定义的HTML帮助文件(扩展名是.htb)的支 持. wxHtmlHelpController类和别的帮助控制类是不同的,别的类都只是封装了那个平台上相应的 本地实现,而这个类是和wxWidgets的帮助实现机制集成在一起的,和主程序属于同一个进程.如果 你想以不同进程的方式使用wxWidgets提供的帮助文件,你可以编译wxWidgets自带的utils/src/
- 粉丝: 45
- 资源: 4167
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助