自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

  • 博客(21)
  • 资源 (19)
  • 问答 (2)
  • 收藏
  • 关注

原创 安装redis集群

安装zlib yum install -y zlib安装ruby yum install -y ruby安装ruby-redis 下载 ruby-redis3.3.5 gem install redis-3.3.5.gem安装redis 下载 redis-4.0.6> tar xvf redis-4.0.6.tar.gz> cd redis-4.0.6&...

2018-07-19 16:56:58 277

原创 DataGrip连接TimesTen

1. 下载TimesTen安装包http://www.oracle.com/technetwork/database/database-technologies/timesten/downloads/index.html![这里写图片描述](https://img-blog.csdn.net/2018051409474367?watermark/2/text/aHR0cHM6Ly9ibG9nL...

2018-05-14 09:49:26 729

原创 iterm2自动登陆,解决分栏后vi混乱

iterm2使用以前的方法(见原博文iterm2远程中文乱码问题)免密登陆发现几个很不方便的地方。 1. 每次要切换编码方式,不仅要修改要修改iterm2的编码配置,还要修改本地编码环境 2. command+d分栏或改变窗口大小之后,vi显示紊乱,不胜其烦。之所以出现这两个问题,可能是因为原来的登陆方式是通过本地环境跳转到远程环境,而使用sshpass方式登陆,是直接登陆到远程,免去了本体跳转

2017-10-12 21:02:14 4325 1

原创 mac命令行方式操作DNS

mac命令行方式操作DNS

2017-08-16 09:46:02 3245

原创 tuxedo不使用buildclient编译客户端

tuxedo不使用buildclient编译客户端使用下面的命令

2017-08-14 15:15:43 1356

原创 iterm2远程中文乱码问题

刚接触使用iterm2,一直被中文乱码问题困扰。原因是mac的编码格式默认是utf-8,而远端服务器都是gbk编码。 按网上的教程,直接调整profiles的格式为gbk无效,又不可能把所有服务器的编码都改掉,于是只能在ssh登录时,临时改变本地的编码。

2017-04-27 16:16:05 21130

原创 DataGrip遇到的问题

DataGrip问题 修改数据 自动提示 自定义数据驱动

2017-04-18 18:26:07 17307 1

原创 zookeeper上修改kafka消费组的偏移量

zookeeper上修改kafka消费组的偏移量

2017-03-24 10:05:05 6457

原创 AIX6.1下编译librdkafka

AIX6.1安装 librdkafka

2017-03-22 18:03:04 1600

原创 AIX6.1安装 g++

AIX6.1安装 g++

2017-03-16 13:49:10 2864

翻译 librdkafka配置参数

librdkafka配置参数以表格形式列出了librdkafka库中的控制参数信息

2017-02-23 18:00:01 16309

翻译 librdkafka介绍文档

Introduction to librdkafka - the Apache Kafka C/C++ client library

2016-12-23 12:25:28 14914 6

原创 ORACLE位图索引导致的ORA-00060: deadlock detected while waiting for resource

ORACLE位图索引导致的ORA-00060: deadlock detected while waiting for resource

2014-12-19 17:15:18 13734 1

转载 iframe中的子窗体调用父窗体中的方法

iFrame语法:  iframe 标签 -- 代表HTML内联框架iframe 标签是成对出现的,以 开始, 结束 属性 name -- 定义了内容页名称,此名称在框架页内链接时使用到 src -- 定义了内容页URL frameborder -- 定义了内容页的边框,取值为(1|0),缺省值为1 1 -- 在每个页面之间都显示边框 0 --

2009-07-09 10:34:00 2704

原创 使用iframe总结

是框架的一种形式,也比较常用到。   例子1。 不用多说了。   width插入页的宽;height插入页的高;scrolling 是否显示页面滚动条(可选的参数为 auto、yes、no,如果省略这个参数,则默认为auto);frameborder  边框大小;   注意:URL建议用绝对路径   传说中百DU用: 黑了88*8。。。   例子2。   如果一个页面里面有框架。。随便点页面里的

2009-07-09 10:33:00 457

转载 如何填充 TreeView 控件的 XML 数据

http://support.microsoft.com/kb/317597/zh-cn#51. 将以下 XML 示例代码粘贴到一个新的文本文件,名为"sample.xml 中。 此文件是示例 XML 数据,例如:id="grandfather" id="father" id="brother" id="niece"

2009-07-07 13:20:00 716

转载 详解C#中web.config文件

(一).Web.Config是以XML文件规范存储,配置文件分为以下格式         1.配置节处理程序声明         特点: 位于配置文件的顶部,包含在标志中。         2.特定应用程序配置         特点: 位于中。 可以定义应用程序的全局常量设置等信息.         3.配置节设置         特点: 位于节中,控制Asp.net运行时的行为.

2009-06-30 16:35:00 465

转载 简单方法获取数据连接的字符串(UDL文件)

编程序时,那长长的数据连接字符串相信一般人是记不住的,大部分人都是在网上查到现成的后COPY过来用,但毕竟还是很麻烦,有时候一时半刻还找不到合适的,今天无意中在网上发现了一个非常好的办法,真的是太太太方便了!! 首先,在桌面上建一个txt文本文件,然后将后缀名改为udl ,然后双击它,打开相应对话框。 其次,我们选择要设置的连接,这里选择的是sql server 然后,我们点击确定,进入选择服务器

2009-06-30 16:06:00 467

原创 MSDN Library 官方下载地址

http://download.microsoft.com/download/2/0/3/203b7183-b107-4c5d-a546-c4eb1b0dbccd/MSDVCHSDVDX1370482.img  下载说明:下载完成后即可用虚拟光驱虚拟/直接提取/刻录到DVD上使用,可以在未安装Visual Studio的计算机上单独安装.此版本的MSDN Library是微软于2007

2009-04-17 19:02:00 3798

转载 全面掌握c#中的拖放操作

转至:http://hi.baidu.com/dongdongjiao/blog/item/edb1abfcebc1c986b801a017.html 随着桌面系统的推出,利用鼠标的拖放(drag and drop)操作由于其简单、直接,受到了越来越多的读者的欢迎,为迎合这种趋势,越来越多程序员在自己的程序中使用了拖放操作。拖放操作方便了程序的使用者,但由于拖放操作在程序中的设计工作比较还

2009-04-01 16:04:00 568

转载 C#数据库事务原理及实践

C#数据库事务原理及实践什么是数据库事务  数据库事务是指作为单个逻辑工作单元执行的一系列操作。设想网上购物的一次交易,其付款过程至少包括以下几步数据库操作:  · 更新客户所购商品的库存信息   · 保存客户付款信息--可能包括与银行系统的交互   · 生成订单并且保存到数据库中   · 更新用户相关信息,例如购物数量等等 正常的情况下,这些操作将顺利进行,最终交易成功,与交易相

2009-03-29 22:06:00 366

ojdbc6.jar

低版本需要的ojdbx6

2017-04-26

使用wxWidgets进行跨平台程序开发

目录 1 介绍 1.1 什么是wxWidgets . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 1.2 为什么选择wxWidgets? . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 1.3 wxWidgets的历史. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 1.4 wxWidgets社区. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 1.5 wxWidgets和面向对象编程. . . . . . . . . . . . . . . . . . . . . . . . . . 9 1.6 许可协议. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 1.7 wxWidgets的体系结构. . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 1.7.1 wxMSW . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 1.7.2 wxGTK . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 1.7.3 wxX11 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 1.7.4 wxMotif . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 1.7.5 wxMac . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 1.7.6 wxCocoa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 1.7.7 wxWinCE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12 1.7.8 wxPalmOS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12 1.7.9 wxOS2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12 1.7.10 wxMGL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12 1.7.11 内部组织. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13 1.8 本章小结. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14 2 开始使用15 2.1 一个小例子. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15 2.2 应用程序类. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15 2.3 Frame窗口类. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16 2.4 事件处理函数. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17 2.5 Frame窗口的构造函数. . . . . . . . . . . . . . . . . . . . . . . . . . . . 18 3 · 4 · 目录 2.6 完整的例子. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19 2.7 编译和运行程序. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21 2.8 wxWidgets程序一般执行过程. . . . . . . . . . . . . . . . . . . . . . . . . 21 2.9 本章小结. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22 3 事件处理23 3.1 事件驱动编程. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23 3.2 事件表和事件处理过程. . . . . . . . . . . . . . . . . . . . . . . . . . . . 23 3.3 过滤某个事件. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26 3.4 挂载事件表. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26 3.5 动态事件处理方法. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27 3.6 窗口标识符. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28 3.7 自定义事件. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31 3.8 本章小结. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33 4 窗口的基础知识34 4.1 窗口解析. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34 4.1.1 窗口的概念. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34 4.1.2 客户区和非客户区. . . . . . . . . . . . . . . . . . . . . . . . . . 35 4.1.3 滚动条. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35 4.1.4 光标和鼠标指针. . . . . . . . . . . . . . . . . . . . . . . . . . . 35 4.1.5 顶层窗口. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35 4.1.6 座标体系. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35 4.1.7 窗口绘制. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35 4.1.8 颜色和字体. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36 4.1.9 窗口变体. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36 4.1.10 改变大小. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36 4.1.11 输入. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36 4.1.12 空闲事件处理和用户界面更新. . . . . . . . . . . . . . . . . . . . . 36 4.1.13 窗口的创建和删除. . . . . . . . . . . . . . . . . . . . . . . . . . 37 4.1.14 窗口类型. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38 目录· 5 · 4.2 窗口类概览. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38 4.2.1 基本窗口类. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38 4.2.2 顶层窗口类. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38 4.2.3 容器窗口类. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39 4.2.4 非静态控件窗口类. . . . . . . . . . . . . . . . . . . . . . . . . . 39 4.2.5 静态控件. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39 4.2.6 菜单. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40 4.2.7 控件条. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40 4.3 基础窗口类. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40 4.3.1 窗口类wxWindow . . . . . . . . . . . . . . . . . . . . . . . . . . . 40 4.3.2 窗口类型. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40 4.3.3 窗口事件. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41 4.3.4 wxWindow类的成员函数. . . . . . . . . . . . . . . . . . . . . . . . 41 4.3.5 wxControl类. . . . . . . . . . . . . . . . . . . . . . . . . . . . 46 4.3.6 wxControlWithItems类. . . . . . . . . . . . . . . . . . . . . . . . 46 4.3.7 wxControlWithItems的成员函数. . . . . . . . . . . . . . . . . . . . 47 4.4 顶层窗口. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47 4.4.1 wxFrame . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48 4.4.2 wxFrame的窗口类型比特位. . . . . . . . . . . . . . . . . . . . . . 49 4.4.3 wxFrame的事件. . . . . . . . . . . . . . . . . . . . . . . . . . . 50 4.4.4 wxFrame的成员函数. . . . . . . . . . . . . . . . . . . . . . . . . 50 4.4.5 小型frame窗口. . . . . . . . . . . . . . . . . . . . . . . . . . . 54 4.4.6 wxMDIParentFrame . . . . . . . . . . . . . . . . . . . . . . . . . . 54 4.4.7 wxMDIParentFrame的窗口类型. . . . . . . . . . . . . . . . . . . . . 55 4.4.8 wxMDIParentFrame的成员函数. . . . . . . . . . . . . . . . . . . . . 55 4.4.9 wxMDIChildFrame . . . . . . . . . . . . . . . . . . . . . . . . . . 56 4.4.10 wxMDIChildFrame的窗口类型. . . . . . . . . . . . . . . . . . . . . 56 4.4.11 wxMDIChildFrame的成员函数. . . . . . . . . . . . . . . . . . . . . 56 4.4.12 wxDialog . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56 4.4.13 wxDialog的窗口类型. . . . . . . . . . . . . . . . . . . . . . . . . 58 · 6 · 目录 4.4.14 wxDialog事件. . . . . . . . . . . . . . . . . . . . . . . . . . . . 59 4.4.15 wxDialog的成员函数. . . . . . . . . . . . . . . . . . . . . . . . . 59 4.4.16 wxPopupWindow . . . . . . . . . . . . . . . . . . . . . . . . . . . 60 4.5 容器窗口. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60 4.5.1 wxPanel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61 4.5.2 wxPanel的窗口类型. . . . . . . . . . . . . . . . . . . . . . . . . 61 4.5.3 wxPanel的成员函数. . . . . . . . . . . . . . . . . . . . . . . . . 61 4.5.4 wxNotebook . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62 4.5.5 Notebook窗口主题管理. . . . . . . . . . . . . . . . . . . . . . . . 63 4.5.6 wxNotebook的窗口类型. . . . . . . . . . . . . . . . . . . . . . . . 63 4.5.7 wxNotebook的事件. . . . . . . . . . . . . . . . . . . . . . . . . . 63 4.5.8 wxNotebook的成员函数. . . . . . . . . . . . . . . . . . . . . . . . 64 4.5.9 wxNotebook的替代选择. . . . . . . . . . . . . . . . . . . . . . . . 64 4.5.10 wxScrolledWindow . . . . . . . . . . . . . . . . . . . . . . . . . . 65 4.5.11 wxScrolledWindow的窗口类型. . . . . . . . . . . . . . . . . . . . . 66 4.5.12 wxScrolledWindow的事件. . . . . . . . . . . . . . . . . . . . . . . 66 4.5.13 wxScrolledWindow的成员函数介绍. . . . . . . . . . . . . . . . . . . 66 4.5.14 滚动非wxScrolledWindow类型的窗口. . . . . . . . . . . . . . . . . . 67 4.5.15 wxSplitterWindow . . . . . . . . . . . . . . . . . . . . . . . . . . 68 4.5.16 wxSplitterWindow的窗口类型. . . . . . . . . . . . . . . . . . . . . 69 4.5.17 wxSplitterWindow事件. . . . . . . . . . . . . . . . . . . . . . . . 69 4.5.18 wxSplitterWindow的成员函数. . . . . . . . . . . . . . . . . . . . . 69 4.5.19 布局控件中使用wxSplitterWindow的说明. . . . . . . . . . . . . . . . 71 4.5.20 wxSplitterWindow的替代者. . . . . . . . . . . . . . . . . . . . . . 71 4.6 非静态控件. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72 4.6.1 wxButton . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72 4.6.2 wxButton的窗口类型. . . . . . . . . . . . . . . . . . . . . . . . . 73 4.6.3 wxButton的事件. . . . . . . . . . . . . . . . . . . . . . . . . . . 73 4.6.4 wxButton的成员函数. . . . . . . . . . . . . . . . . . . . . . . . . 73 4.6.5 wxButton的标签. . . . . . . . . . . . . . . . . . . . . . . . . . . 73 目录· 7 · 4.6.6 wxBitmapButton . . . . . . . . . . . . . . . . . . . . . . . . . . . 76 4.6.7 wxBitmapButton的窗口类型. . . . . . . . . . . . . . . . . . . . . . 77 4.6.8 wxBitmapButton事件. . . . . . . . . . . . . . . . . . . . . . . . . 77 4.6.9 wxBitmapButton的成员函数. . . . . . . . . . . . . . . . . . . . . . 77 4.6.10 wxChoice . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77 4.6.11 wxChoice的窗口类型. . . . . . . . . . . . . . . . . . . . . . . . . 78 4.6.12 wxChoice的事件. . . . . . . . . . . . . . . . . . . . . . . . . . . 78 4.6.13 wxChoice的成员函数. . . . . . . . . . . . . . . . . . . . . . . . 78 4.6.14 wxComboBox . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78 4.6.15 wxComboBox的窗口类型. . . . . . . . . . . . . . . . . . . . . . . . 79 4.6.16 wxComboBox的事件. . . . . . . . . . . . . . . . . . . . . . . . . . 79 4.6.17 wxComboBox的成员函数. . . . . . . . . . . . . . . . . . . . . . . . 79 4.6.18 wxCheckBox . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80 4.6.19 wxCheckBox的窗口类型. . . . . . . . . . . . . . . . . . . . . . . . 80 4.6.20 wxCheckBox的事件. . . . . . . . . . . . . . . . . . . . . . . . . . 80 4.6.21 wxCheckBox的成员函数. . . . . . . . . . . . . . . . . . . . . . . . 80 4.6.22 wxListBox 和wxCheckListBox . . . . . . . . . . . . . . . . . . . . 81 4.6.23 wxListBox和wxCheckListBox的窗口类型. . . . . . . . . . . . . . . . 82 4.6.24 wxListBox的wxCheckListBox事件. . . . . . . . . . . . . . . . . . . 82 4.6.25 wxListBox 成员函数. . . . . . . . . . . . . . . . . . . . . . . . . 83 4.6.26 wxCheckListBox的成员函数. . . . . . . . . . . . . . . . . . . . . 83 4.6.27 wxRadioBox . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83 4.6.28 wxRadioBox的窗口类型. . . . . . . . . . . . . . . . . . . . . . . . 84 4.6.29 wxRadioBox事件. . . . . . . . . . . . . . . . . . . . . . . . . . . 84 4.6.30 wxRadioBox成员函数. . . . . . . . . . . . . . . . . . . . . . . . . 84 4.6.31 wxRadioButton . . . . . . . . . . . . . . . . . . . . . . . . . . . 85 4.6.32 wxRadioButton的窗口类型. . . . . . . . . . . . . . . . . . . . . . 85 4.6.33 wxRadioButton的事件. . . . . . . . . . . . . . . . . . . . . . . . 85 4.6.34 wxRadioButton的成员函数. . . . . . . . . . . . . . . . . . . . . . 86 4.6.35 wxScrollBar . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86 · 8 · 目录 4.6.36 wxScrollBar的窗口类型. . . . . . . . . . . . . . . . . . . . . . . 86 4.6.37 wxScrollBar的事件. . . . . . . . . . . . . . . . . . . . . . . . . 86 4.6.38 wxScrollBar的成员函数. . . . . . . . . . . . . . . . . . . . . . . 87 4.6.39 wxSpinButton . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87 4.6.40 wxSpinButton的窗口类型. . . . . . . . . . . . . . . . . . . . . . . 87 4.6.41 wxSpinButton的事件. . . . . . . . . . . . . . . . . . . . . . . . . 88 4.6.42 wxSpinButton的成员函数. . . . . . . . . . . . . . . . . . . . . . . 88 4.6.43 wxSpinCtrl . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88 4.6.44 wxSpinCtrl的窗口类型. . . . . . . . . . . . . . . . . . . . . . . . 89 4.6.45 wxSpinCtrl事件. . . . . . . . . . . . . . . . . . . . . . . . . . . 89 4.6.46 wxSpinCtrl成员函数. . . . . . . . . . . . . . . . . . . . . . . . . 89 4.6.47 wxSlider . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89 4.6.48 wxSlider的窗口类型. . . . . . . . . . . . . . . . . . . . . . . . . 90 4.6.49 wxSlider的事件. . . . . . . . . . . . . . . . . . . . . . . . . . . 90 4.6.50 wxSlider的成员函数. . . . . . . . . . . . . . . . . . . . . . . . . 90 4.6.51 wxTextCtrl . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91 4.6.52 wxTextCtrl的窗口类型. . . . . . . . . . . . . . . . . . . . . . . . 92 4.6.53 wxTextCtrl的事件. . . . . . . . . . . . . . . . . . . . . . . . . . 93 4.6.54 wxTextCtrl的成员函数. . . . . . . . . . . . . . . . . . . . . . . . 93 4.6.55 wxToggleButton . . . . . . . . . . . . . . . . . . . . . . . . . . . 94 4.6.56 wxToggleButton的窗口类型. . . . . . . . . . . . . . . . . . . . . . 94 4.6.57 wxToggleButton事件. . . . . . . . . . . . . . . . . . . . . . . . . 94 4.6.58 wxToggleButton的成员函数. . . . . . . . . . . . . . . . . . . . . . 95 4.7 静态控件. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95 4.7.1 进度条. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95 4.7.2 wxGauge的窗口类型. . . . . . . . . . . . . . . . . . . . . . . . . 95 4.7.3 wxGauge事件. . . . . . . . . . . . . . . . . . . . . . . . . . . . 95 4.7.4 wxStaticText . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96 4.7.5 wxStaticText的窗口类型. . . . . . . . . . . . . . . . . . . . . . . 96 4.7.6 wxStaticText的成员函数. . . . . . . . . . . . . . . . . . . . . . . 96 目录· 9 · 4.7.7 wxStaticBitmap . . . . . . . . . . . . . . . . . . . . . . . . . . . 96 4.7.8 wxStaticBitmap的窗口类型. . . . . . . . . . . . . . . . . . . . . . 97 4.7.9 wxStaticBitmap的成员函数. . . . . . . . . . . . . . . . . . . . . . 97 4.7.10 wxStaticLine . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97 4.7.11 wxStaticLine的窗口类型. . . . . . . . . . . . . . . . . . . . . . . 97 4.7.12 wxStaticLine的成员函数. . . . . . . . . . . . . . . . . . . . . . . 97 4.7.13 wxStaticBox . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97 4.7.14 wxStaticBox的窗口类型. . . . . . . . . . . . . . . . . . . . . . . 98 4.7.15 wxStaticBox的成员函数. . . . . . . . . . . . . . . . . . . . . . . 98 4.8 菜单. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 98 4.8.1 wxMenu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 98 4.8.2 wxMenu的事件. . . . . . . . . . . . . . . . . . . . . . . . . . . . 100 4.8.3 wxMenu的成员函数. . . . . . . . . . . . . . . . . . . . . . . . . . 101 4.9 控制条. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102 4.9.1 wxMenuBar . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103 4.9.2 wxMenuBar的窗口类型. . . . . . . . . . . . . . . . . . . . . . . . 103 4.9.3 wxMenuBar事件. . . . . . . . . . . . . . . . . . . . . . . . . . . 103 4.9.4 wxMenuBar成员函数. . . . . . . . . . . . . . . . . . . . . . . . . 103 4.9.5 wxToolBar . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 104 4.9.6 wxToolBar的窗口类型. . . . . . . . . . . . . . . . . . . . . . . . 105 4.9.7 wxToolBar的事件. . . . . . . . . . . . . . . . . . . . . . . . . . 105 4.9.8 wxToolBar的成员函数. . . . . . . . . . . . . . . . . . . . . . . . 106 4.9.9 wxStatusBar . . . . . . . . . . . . . . . . . . . . . . . . . . . . 107 4.9.10 wxStatusBar的事件. . . . . . . . . . . . . . . . . . . . . . . . . 108 4.9.11 wxStatusBar的成员函数. . . . . . . . . . . . . . . . . . . . . . . 108 4.10 本章小结. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 109 5 绘画和打印110 5.1 理解设备上下文. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 110 5.1.1 可用的设备上下文. . . . . . . . . . . . . . . . . . . . . . . . . . 111 · 10 · 目录 5.1.2 使用wxClientDC在窗口客户区进行绘画. . . . . . . . . . . . . . . . . 111 5.1.3 擦除窗口背景. . . . . . . . . . . . . . . . . . . . . . . . . . . . 112 5.1.4 使用wxPaintDC在窗口上绘画. . . . . . . . . . . . . . . . . . . . . 113 5.1.5 使用wxMemoryDC在位图上绘图. . . . . . . . . . . . . . . . . . . . . 115 5.1.6 使用wxPrinterDC和wxPostScriptDC实现打印. . . . . . . . . . . . . . 116 5.2 绘画工具. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 117 5.2.1 wxColour . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 118 5.2.2 wxPen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 119 5.2.3 wxBrush . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 120 5.2.4 wxFont . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 121 5.2.5 wxPalette . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 122 5.3 设备上下文中的绘画函数. . . . . . . . . . . . . . . . . . . . . . . . . . . 124 5.3.1 绘制文本. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 126 5.3.2 绘制线段和形状. . . . . . . . . . . . . . . . . . . . . . . . . . . 128 5.3.3 使用云行规画平滑曲线. . . . . . . . . . . . . . . . . . . . . . . . 130 5.3.4 绘制位图. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 131 5.3.5 填充特定区域. . . . . . . . . . . . . . . . . . . . . . . . . . . . 132 5.3.6 逻辑函数. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 133 5.4 使用打印框架. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 133 5.4.1 关于wxPrintout的更多内容. . . . . . . . . . . . . . . . . . . . . 135 5.4.2 在类Unix系统上的GTK+版本上的打印. . . . . . . . . . . . . . . . . 139 5.5 使用wxGLCanvas绘制三维图形. . . . . . . . . . . . . . . . . . . . . . . . . 140 5.6 本章小节. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 141 6 处理用户输入143 6.1 鼠标输入. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 143 6.1.1 处理按钮和鼠标指针移动事件. . . . . . . . . . . . . . . . . . . . . 143 6.1.2 处理鼠标滚轮事件. . . . . . . . . . . . . . . . . . . . . . . . . . 145 6.2 处理键盘事件. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 146 6.2.1 字符事件处理的例子. . . . . . . . . . . . . . . . . . . . . . . . 148 目录· 11 · 6.2.2 按键编码翻译. . . . . . . . . . . . . . . . . . . . . . . . . . . . 149 6.2.3 修饰键变量. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 150 6.2.4 加速键. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 150 6.3 处理游戏手柄事件. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 151 6.3.1 wxJoystick的事件. . . . . . . . . . . . . . . . . . . . . . . . . . 153 6.3.2 wxJoystickEvent的成员函数. . . . . . . . . . . . . . . . . . . . . 153 6.3.3 wxJoystick成员函数. . . . . . . . . . . . . . . . . . . . . . . . . 154 6.4 本章小结. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 154 7 使用布局控件进行窗口布局155 7.1 窗口布局基础. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 155 7.2 窗口布局控件. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 156 7.2.1 布局控件的通用特性. . . . . . . . . . . . . . . . . . . . . . . . . 157 7.3 使用布局控件进行编程. . . . . . . . . . . . . . . . . . . . . . . . . . . . 159 7.3.1 使用wxBoxSizer进行编程. . . . . . . . . . . . . . . . . . . . . . . 159 7.3.2 使用wxStaticBoxSizer编程. . . . . . . . . . . . . . . . . . . . . . 162 7.3.3 使用wxGridSizer编程. . . . . . . . . . . . . . . . . . . . . . . . 162 7.3.4 使用wxFlexGridSizer编程. . . . . . . . . . . . . . . . . . . . . . 163 7.3.5 使用wxGridBagSizer编程. . . . . . . . . . . . . . . . . . . . . . . 165 7.4 更多关于布局的话题. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 166 7.4.1 对话框单位. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 166 7.4.2 平台自适应布局. . . . . . . . . . . . . . . . . . . . . . . . . . . 166 7.4.3 动态布局. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 167 7.5 本章小结. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 168 8 使用标准对话框169 8.1 信息对话框. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 169 8.1.1 wxMessageDialog . . . . . . . . . . . . . . . . . . . . . . . . . . 169 8.1.2 wxMessageDialog使用举例. . . . . . . . . . . . . . . . . . . . . . 170 8.1.3 wxMessageBox . . . . . . . . . . . . . . . . . . . . . . . . . . . . 171 8.1.4 wxProgressDialog . . . . . . . . . . . . . . . . . . . . . . . . . . 171 · 12 · 目录 8.1.5 wxProgressDialog使用举例. . . . . . . . . . . . . . . . . . . . . . 172 8.1.6 wxBusyInfo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 173 8.1.7 wxBusyInfo使用举例. . . . . . . . . . . . . . . . . . . . . . . . . 173 8.1.8 wxShowTip . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 173 8.1.9 wxShowTip使用举例. . . . . . . . . . . . . . . . . . . . . . . . . 174 8.2 文件和目录对话框. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 174 8.2.1 wxFileDialog . . . . . . . . . . . . . . . . . . . . . . . . . . . . 174 8.2.2 wxFileDialog的类型. . . . . . . . . . . . . . . . . . . . . . . . . 177 8.2.3 wxFileDialog的成员函数. . . . . . . . . . . . . . . . . . . . . . . 177 8.2.4 wxFileDialog例子. . . . . . . . . . . . . . . . . . . . . . . . . . 177 8.2.5 wxDirDialog . . . . . . . . . . . . . . . . . . . . . . . . . . . . 178 8.2.6 wxDirDialog成员函数. . . . . . . . . . . . . . . . . . . . . . . . 178 8.2.7 wxDirDialog使用举例. . . . . . . . . . . . . . . . . . . . . . . . 178 8.3 选择和选项对话框. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 180 8.3.1 wxColourDialog . . . . . . . . . . . . . . . . . . . . . . . . . . . 180 8.3.2 wxColourData的成员函数. . . . . . . . . . . . . . . . . . . . . . . 181 8.3.3 wxColourDialog使用举例. . . . . . . . . . . . . . . . . . . . . . . 181 8.3.4 wxFontDialog . . . . . . . . . . . . . . . . . . . . . . . . . . . . 182 8.3.5 wxFontData的成员函数. . . . . . . . . . . . . . . . . . . . . . . . 184 8.3.6 字体选择使用举例. . . . . . . . . . . . . . . . . . . . . . . . . . 184 8.3.7 wxSingleChoiceDialog . . . . . . . . . . . . . . . . . . . . . . . . 185 8.3.8 wxSingleChoiceDialog使用举例. . . . . . . . . . . . . . . . . . . . 185 8.3.9 wxMultiChoiceDialog使用举例. . . . . . . . . . . . . . . . . . . . 186 8.4 输入对话框. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 187 8.4.1 wxNumberEntryDialog . . . . . . . . . . . . . . . . . . . . . . . . 187 8.4.2 wxNumberEntryDialog使用举例. . . . . . . . . . . . . . . . . . . . 187 8.4.3 wxTextEntryDialog和wxPasswordEntryDialog . . . . . . . . . . . . . . 188 8.4.4 wxTextEntryDialog使用举例. . . . . . . . . . . . . . . . . . . . . 188 8.4.5 wxFindReplaceDialog . . . . . . . . . . . . . . . . . . . . . . . . 188 8.4.6 wxFindReplaceDialog对话框的相关事件. . . . . . . . . . . . . . . . 189 目录· 13 · 8.4.7 wxFindDialogEvent的成员函数. . . . . . . . . . . . . . . . . . . . 189 8.4.8 向对话框传递数据. . . . . . . . . . . . . . . . . . . . . . . . . . 190 8.4.9 wxFindReplaceData的成员函数. . . . . . . . . . . . . . . . . . . . 190 8.4.10 查找和替换使用举例. . . . . . . . . . . . . . . . . . . . . . . . . 190 8.5 打印对话框. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 191 8.5.1 wxPageSetupDialog . . . . . . . . . . . . . . . . . . . . . . . . . 192 8.5.2 wxPageSetupData成员函数. . . . . . . . . . . . . . . . . . . . . . 193 8.5.3 wxPageSetupDialog使用举例. . . . . . . . . . . . . . . . . . . . . 194 8.5.4 wxPrintDialog . . . . . . . . . . . . . . . . . . . . . . . . . . . 194 8.5.5 wxPrintDialogData的成员函数. . . . . . . . . . . . . . . . . . . . 195 8.5.6 wxPrintDialog使用举例. . . . . . . . . . . . . . . . . . . . . . . 197 8.6 本章小结. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 197 9 创建定制的对话框198 9.1 创建定制对话框的步骤. . . . . . . . . . . . . . . . . . . . . . . . . . . . 198 9.2 一个例子:PersonalRecordDialog . . . . . . . . . . . . . . . . . . . . . . . 198 9.2.1 派生一个新类. . . . . . . . . . . . . . . . . . . . . . . . . . . . 199 9.2.2 设计数据存储. . . . . . . . . . . . . . . . . . . . . . . . . . . . 200 9.2.3 编码产生控件和布局. . . . . . . . . . . . . . . . . . . . . . . . . 200 9.2.4 数据传输和验证. . . . . . . . . . . . . . . . . . . . . . . . . . 202 9.2.5 处理事件. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 204 9.2.6 处理UI更新. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 205 9.2.7 增加帮助信息. . . . . . . . . . . . . . . . . . . . . . . . . . . . 206 9.2.8 完整的例子. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 208 9.2.9 调用这个对话框. . . . . . . . . . . . . . . . . . . . . . . . . . . 208 9.3 在小型设备上调整你的对话框. . . . . . . . . . . . . . . . . . . . . . . . . 208 9.4 一些更深入的话题. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 209 9.4.1 键盘导航. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 209 9.4.2 数据和用户界面分离. . . . . . . . . . . . . . . . . . . . . . . . . 210 9.4.3 布局. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 210 · 14 · 目录 9.4.4 美学. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 211 9.4.5 对话框的替代品. . . . . . . . . . . . . . . . . . . . . . . . . . . 211 9.5 使用wxWidgets资源文件. . . . . . . . . . . . . . . . . . . . . . . . . . . 211 9.5.1 加载资源文件. . . . . . . . . . . . . . . . . . . . . . . . . . . . 211 9.5.2 使用二进制和嵌入式资源文件. . . . . . . . . . . . . . . . . . . . 212 9.5.3 资源翻译. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 213 9.5.4 XRC的文件格式. . . . . . . . . . . . . . . . . . . . . . . . . . . 214 9.5.5 编写资源处理类. . . . . . . . . . . . . . . . . . . . . . . . . . . 215 9.5.6 外来控件. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 216 9.6 本章小结. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 216 10 使用图像编程217 10.1 wxWidgets中图片相关的类. . . . . . . . . . . . . . . . . . . . . . . . . . 217 10.2 使用wxBitmap编程. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 218 10.2.1 创建一个wxBitmap . . . . . . . . . . . . . . . . . . . . . . . . . . 219 10.2.2 设置一个wxMask . . . . . . . . . . . . . . . . . . . . . . . . . . . 220 10.2.3 XPM图形格式. . . . . . . . . . . . . . . . . . . . . . . . . . . . 222 10.2.4 使用位图绘画. . . . . . . . . . . . . . . . . . . . . . . . . . . . 222 10.2.5 打包位图资源. . . . . . . . . . . . . . . . . . . . . . . . . . . . 223 10.3 使用wxIcon编程. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 224 10.3.1 创建一个wxIcon . . . . . . . . . . . . . . . . . . . . . . . . . . . 224 10.3.2 使用wxIcon . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 225 10.4 使用wxCursor编程. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 226 10.4.1 创建一个光标. . . . . . . . . . . . . . . . . . . . . . . . . . . . 226 10.4.2 使用wxCursor . . . . . . . . . . . . . . . . . . . . . . . . . . . . 228 10.5 使用wxImage编程. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 229 10.5.1 加载和保存图像. . . . . . . . . . . . . . . . . . . . . . . . . . . 230 10.5.2 透明. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 231 10.5.3 变形. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 232 10.5.4 颜色消减. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 232 目录· 15 · 10.5.5 直接操作wxImage 的元数据. . . . . . . . . . . . . . . . . . . . . . 233 10.6 图片列表和图标集. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 233 10.7 自定义wxWidgets提供的小图片. . . . . . . . . . . . . . . . . . . . . . . . 235 10.8 本章小结. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 237 11 剪贴板和拖放操作238 11.1 数据对象. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 238 11.1.1 数据源的职责. . . . . . . . . . . . . . . . . . . . . . . . . . . . 239 11.1.2 数据目标的职责. . . . . . . . . . . . . . . . . . . . . . . . . . . 239 11.2 使用剪贴板. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 239 11.3 实现拖放操作. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 241 11.3.1 实现拖放源. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 241 11.3.2 实现一个拖放目的. . . . . . . . . . . . . . . . . . . . . . . . . . 243 11.3.3 使用标准的拖放目的对象. . . . . . . . . . . . . . . . . . . . . . . 244 11.3.4 创建一个自定义的拖放目的. . . . . . . . . . . . . . . . . . . . . . 245 11.3.5 更多关于wxDataObject的知识. . . . . . . . . . . . . . . . . . . . . 245 11.3.6 实现wxDataObject的派生类. . . . . . . . . . . . . . . . . . . . . . 246 11.3.7 wxWidgets的拖放操作例子. . . . . . . . . . . . . . . . . . . . . . 247 11.3.8 wxWidgets中的拖放相关的一些帮助. . . . . . . . . . . . . . . . . . 254 11.4 本章小结. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 258 12 高级窗口控件259 12.1 wxTreeCtrl . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 259 12.1.1 wxTreeCtrl的窗口类型. . . . . . . . . . . . . . . . . . . . . . . . 260 12.1.2 wxTreeCtrl的事件. . . . . . . . . . . . . . . . . . . . . . . . . . 260 12.1.3 wxTreeCtrl的成员函数. . . . . . . . . . . . . . . . . . . . . . . . 260 12.2 wxListCtrl . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 263 12.2.1 wxListCtrl的窗口类型. . . . . . . . . . . . . . . . . . . . . . . . 263 12.2.2 wxListCtrl事件. . . . . . . . . . . . . . . . . . . . . . . . . . . 263 12.2.3 wxListItem . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 264 12.2.4 wxListCtrl成员函数. . . . . . . . . . . . . . . . . . . . . . . . . 265 · 16 · 目录 12.2.5 使用wxListCtrl . . . . . . . . . . . . . . . . . . . . . . . . . . . 266 12.2.6 虚列表控件. . . . . . . . . . . . . . . . . . . . . . . . . . . . 267 12.3 wxWizard . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 268 12.3.1 wxWizard事件. . . . . . . . . . . . . . . . . . . . . . . . . . . . 269 12.3.2 wxWizard的成员函数. . . . . . . . . . . . . . . . . . . . . . . . . 269 12.3.3 wxWizard使用举例. . . . . . . . . . . . . . . . . . . . . . . . . . 269 12.4 wxHtmlWindow . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 274 12.4.1 wxHtmlWindow窗口类型. . . . . . . . . . . . . . . . . . . . . . . . 276 12.4.2 wxHtmlWindow成员函数. . . . . . . . . . . . . . . . . . . . . . . . 276 12.4.3 在网页中集成窗口控件. . . . . . . . . . . . . . . . . . . . . . . . 277 12.4.4 HTML打印. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 278 12.5 wxGrid . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 279 12.5.1 wxGrid系统中的类. . . . . . . . . . . . . . . . . . . . . . . . . . 280 12.5.2 wxGrid的事件. . . . . . . . . . . . . . . . . . . . . . . . . . . . 280 12.5.3 wxGrid的成员函数. . . . . . . . . . . . . . . . . . . . . . . . . . 281 12.6 wxTaskBarIcon . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 284 12.6.1 wxTaskBarIcon的事件. . . . . . . . . . . . . . . . . . . . . . . . 287 12.6.2 wxTaskBarIcon成员函数. . . . . . . . . . . . . . . . . . . . . . . 287 12.7 编写自定义的控件. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 287 12.7.1 自定义控件的类声明. . . . . . . . . . . . . . . . . . . . . . . . . 288 12.7.2 增加DoGetBestSize函数. . . . . . . . . . . . . . . . . . . . . . . 290 12.7.3 定义一个新的事件类. . . . . . . . . . . . . . . . . . . . . . . . . 290 12.7.4 显示控件信息. . . . . . . . . . . . . . . . . . . . . . . . . . . . 291 12.7.5 处理输入. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 291 12.7.6 定义默认事件处理函数. . . . . . . . . . . . . . . . . . . . . . . . 292 12.7.7 实现验证器. . . . . . . . . . . . . . . . . . . . . . . . . . . . 293 12.7.8 实现资源处理器. . . . . . . . . . . . . . . . . . . . . . . . . . . 294 12.7.9 检测控件显示效果. . . . . . . . . . . . . . . . . . . . . . . . . . 294 12.7.10 一个更复杂一点的例子:wxThumbnailCtrl . . . . . . . . . . . . . . . . 295 12.8 本章小结. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 297 13 数据结构类302 13.1 为什么没有使用STL? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 302 13.2 字符串类型. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 302 13.2.1 使用wxString . . . . . . . . . . . . . . . . . . . . . . . . . . . . 303 13.2.2 wxString,字符以及字符串常量. . . . . . . . . . . . . . . . . . . . 303 13.2.3 wxString到C指针的转换基础. . . . . . . . . . . . . . . . . . . . . 303 13.2.4 标准C的字符串处理函数. . . . . . . . . . . . . . . . . . . . . . . 305 13.2.5 和数字的相互转换. . . . . . . . . . . . . . . . . . . . . . . . . . 305 13.2.6 wxStringTokenizer . . . . . . . . . . . . . . . . . . . . . . . . . 305 13.2.7 wxRegEx . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 306 13.3 wxArray . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 307 13.3.1 数组类型. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 307 13.3.2 wxArrayString . . . . . . . . . . . . . . . . . . . . . . . . . . . 308 13.3.3 数组示例. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 308 13.4 wxList和wxNode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 310 13.5 wxHashMap . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 311 13.6 存储和使用日期和时间. . . . . . . . . . . . . . . . . . . . . . . . . . . . 313 13.6.1 wxDateTime . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 313 13.6.2 wxDateTime类的构造和更改. . . . . . . . . . . . . . . . . . . . . . 313 13.6.3 wxDateTime访问方法. . . . . . . . . . . . . . . . . . . . . . . . . 314 13.6.4 获取当前时间. . . . . . . . . . . . . . . . . . . . . . . . . . . . 314 13.6.5 时间和字符串的转换. . . . . . . . . . . . . . . . . . . . . . . . . 314 13.6.6 日期比较. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 314 13.6.7 日期计算. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 315 13.7 其它常用的数据类型. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 316 13.7.1 wxObject . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 316 13.7.2 wxLongLong . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 316 13.7.3 wxPoint和wxRealPoint . . . . . . . . . . . . . . . . . . . . . . . . 317 13.7.4 wxRect . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 317 13.7.5 wxRegion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 317 13.7.6 wxSize . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 318 13.7.7 wxVariant . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 318 13.8 本章小结. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 319 14 文件和流操作320 14.1 文件类和函数. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 320 14.1.1 wxFile和wxFFile . . . . . . . . . . . . . . . . . . . . . . . . . . 320 14.1.2 wxTextFile . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 321 14.1.3 wxTempFile . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 322 14.1.4 wxDir . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 322 14.1.5 wxFileName . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 323 14.1.6 文件操作函数. . . . . . . . . . . . . . . . . . . . . . . . . . . . 323 14.2 流操作相关类. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 324 14.2.1 文件流. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 324 14.2.2 内存和字符串流. . . . . . . . . . . . . . . . . . . . . . . . . . . 326 14.2.3 读写数据类型. . . . . . . . . . . . . . . . . . . . . . . . . . . . 326 14.2.4 Socket流. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 327 14.2.5 过滤器流对象. . . . . . . . . . . . . . . . . . . . . . . . . . . . 327 14.2.6 Zip流对象. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 327 14.2.7 虚拟文件系统. . . . . . . . . . . . . . . . . . . . . . . . . . . . 328 14.3 本章小结. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 330 15 内存管理,调试和错误处理331 15.1 内存管理基础. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 331 15.1.1 创建和释放窗口对象. . . . . . . . . . . . . . . . . . . . . . . . . 331 15.1.2 创建和复制绘画对象. . . . . . . . . . . . . . . . . . . . . . . . . 332 15.1.3 在应用程序退出时执行清理. . . . . . . . . . . . . . . . . . . . . . 333 15.2 检测内存泄漏和其它错误. . . . . . . . . . . . . . . . . . . . . . . . . . . 333 15.3 构建自防御的程序. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 335 15.4 错误报告. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 336 15.5 提供运行期类型信息. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 340 15.5.1 提供运行期类型信息. . . . . . . . . . . . . . . . . . . . . . . . . 340 15.6 使用wxModule . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 341 15.7 加载动态链接库. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 342 15.8 异常处理. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 342 15.9 调试提示. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 343 15.9.1 调试X11错误. . . . . . . . . . . . . . . . . . . . . . . . . . . . 344 15.9.2 一个简单有效的定位问题方法. . . . . . . . . . . . . . . . . . . . . 345 15.9.3 调试一个发布版本. . . . . . . . . . . . . . . . . . . . . . . . . . 345 15.10 本章小结. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 346 16 编写国际化程序347 16.1 国际化介绍. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 347 16.2 从翻译说起. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 348 16.2.1 poEdit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 348 16.2.2 一步一步介绍创建消息翻译分类条目. . . . . . . . . . . . . . . . . . 348 16.2.3 使用wxLocale . . . . . . . . . . . . . . . . . . . . . . . . . . . . 350 16.3 字符编码和Unicode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 351 16.3.1 转换数据. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 352 16.3.2 wxCSConv (wxMBConv) . . . . . . . . . . . . . . . . . . . . . . . . 352 16.3.3 转化来自外部的临时缓存数据. . . . . . . . . . . . . . . . . . . . . 353 16.3.4 帮助文件. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 354 16.4 数字和日期. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 354 16.5 其它媒介. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 355 16.6 一个小例子. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 355 16.7 本章小结. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 357 17 编写多线程程序358 17.1 什么时候使用多线程,什么时候不要使用. . . . . . . . . . . . . . . . . . . . 358 17.2 使用wxThread . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 359 17.2.1 线程的创建. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 359 17.2.2 指定栈大小. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 360 17.2.3 指定优先级. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 360 17.2.4 启动线程. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 360 17.2.5 怎样暂停线程以等待一个外部条件. . . . . . . . . . . . . . . . . . . 360 17.2.6 线程中止. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 361 17.3 用于线程同步的对象. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 361 17.3.1 wxMutex . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 361 17.3.2 死锁. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 362 17.3.3 wxCriticalSection . . . . . . . . . . . . . . . . . . . . . . . . . 362 17.3.4 wxCondition . . . . . . . . . . . . . . . . . . . . . . . . . . . . 363 17.3.5 wxCondition使用举例. . . . . . . . . . . . . . . . . . . . . . . . 363 17.3.6 wxSemaphore . . . . . . . . . . . . . . . . . . . . . . . . . . . . 365 17.4 wxWidgets的线程例子. . . . . . . . . . . . . . . . . . . . . . . . . . . . 365 17.5 多线程的替代方案. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 366 17.5.1 使用wxTimer . . . . . . . . . . . . . . . . . . . . . . . . . . . . 366 17.5.2 空闲时间处理. . . . . . . . . . . . . . . . . . . . . . . . . . . . 367 17.6 本章小结. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 369 18 使用wxSocket编程370 18.1 Socket类和功能概览. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 370 18.2 Socket及其基本处理介绍. . . . . . . . . . . . . . . . . . . . . . . . . . . 371 18.2.1 客户端的代码. . . . . . . . . . . . . . . . . . . . . . . . . . . . 371 18.2.2 服务器端代码. . . . . . . . . . . . . . . . . . . . . . . . . . . 372 18.2.3 连接服务器. . . . . . . . . . . . . . . . . . . . . . . . . . . . 373 18.2.4 Socket地址. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 373 18.2.5 Socket客户端. . . . . . . . . . . . . . . . . . . . . . . . . . . . 374 18.2.6 Socket事件. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 374 18.2.7 Socket事件类型. . . . . . . . . . . . . . . . . . . . . . . . . . . 374 18.2.8 wxSocketEvent的主要成员函数. . . . . . . . . . . . . . . . . . . . 374 18.2.9 使用Socket事件. . . . . . . . . . . . . . . . . . . . . . . . . . . 374 18.2.10 Socket状态和错误提醒. . . . . . . . . . . . . . . . . . . . . . . . 375 18.2.11 发送和接收Socket数据. . . . . . . . . . . . . . . . . . . . . . . . 376 18.2.12 创建一个Server . . . . . . . . . . . . . . . . . . . . . . . . . . . 377 18.2.13 处理新的连接请求事件. . . . . . . . . . . . . . . . . . . . . . . . 377 18.2.14 Socket事件概述. . . . . . . . . . . . . . . . . . . . . . . . . . . 377 18.3 Socket标记. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 378 18.3.1 wxWidget中的阻塞和非阻塞socket . . . . . . . . . . . . . . . . . . . 378 18.3.2 这些标记是怎样影响Socket的行为的. . . . . . . . . . . . . . . . . . 380 18.3.3 标准socket和wxSocket . . . . . . . . . . . . . . . . . . . . . . . . 380 18.4 使用Socket流. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 380 18.4.1 文件发送线程. . . . . . . . . . . . . . . . . . . . . . . . . . . . 381 18.4.2 文件接收线程. . . . . . . . . . . . . . . . . . . . . . . . . . . 382 18.5 替代wxSocket . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 382 18.6 本章小结. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 383 19 使用文档/视图框架384 19.1 文档/视图基础. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 384 19.1.1 选择用户界面类型. . . . . . . . . . . . . . . . . . . . . . . . . . 385 19.1.2 创建和使用frame窗口类. . . . . . . . . . . . . . . . . . . . . . . . 386 19.1.3 定义你的文档和视图类. . . . . . . . . . . . . . . . . . . . . . . 387 19.1.4 定义你的窗口类. . . . . . . . . . . . . . . . . . . . . . . . . . . 395 19.1.5 使用wxDocManager和wxDocTemplate . . . . . . . . . . . . . . . . . . 396 19.2 文档/视图框架的其它能力. . . . . . . . . . . . . . . . . . . . . . . . . . 398 19.2.1 标准标识符. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 398 19.2.2 打印和打印预览. . . . . . . . . . . . . . . . . . . . . . . . . . . 398 19.2.3 文件访问历史. . . . . . . . . . . . . . . . . . . . . . . . . . . . 399 19.2.4 显式创建文档类. . . . . . . . . . . . . . . . . . . . . . . . . . . 399 19.3 实现Undo/Redo的策略. . . . . . . . . . . . . . . . . . . . . . . . . . . . 399 19.4 本章小结. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 401 20 完善你的应用程序402 20.1 单个实例和多个实例. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 402 20.2 更改事件处理机制. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 406 20.3 降低闪烁. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 407 20.4 实现联机帮助. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 408 20.4.1 使用帮助控制器. . . . . . . . . . . . . . . . . . . . . . . . . . . 409 20.4.2 帮助文件中的声明. . . . . . . . . . . . . . . . . . . . . . . . . . 412 20.4.3 其它提供帮助的手段. . . . . . . . . . . . . . . . . . . . . . . . . 413 20.4.4 上下文敏感帮助和工具提示. . . . . . . . . . . . . . . . . . . . . . 414 20.4.5 菜单项提示. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 414 20.5 解析命令行参数. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 414 20.6 存储应用程序资源. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 416 20.6.1 减少数据文件的数量. . . . . . . . . . . . . . . . . . . . . . . . . 416 20.6.2 找到应用程序所在的位置. . . . . . . . . . . . . . . . . . . . . . . 417 20.7 调用别的应用程序. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 418 20.7.1 启动一个应用程序. . . . . . . . . . . . . . . . . . . . . . . . . . 418 20.7.2 打开文档. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 418 20.7.3 重定向进程的输入和输出. . . . . . . . . . . . . . . . . . . . . . . 419 20.8 管理应用程序设置. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 421 20.8.1 保存配置数据. . . . . . . . . . . . . . . . . . . . . . . . . . . . 421 20.8.2 编辑选项. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 422 20.9 应用程序安装. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 423 20.9.1 在Windows系统上安装你的程序. . . . . . . . . . . . . . . . . . . . 424 20.9.2 在Linux系统上制作安装程序. . . . . . . . . . . . . . . . . . . . . 425 20.9.3 Linux环境上的动态链接库的问题. . . . . . . . . . . . . . . . . . . 426 20.9.4 在Mac OSX上安装程序. . . . . . . . . . . . . . . . . . . . . . . . 426 20.10 遵循用户界面设计规范. . . . . . . . . . . . . . . . . . . . . . . . . . . . 428 20.10.1 标准按钮. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 428 20.10.2 菜单. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 429 20.10.3 图标. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 429 20.10.4 字体和颜色. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 429 20.10.5 应用程序中止时的行为. . . . . . . . . . . . . . . . . . . . . . . . 429 20.10.6 进一步阅读. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 430 20.11 全书小结. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 430

2011-12-21

软件项目开发文档全集

软件开发的过程.doc 计算机软件开发文档编写指南.doc ERP模型构件说明.doc 药店进销存经营流程描述 项 目 开 发 计 划 详细设计说明书 系统需求报告(前期需求) 系统实施工作计划 软件开发计划书模版 软件测试指南 软 件 测 试 报 告 任务清单及工作量估算 客户初步需求调查概述 技术测试规范(草案) 管 理 员 手 册 概要设计说明书 uml1.0中文文档

2009-03-25

C# Language Specification 2.0

C# 语言规范的 1.2 和 2.0 版是关于 C# 语法的权威资料。它们包含该语言各个方面的详细信息,包括 Visual C# 产品文档未涉及的许多语法点。 1.2 规范讨论了在 Visual C# 2005 推出之前为该语言添加的功能,而 2.0 规范则讨论了针对 Visual C# 2005 添加的功能。

2009-03-23

原汁原味的 C# Language Specification 1.2

C# 语言规范的 1.2 和 2.0 版是关于 C# 语法的权威资料。它们包含该语言各个方面的详细信息,包括 Visual C# 产品文档未涉及的许多语法点。 1.2 规范讨论了在 Visual C# 2005 推出之前为该语言添加的功能,而 2.0 规范则讨论了针对 Visual C# 2005 添加的功能。

2009-03-23

获取系统图标解决方案

文档介绍了用C#怎样获取Windows诸如我的电脑,桌面的图标,还能够根据文件名(含文件后缀)获取文件类型的图标,如Word,txt,mp3等。在做资源管理器的时候会用到同时也参考了网上资源。

2009-03-22

人大 企业 管理课件

组织成功的能力决定要素.ppt 赢利模式.ppt 企业管理概论(企业生命周期).ppt

2009-03-21

现代 企业 经营 管理

企业设立 企业形象 企业战略 第十章 企业购销实务 .ppt 第十一章 企业储运实务.ppt 第十二章 企业诊断 .ppt 第三章 企业竞争.ppt

2009-03-21

File+Explorer.

C#实现的了类windows资源管理器 可以方便大家学习使用哦

2009-03-21

简明教程 一周学会C#

一周学会C# 简明教程 C#作为微软在21世纪推出的新语言,它有着其他语言无法比拟的优势。但如何在短时间内迅速掌握它,却是一个比较难的问题。但如果你看完这个教程后,你一定会理解并掌握C#。

2009-03-20

C#程序开发范例宝典

第1章 窗体与界面设计 1<br>1.1 菜单应用实例 2<br>实例001 带历史信息的菜单 2<br>实例002 菜单动态合并 3<br>实例003 像开始菜单一样漂亮的菜单 4<br>实例004 任务栏托盘菜单 5<br>实例005 可以拉伸的菜单界面 5<br>实例006 菜级联菜单 7<br>1.2 工具栏设计 7<br>实例007 带背景的工具栏 7<br>实例008 浮动工具栏 8<br>实例009 带下拉菜单的工具栏 9<br>实例010 具有提示功能的工具栏 9<br>1.3 状态栏设计 10<br>实例011 在状态栏中显示检查框 10<br>实例012 带进度条的状态栏 11<br>实例013 状态栏中加入图标 12<br>1.4 导航菜单界面 12<br>实例014 OutLook界面 12<br>实例015 带导航菜单的主界面 14<br>实例016 图形化的导航界面 15<br>1.5 特色程序界面 17<br>实例017 类QQ的程序界面 17<br>实例018 类似Windows Xp的程序界面 18<br>实例019 以图形按钮显示的界面 20<br>实例020 以树形显示的程序界面 21<br>

2009-03-20

人事信息管理系统

人事信息管理系统 论文

2008-05-20

进销存管理程序 Sparrow

进销存管理程序 Sparrow

2008-05-03

工厂企业进销存管理系统文档

工厂企业进销存管理系统文档

2008-05-03

VB.NET开发的进销存系统

VB.NET开发的进销存系统

2008-05-03

ADSL共享上网方式大总结CHM电子书

ADSL共享上网方式大总结CHM电子书

2008-03-20

VisualBasic_NET编程基础

VisualBasic_NET编程基础.rar

2008-03-20

电脑资料大全

电脑资料大全 很多电脑资料的,救急很好查阅。

2008-03-20

电脑资料大全

<br>电脑资料大全<br><br>很多电脑资料的,救急很好查阅。

2008-03-20

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除