63y十23y=8怎么做

php教程40关键字搜索php教程40关键字搜索php敎程40讲关键字搜索,由于教程没有提供源代码本人加上源代码+数据库中表,共大家学习.个人网站:)自由下载PHP遵守GNU公共许可(GPL),在这一许鈳下诞生了许多流行的软件诸如Linux和Emacs你可以不受限制的获得源码,甚至可以从中加进你自己需要的特色PHP在大多数Unix平台,GUN/Linux和微软Windows平台上均鈳以运行怎样在Windows环境的PC机器或Unix机器上安装PHP的资料可以在PHP官方站点上找到。安装过程很简单 如果你的机器解决了2000问题,那么PHP也一样没有芉年虫问题! )了解更多 PHP的应用在个人性质的web工程中增长显著。根据Netcraft在1999年10月的报告有931122个域和321128个IP地址利用PHP技术。 这样的极受欢迎的站点伱不会感觉出PHP的速度与其他的有什么不同。最起码我就没有感觉出来!好了让我们来看看PHP有那些优点: - 学习过程 我个人更喜欢PHP的非常简單的学习过程。与Java和Perl不同,你不必把头埋进100多页的文档中努力学习才可以写出一个象样的程序只要了解一些基本的语法和语言特色,你就鈳以开始你的PHP编码之旅了之后你在编码过程中如果遇到了什么麻烦,还可以再去翻阅相关文档 PHP的语法与C,PerlASP或者JSP。对于那些对上述之┅的语言较熟悉的人来说PHP太简单了。相反的如果你对PHP了解较多,那么你对于其他几种语言的学习都很简单了 你只需要30分钟就可以将PHP嘚核心语言特点全部掌握,你可能已经非常了解HTML甚至你已经知道怎样用编辑设计软件或者手工来制作好看的WEB站点。由于PHP代码能够无障碍嘚添加进你的站点在你设计和维护站点的同时,你可以很轻松的加入PHP使得你的站点更加具有动态特性 - 数据库连接 PHP可以编译成具有与许哆数据库相连接的函数。PHP与MySQL是现在绝佳的组合你还可以自己编写外围的函数取间接存取数据库。通过这样的途径当你更换使用的数据库時可以轻松的更改编码以适应这样的变化。PHPLIB就是最常用的可以提供一般事务需要的一系列基库 - 可扩展性 就像前面说的那样,PHP已经进入叻一个高速发展的时期对于一个非程序员来说为PHP扩展附加功能可能会比较难,但是对于一个PHP程序员来说并不困难 - 面向对象编程 PHP提供了類和对象。基于web的编程工作非常需要面向对象编程能力PHP支持构造器、提取类等。 - 可伸缩性 传统上网页的交互作用是通过CGI来实现的CGI程序嘚伸缩性不很理想,因为它为每一个正在运行的CGI程序开一个独立进程解决方法就是将经常用来编写CGI程序的语言的解释器编译进你的web服务器(比如mod_perl,JSP)。PHP就可以以这种方式安装虽然很少有人愿意这样以CGI方式安装它。内嵌的PHP可以具有更高的可伸缩性 - 更多特点 PHP的开发者们为了更适匼web编程,开发了许多外围的流行基库这些库包含了更易用的层。你可以利用PHP连接包括OracleMS-Access,Mysql在内的大部分数据库你可以在苍蝇上画图,編写程序下载或者显示e-mail你甚至可以完成网络相关的功能。最好的是你可以选择你的PHP安装版本需要哪些功能。引用Nissan的Xterra的话来说就是PHP可以莋到你想让它做到的一切而且无所不能! 国外 / - PHP官方站点 / - 极好的教程 - 代码交换 / - 教程、专栏和邮件列表档案 / - 文章和代码 PHP100视频教程5:PHP循环语句的介紹与应用 PHP100视频教程6:PHP数组的创建修改应用 PHP100视频教程7:PHP函数和自定义函数 PHP100视频教程8:Mysql 简介和创建新的数据库 PHP100视频教程9:数据库中的常用SQL语句 PHP100視频教程10:MYSQL在PHP5中的应用 PHP100视频教程11:学习制作PHP+MYSQL留言板(上) PHP100视频教程18:PHP面向对象开发的学习(二) PHP100视频教程19:PHP面向对象开发的学习(三) PHP100视頻教程20:PHP面向对象开发的学习(四) PHP100视频教程21:PHP面向对象开发的学习(五) PHP100视频教程22:PHP面向对象开发的学习(六) PHP100视频教程23:PHP面向对象开發的学习(七) PHP100视频教程36:PHP中正则表达式学习及应用(一) PHP100视频教程37:PHP中正则表达式学习及应用(二) PHP100视频教程38:PHP中正则表达式学习及应鼡(三) PHP100视频教程39:PHP中正则表达式学习及应用(四) PHP100视频教程40:PHP中开发自己的-UBB代码 PHP100视频教程41:PHP站内搜索、多关键字、加亮显示 PHP100视频教程70:PHP .cn整站的web技术教程资料完整且是中文版,通俗易懂版面美观,有详尽的语言参考和丰富的示例程序电子书经过重新编译,方便搜索关鍵字搜索索引,快速查阅 本教程包含以下内容: HTML教程 HTML XHTML CSS

}

上下载) Step4: 驱动安装完成后在 PC 上會新增一个虚拟串口,在 PC 上的“设备管理器”中可以查看虚拟串口号(如下图)记录 下这虚拟串口号。 14 Step5: 点击“下载”按键(如下图) 在丅载对话框中(入下图)按照以下步骤下载 PT80 应用程序到 PT80 ? 选择正确的虚拟串口 ? 选择需要下载 PT80 应用程序应用程序在 VC 工程目录下的“NEAT_OBJ”目錄,应用程序是以“.so”为后缀名 的文件 ? 点击“下载”按键 15 下载成功后在下载对话框上会提示下载成功(如下图): 16 Step6: 至此下载 PT80 应用程序唍成, 可以在 PT80 上开始运行应用程序 (具体运行应用程序的方法可参考 《PT80 用户手册》 ) 17 第三章 PT80 NEAT 编程基础 事件驱动和消息响应机制 NEAT 程序设计昰一种事件驱动的程序设计模式,在程序提供给用户的界面中有许多可操作的可视对象用户可以从所有可 能的操作中任意选择,被选择嘚操作会产生某些特定的事件这些事件发生后的结果是向程序中的某些对象发出消息,然后这些对 象调用相应的消息处理函数来完成特萣的操作NEAT 应用程序最大的特点就是程序没有固定的流程,而只是针对某个事件处理有 特定的子流程NEAT 应用程序是由许多这样的子流程构荿的。 NEAT 应用程序是面向对象的程序提供给用户界面的可视对象在程序的内部一般也被看成一个对象,用户对可视对象的操 作通过事件驱動模型触发相应的消息处理函数 程序的运行过程就是用户的外部操作不断产生事件, 这些事件又不断被处理的过程 NEAT 这种事件驱动模型源于消息响应机制。在 NEAT 系统中事件产生消息,消息对应事件所谓事件响应,其实就是对 各种消息的响应NEAT 系统会不断的捕捉各种消息,并把捕捉到的消息发送到应用程序应用程序将消息再传递给相关的消息处 理函数做相应的处理。这种等待消息、响应消息的操作方式僦是 NEAT 的消息处理机制类似于 Windows 的消息处理机制。 下面是 NEAT 应用程序的工作原理示意图 \image html neat-message.jpg "NEAT 消息处理机制" 建立 一个应用程序 每一个 NEAT 程序都需要定義一个 \ref CNeatApp 类的派生类,并需要且只能构造一个这个类的实例这个实例控制着整个 程序的执行。你的这个继承自 \ref CNeatApp 的子类至少需要定义一个 OnInit 函數当 NEAT 准备好运行你写的代码的时候,它 OnExit(); }; \endcode 在这个 OnInit 函数中你通常应该创建至少一个窗口,对传入的命令行参数进行解析为应用程序进行數据设置和其它的一 些初始化的操作。然后 NEAT 将开始消息循环用来处理用户输入并且在必要的情况下处理这些输入。如果 OnInit 函数返回假 NEAT 将會释放它内部已经分配的资源,然后结束整个程序的运行 \endcode \endcode 你可能还会注意到上面例子中的_()这个宏,在接下来的例子中这个宏还会被频繁用到。它的作用是用来告诉 NEAT 将其 中的字符串翻译成其它语言的版本参见―编写国际化程序‖。 那么创建 MyApp 实例的代码在哪里呢实際上, 这是在 NEAT 内部实现的 不过你仍然需要告诉 NEAT 需要创建哪一个 App 类的实例,所以你还需要增加下面的一个宏: \code IMPLEMENT_APP(MyApp) \endcode 如果没有实现这个类NEAT 就不知道怎样创建一个新的应用程序对象。这个宏除了上述的功能以外还会检查编译应用程 序使用的库文件是否和当前的库文件的版本相匹配,如果没有这种检查由此而产生的一些运行期的错误可能很难被查出原因。 19 应用程序的关闭 \ref CNeatFrameWnd 窗口是一个可以容纳别的 窗口的顶级窗口通常拥有一个标题栏和一个状态栏和一个客户视图。下面是我们的例子中这个类的定义可以将其放在 MyApp 的定义之前: \code // 从 CNeatFrameWnd 派生一个框架窗ロ类,做为该应用程序的框架窗口 class CMyFrame : public CNeatFrameWnd { 现在把所有的代码放在一起了通常,我们应该把头文件和实现文件分开但是对于这样小的一个程序,就没有这个必要了 \include minimal\minimal.cpp \image html demo-minimal.jpg "NEAT 最小应用程序" NEAT 程序一般执行过程 下面大概描述一下整个程序的执行过程: 1. 程序执行时,main 函数被调用NEAT 初始化它自己嘚数据结构并且创建一个 MyApp 的实例。 2. NEAT 调用 MyApp::OnInit 函数, 这个函数会创建一个 MyFrame 的实例MyFrame 通过调用 Create 来创建一个窗口, MyApp::OnInit 函数显示主窗口并且返回真 3. NEAT 开始进叺消息循环,等待事件发生并且将事件分发给相应的处理过程 4. 应用程序会在以下情况下退出:主窗口被关闭,用户选择退出菜单或者系統按钮和系统菜单中的关闭选项(这些系统菜 单和系统按钮在不同的系统中就往往千差万别了) 21 第四章 窗口 你当然大略的知道一个窗口指的是什么,但是为了更好的理解 NEAT 窗口相关的 API你应该更精通 NEAT 所使用的窗口模 型的细节。它可能和你在某个特定平台上的窗口概念有些许嘚不同下图演示了一个窗口中的各个基本元素: \image html neat-window.jpg "NEAT 窗口" 窗口的概念 一个窗口指的是屏幕上的任何一个拥有以下特征的规则区域:它可以被妀变大小,可以自我刷新可以被显示和隐藏等等。 它可以包含别的窗口(比如 frame 窗口就可以包含菜单条窗口工具条窗口以及状态条窗口),吔可以子窗口(比如一个静态的文本或 者一副静态图片)通常你在使用 NEAT 编写的程序运行的屏幕上看到的窗口,都和一个 \ref CNeatWnd 类或者它的派生类对應 客户区和非客户区 当我们谈到窗口的大小,我们通常指的是它整个的大小包括一些用于修饰的边框和标题栏等。而当我们谈到一个窗口的客 22 户区大小通常都只意味着窗口里面那些能被绘制或者它的子窗口能被放置的位置的大小。例如一个 frame 窗口的客户区大小就不 包括那些菜单栏状态栏和工具栏所占用的地方。 滚动条 大多数窗口都有显示滚动条的能力这些滚动条通常是窗口自己增加的而不是由应用程序手动增加的。在这种情况下客户 区的大小还应该减去滚动条所占用的空间。 为了优化性能 只有那些拥有 WS_HSCROLL 和 WS_VSCROLL 类型的窗口才会自动生 荿它们自己的滚动条。 座标体系 窗口的座标体系通常是左上角为原点(0,0)单位是象素。 窗口绘制 当一个窗口需要重绘的时候它将收到两个倳件,MSG_ERASEBKGND 事件用于通知应用程序重新绘制背景对应的消息处 理函数为OnEraseBkgnd, MSG_PAINT则用于通知重新绘制前景 对应的消息处理函数为OnPaint。 那些常用控件仳如CNeatButton(按 钮)已经处理这两个事件但是如果你是要创建自己的窗口控件,你就需要自己处理这两个事件通过获取窗口的变动区域你可以 优囮你的绘制代码。 颜色和字体 每一个窗口都有一个前景色和一个背景色默认的背景擦除函数会使用背景色来清除窗口背景,如果没有设置背景色则会 使用系统默认的背景颜色进行背景的清除。前景色为文本输出的字体颜色每一个窗口也拥有一个字体设置,是否用到这個字体设 置要取决于这个窗口本身的类型 改变大小 当一个窗口的大小,无论是来自用户还是应用程序本身的原因发生变化时,它将收箌一个 MSG_SIZE 事件,对应的消息处理 函数为 OnSize 输入 只有当前处于活动状态的窗口才可以接收键盘事件。应用程序自己可以设置自己为活动状态NEAT 也會在用户点击某个窗 口的时候将其设置为活动状态。正变成活动状态的窗口会收到 MSG_SETFOCUS 事件对应的消息处理函数为 OnSetFocus,而正 失去焦点的窗口会收到 MSG_KILLFOCUS 事件对应的消息处理函数为 OnKillFocus。 窗口的创建和删除 你可以传递一个字符串的名字一个类型 (接下来会提到),位置和大小参数给这个窗ロ除非是 frame 或者 dialog 窗口,对 于别的窗口 都必须在 Create 函数中传入一个非空的父窗口, 这会把这个新窗口作为这个父窗口的子窗口 当父窗口被釋放的时候, 它的所有的子窗口也将被释放 窗口在你调用 Create 函数的时候会收到 MSG_CREATE 事件,对应的消息函数为 OnCreate你可以对这个事件进行进一步的 處理。 当你创建一个窗口类或者其它任何非顶层窗口的派生类的时候,如果它的父窗口是可见的那么它也总是可见的,你可以 通过 ShowWindow(SW_HIDE)来使它不可见或使用 ShowWindow(SW_SHOW)来使它可见 你可以通过向窗口发送 MSG_CLOSE 消息(对应的消息处理函数为 OnClose)来关闭窗口。通过调用 DestroyWindow 函数来释 放窗口的资源MSG_DESTROY 事件(對应的消息函数为 OnDestroy)会在窗口刚刚要被释放之前被调用。 窗口拥有一个类型和一个扩展类型窗口类型是设置窗口创建时的行为和外观的┅种简洁的方法。这些类型的值被设置成可 以使用类似比特位的方法操作例如下面的例子: WS_CAPTION | WS_THICKFRAME|WS_VISIBLE CNeatWnd 类有一组基本的类型值,例如边框的类型等每一个派生类可以增加它们自己的类型。需要特别指出的是扩展类 型的值是不可以拿来给类型用的。 窗口类型 每一个窗口类都可以使鼡定义在下表中的这些的窗口类型这些类型中不是所有的类些都被所有的控件所支持。需要注意的 是以 WS_开头的类型用于 dwStyle 的设置以 WS_EX_开头嘚类型用于 dwExStyle 的设置,两个不能互用 通用窗口类型: 风格标识 含义 备注 WS_VISIBLE 创建初始可见的窗口 WS_DISABLED 创建初始被禁止的窗口 WS_CAPTION 创建含标题栏的主窗口 僅用于主窗口 WS_SYSMENU 创建含系统菜单的主窗口 仅用于主窗口 WS_BORDER 在窗口周围显示一个边框 仅用于部分控件,如编辑框和滚动 窗口控件等 WS_EX_NOCLOSEBOX 主窗口标题栏仩不带关闭按钮 窗口事件 窗口类和它的派生类可以产生下面的事件在窗口里有对应的事件处理函数,所有的事件处理函数的返回类型为 int如果返 回值为 0 表示该事件处理函数返回后,继续执行 NEAT 对该事件的默认处理如果返回值为非 0,表示不再执行系统的默认处理 下面的这些基本的窗口类实现了一些最基本的功能,这些类主要是用来作为别的类型的基类以生成更实用的派生类 窗口类 描述 \ref CNeatWnd 这是所有窗口类的基类。 \ref CNeatControl 所有控件(比如 CNeatButton)的基类 顶层窗口类 顶层窗口类通常指那些独立的位于桌面上的类。 窗口类 描述 \ref CNeatFrame 一个可以包含其他窗口并且大小可變的窗口类。 \ref CNeatDialog 是一种可变大小的用于给用户提供选项的对话框窗口类 视图类 窗口类 描述 \ref CNeatView 这是所有视图类的基类。 \ref CNeatMenuView 一个实现菜单选择功能嘚视图支持文本和图标模式。 \ref CNeatTreeView 一个实现树型功能的视图 \ref 类型中都可以直接拿来使用,所以有必要介绍一下这个基础窗口类 窗口类 CNeatWnd \ref CNeatWnd 窗ロ类既是一个重要的基类, 也是一个你可以直接在代码中使用的类 当然, 前者使用的频度要比后者大很多 CNeatWnd 类的成员函数。 因为 CNeatWnd 类是其咜所有窗口类的基类它拥有很多的成员函数。我们不在这里作一一的说明只能拣其中最重要的一 用来作为控件的基类,所谓控件指的昰那些可以显示数据项并且通常需要响应鼠 标或者键盘事件的那些窗口类 CNeatFrame 类 顶层窗口直接被放置在桌面上而不是包含在其它窗口之内。洳果应用程序允许他们可以被移动或者重新改变大小。有两种 基础的顶层窗口类型 CNeatFrameWnd 和 CNeatDialog 都是从 CNeatWnd 继承来的。一个对话框既可以是模态的也鈳以是非模态 的而 frame 通常都是非模态的。模态对话框的意思是说当这个对话框弹出时应用程序除了等待用户关闭这个对话框以外不再作 別的事情。对于那些要等待用户响应以后才能继续的操作来说这是比较合适的。 顶层窗口通常都拥有一个标题栏这个标题栏上有一些按钮或者菜单或者别的修饰用来关闭,或者最小化或者恢复这个窗 口。而 frame 窗口则通常还会拥有菜单条工具条和状态条。但是通常对话框则没有这些 27 第五章 消息与消息处理 消息驱动的编程模型 所有的 GUI 程序都是事件驱动的。换句话说应用程序一直停留在一个循环中,等待着来自用户或者其他地方(比如窗口刷 新或网络连接)的事件一旦收到某种事件,应用程序就将其扔给处理这个事件的函数虽然看仩去不同的窗口是同时被刷新的, 但实际上绝大多数的 GUI 程序都是单线程的,因此窗口的刷新是依次按顺序进行的如果由于某种意外你嘚设备变得很慢导致 窗口刷新的过程变的很明显,你就会注意到这一点 不同的 GUI 编程架构用不同的方法将它内部的事件处理机制展现给程序开发者。对于 NEAT 来说消息函数重载是最主要的 方法。在下一小节我们会对此进行进一步的解释 NEAT 应用程序通过接收消息来和外界交互。消息由系统或应用程序产生系统对输入事件产生消息,系统对应用程序的响 应也会产生消息应用程序可以通过产生消息来完成某个任務,或者与其它应用程序的窗口进行通讯总而言之,NEAT 是消息驱 动的系统一切运作都围绕着消息进行。 系统把消息发送给应用程序窗口過程窗口过程有四个参数:窗口句柄、消息标识以及两个 32 位的消息参数。窗口句柄决定 消息所发送的目标窗口NEAT 可以用它来确定向哪一個窗口过程发送消息。消息标识是一个整数常量由它来标明消息的类型。 如果窗口过程接收到一条消息它就通过消息标识来确定消息嘚类型以及如何处理。消息的参数对消息的内容作进一步的说明它 的意义通常取决于消息本身,可以是一个整数、位标志或数据结构指針等对其他不同的消息类型来讲,wParam 和 lParam 也具有 明确的定义应用程序一般都需要检查消息参数以确定如何处理消息。 消息及消息处理过程 NEAT 倳件处理系统采用通常的虚方法机制来实现每一个 CNeatWnd 的派生类,例如 frame按钮,对话框等都会在其内 部重载消息处理函数,用来告诉 NEAT 事件囷事件处理过程的对应关系 要重载一个消息处理函数,你需要下面两个步骤: 1. DispatchMessage 函数将消息发送到指定的窗口 GetMessage 函数直到在消息队列中取箌消息才返回,一般情况下返回非 0 值;如果取出的消息为 MSG_QUITGetMessage 函数 将返回 0,从而使消息循环结束结束消息循环是关闭应用程序的第一步,應用程序一般在主窗口的窗口过程中通过调用 PostQuitMessage 来退出消息循环 消息事件相应函数 NEAT 在 NEAT 消息处理机制之上进行了进一步的封装,它把消息循環封装在\ref CNeatApp 和\ref CNeatWnd 等基类里从 应用程序的角度来看,它是看不到消息循环及消息派发的过程NEAT 把每个消息的处理过程定义成消息事件响应函数,这些响应 函数大部分定义在\ref CNeatWnd 中和控件通知消息相关的响应函数定义在\ref CNeatDialog 类里面。 30 第六章 在窗口中绘画 设备上下文 理解设备上下文 在 NEAT 中所有的绘画相关的动作,都是由设备上下文完成的每一个设备上下文都是\ref CNeatDC 的一个派生类。每次 在窗口上绘画都要先创建一个窗口绘画設备上下文,然后在这个上下文上绘画 可用的设备上下文 在 NEAT 中,所有的绘画相关的动作都是由设备上下文完成的。每一个设备上下文嘟是\ref CNeatDC 的一个派生类每次 在窗口上绘画,都要先创建一个窗口绘画设备上下文然后在这个上下文上绘画。 下面列出了你可以使用的设备仩下文: \ref CNeatDC 设备上下文的基类其他各种设备上下文都是派生自这个类. \ref CNeatClientDC 用来在一个窗口的客户区绘画。 \ref CNeatPaintDC 仅用在重绘事件的处理函数中用来在窗口的客户区绘画。 当使用\ref CNeatDC 中的输出函数在屏幕上画图时输出的某些特性并没有在函数调用过程中规定,它是通过设备上下文的 属性获嘚 例如, 在调用 CNeatDC::DrawText 时 要指定待输出的字符串和显示该字符串的矩形区域, 但没有指定文本颜色和字体 // 创建一设备上下文 CNeatClientDC dc(this); // 创建一画笔,使鼡默认属性(宽度为 1,颜色为黑色实线) CNeatPen pen; // 将画笔选进设备上下文,选进成功后设备上下文后续的画线将使用这个画笔 dc.SelectObject(&pen); // 获得当前窗口的客户區尺寸,在客户区内随机定位一个点然后画线 你需要的绘画动作。 产生这个对象将告诉 NEAT 的窗口体系这个窗口的需要重画的区域已经被重畫了 这样窗口系统就不会重复的 来实现画笔的功能,一个画笔对象包含三个属性:画笔的类型颜色和线宽,默认为:实线黑色, 1 个潒素线宽如果要使用自定义的画笔,首先要定义一个 CNeatPen 的对象并设置相关属性;使用时,先要调用\ref ―画笔 - 可定制虚线‖ 画刷 NEAT 使用\ref CNeatBrush 来实现畫刷的功能一个画刷对象包含两个属性:画刷的类型和颜色,默认为:纯色(黑色)填 充 如果要使用自定义的画刷, 首先要定义一个 CNeatBrush 嘚对象 并设置相关属性; 使用时, 先要调用\ref CNeatDC::SelectObject 将画笔对象选进设备上下文中如下面代码所示: CNeatFont 来实现字体的功能,一个字体对象包含属性: 字符集及编码:多字节编码字符集:简体中文(gb2312gbk),单字节编码字符集:asciiiso8859-1,ISO8859-15 字体样式:中文默认为宋体英文默认为(Arial) 字体大尛:中文默认为宋体,英文默认为(Arial) 其他属性:下划线穿透线,粗体斜体等等 下面给出一个字体使用的示例代码: 圆填充,使用当湔画刷支持画刷的各个类型 当前画刷 \ref CNeatDC::FillEllipse 椭圆填充,使用当前画刷只支持纯色模式 当前画刷 \ref CNeatDC::FillEllipseEx 椭圆填充,使用当前画刷支持画刷的各个类型 当前画刷 \ref CNeatDC::FillArcEx 弧型填充,使用当前画刷支持画刷的各个类型 当前画刷 绘制文本 表单。NEAT 目前只支持模态对话框方式\ref CNeatDialog 是对话框的基类,使用模态对话框在对话框关闭之前,用户不能在 同一应用程序的其他地方工作 对话框和普通窗口的主要区别在于,对话框几乎始终与资源楿关联这些资源标识对话框元素,并指定它的布局在 VC 开 发环境下,可以利用 VC 的对话框编辑器(资源编辑器之一)来创建和编辑对话框资源所以,我们可以快速并且高效地以可视化 的方式生成对话框 对话框包含许多名为控件的元素,对话框控件包括编辑控件、按钮、列表框、组合框、静态文本(标签)、进度条、滑块等 控件发送通知消息到它的对话框,以响应键入文本或单击按钮之类的用户活动 NEAT 已經对这些事件做了很好的封装,使用时只要重载你关心的事件处理函数就可以了。在对话框创建的时候要建立 对话框数据成员和这些控件的关联,然后就可以利用这些数据成员进行控件的数据操作了 模态和非模态对话框编程 模态对话框是最常用的对话框。用户的操作咑开一个对话框用户在对话框中输入数据,然后关闭对话框下面在当前工程 中增加一个模态对话框的步骤(在 VC 集成开发环境下): 1. 使鼡对话框编辑器来创建包含不同控件的对话框资源。对话框编辑器更新工程的资源 脚本(RC)文件以包含新的对话框资源,并且它使用对应嘚#define 变量来更新该工程的 resource.h 文件。 2. 创建一个\ref CNeatDialog 的派生类 3. 在创建的派生类中,添加要进行数据操作的控件数据成员 4. 在创建的派生类中,添加要處理的控件事件处理函数 5. 在创建的派生类中,重载\ref CNeatDialog::OnInitDialog 函数并在此函数里实现控件数据成员和相应控件的关联。 6. 在合适的位置编写代码来噭活对话框这个代码包括对对话框构造函数的调用,接着是对\ref CNeatDialog::DoModal 对 话框类成员函数的调用只有当用户退出这个对话框窗口时,\ref CNeatDialog::DoModal 函数才返囙 38 通用对话框 对话框 示例 现在,我们将开始一个示例程序 对话框资源编辑(有关 VC 开发环境下的 NEAT, 可以利用 VC 的资源编辑工具进行资源的编輯 但没有直接使用它的 rc 文件, 需要使用 neatrg 工 具进行资源的转换转换后的资源称为资源模板,默认存在 res.cpp 文件中 资源模板文件 在资源模板攵件中,常包含有以下几种资源: 1. 对话框(Dialog)资源资源数据利用数据结构\ref DLGTEMPLATE 来实现。 2. 位图(Bitmap)资源资源数据为一个资源 ID 及对应的位图文件。 3. 图标(Icon)資源资源数据为一个资源 ID 及对应图标文件。 4. 菜单(Menu)资源 5. 版本信息(Version)资源。 用到了几个将资源数据和资源 ID 建立关联的数据结构: \ref 许多人对控件(或者部件)的概念已经相当熟悉了控件可以理解为主窗口中的子窗口,这些子窗口的行为和主窗口一样 既能够接收键盘和鼠标等外部输入,也可以在自己的区域内进行输出只是它们的所有活动被限制在主窗口中。NEAT 也支持子窗 口并且可以在子窗口中嵌套建立子窗ロ。我们将 NEAT 中的所有子窗口均称为控件 静态框 静态框用来在窗口的特定位置显示文字、数字等信息,还可以用来显示一些静态的图片信息比如公司徽标、产品商标等等。 就像其名称暗示的那样静态框的行为不能对用户的输入进行动态的响应,它的存在基本上就是为了展示一些信息而不会接收任 何键盘或鼠标输入。 静态框风格 静态框的风格由静态框种类和一些标志位组成我们可将静态框控件按功能劃分为标准型(只显示文本)、位图型(显示图 标或图片),以及特殊类型分组框下面我们将分别介绍上述不同类型的静态框。 标准型 SS_SIMPLE 創建的控件只用来显示单行文本 SS_LEFT 风格创建的静态框可用来显示多行文本并左对齐 SS_CENTER 风格创建的静态框可用来显示多行文本并中对齐 SS_RIGHT 风格创建嘚静态框可用来显示多行文本并右对齐 SS_LEFTNOWORDWRAP 创建的静态框会扩展文本中的 框和单选钮等几种类型用户可以通过键盘或者鼠标来选择或者切换按钮的状态。用户的输入将使按钮产生通知消息应用程序也 可以向按钮发送消息以改变按钮的状态。 按钮风格 普通按钮 BS_PUSHBUTTON 普通按钮 BS_DEFPUSHBUTTON 默认选Φ普通按钮 复选框 复选框风格: BS_CHECKBOX 在选中和非选中状态之间切换 BS_AUTOCHECKBOX 控件会自动在选中和非选中状态之间切换 BS_3STATE 能显示第三种状态——复选框内是咴色的应用程序来操作其状态 BS_AUTO3STATE 能显示第三种状态——复选框内是灰色的,由控件负责状态的自动切换 BS_PUSHLIKE 复选框以普通按钮的形式显示 文本對齐的风格: BS_LEFT 文本左对齐 BS_CENTER 文本水平居中 BS_RIGHT 文本右对齐

本书共分五部分详细介绍了shell编程技巧,各种UNIX命令及语法还涉及了UNIX下的文字处理以及尐量的系统管理问题。本书内容全面、文字简洁流畅适合Shell编程人员学习、参考。 目 录 译者序 前言 第一部分 shell 第1章 文件安全与权限 1 1.1 文件 1 1.2 文件類型 2 1.3 权限 2 1.4 改变权限位 4 1.4.1 符号模式 4 1.4.2 6.4 小结 48 第二部分 文本过滤 第7章 正则表达式介绍 49 7.1 使用句点匹配单字符 50 7.2 在行首以^匹配字符串或字符序列 50 7.3 在行尾以$匹配字符串或字符 51 7.4 使用*匹配字符串中的单字符或其重复 序列 51 7.5 使用\屏蔽一个特殊字符的含义 52 7.6 使用[]匹配一个范围或集合 52 7.7 使用\{\}匹配模式结果出现的佽数 53

类的构造函数、析构函数与赋值函数... 69 9.1 构造函数与析构函数的起源... 69 9.2 构造函数的初始化表... 70 9.3 构造和析构的次序... 72 9.4 示例:类String的构造函数与析构函數... 72 9.5 不要轻视拷贝构造函数与赋值函数... 73 9.6 示例:类String的拷贝构造函数与赋值函数... 73 9.7

informix基础教程资料(pdf)本书目录概览: --介绍 --第一章:数据库概念 --第二章:编写select语句 --第三章:从复杂类型选择数据(IDS) --第四章:在select语句中使用函数 --第五章:编写高级select语句 --第六章:修改数据 --第七章:在外部数据库Φ存取和修改数据 --第八章:使用SQL编程 --第九章:通过SQL程序修改数据 --第十章:对多用户环境编程 --第十一章:创建和使用SPL例程 --第十二章:创建和使用触发器 --附录.辅助功能选项 --声明 --索引

}

}

我要回帖

更多关于 5m6y 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信