03 2016 档案

摘要:第四章 文本输出 1,客户区:整个应用程序窗口中没有被标题栏、边框、菜单栏、工具栏、状态栏和滚动条占用的区域。简而言之,客户区就是窗口中程序可以在上面绘制并向用户传达可视化信息的区域。 2,大多数Windows程序在WinMain函数初始化过程中会在进入消息循环之前调用UpdateWindow函数,Windows利用这个机会向窗口过程发送最初的WM_PAINT消息,这个消息通知窗口过程绘制客户... 阅读全文
posted @ 2016-03-28 21:34 我是一个NLPer哦啦啦 阅读(749) 评论(0) 推荐(0) 编辑
摘要:第三章 窗口与消息 1,windows窗口过程:应用程序所创建的每一个窗口都有一个与之关联的窗口过程,用于处理传递给窗口的消息。 2,窗口依据窗口类来创建。窗口类标识了用于处理传递给窗口的消息的窗口过程。窗口类的使用允许多个窗口共享一个窗口类,因而多个窗口可以使用相同的窗口过程。 3,Windows程序开始执行的时候,Windows首先为该程序创建一个消息队列。该消息队列中存放着应用程序可... 阅读全文
posted @ 2016-03-28 21:33 我是一个NLPer哦啦啦 阅读(538) 评论(0) 推荐(0) 编辑
摘要:逻辑坐标:使用GDI绘图时使用的坐标系 设备坐标系:实际设备(显示器、打印机)的坐标系,即我们实际看到的坐标系。 坐标空间 在Windows NT/2000中Win32 API中支持以下四层坐标空间: 世界坐标空间:引入World是为了对图像进行平移、缩放、剪切等操作,最大范围为232个单位高和232个单位宽,初始时X轴正向向右,Y轴正向向上,World坐标空间可以成为逻辑空间。 页面坐标空间(P... 阅读全文
posted @ 2016-03-23 11:37 我是一个NLPer哦啦啦 阅读(1536) 评论(0) 推荐(0) 编辑
摘要:第二章 Unicode简介 1,Windows通过双字节技术DBCS解决这个问题,代码页定义不同的字符集,称为ANSI字符集,比如日文为CP932,韩文为CP949,繁体中文为CP950,简体中文为CP936 2,Unicode使用双字节,并且为一个字符集,解决二义性的问题 3,Unicode宽字符使用wchar_t声明,为两字节,并且字符或者字符串常量前应该加L 4,为了统一源代码中不同字符集的... 阅读全文
posted @ 2016-03-22 12:33 我是一个NLPer哦啦啦 阅读(465) 评论(0) 推荐(0) 编辑
摘要:第一章 起步 1,windows主要的三个动态库: kernel32.dll负责操作系统的传统工作,包括内存管理、文件输入以及任务管理等。 user32.dll负责用户界面的操作,即所有窗口的管理 gdi32.dll为图形设备接口,负责在屏幕或者打印机上显示文本与图形 2,当windows程序运行的时候,通过一个叫做"动态链接(dynamic linking)"的进程与Windows接口。每个... 阅读全文
posted @ 2016-03-22 12:32 我是一个NLPer哦啦啦 阅读(1000) 评论(0) 推荐(0) 编辑
摘要:第三章 菜单 1,控件和容器 所有的Windows Forms控件都是从System.Windows.Forms.Control类继承的,相关类的层次结构如下图所示: MarshalByRefObject类表示必须通过引用进行列集(marshale)的对象。列集表示从一个上下文环境中传递一个数据项使它可以在另一个上下文环境中被理解的一种机制。只在创建它们的进程中有效,必须通过引用才能在进程外使... 阅读全文
posted @ 2016-03-21 21:36 我是一个NLPer哦啦啦 阅读(1505) 评论(0) 推荐(0) 编辑
摘要:第二章 欢迎使用Visual Studio 1,AssemblyInfo文件 包含程序集的属性,向应用程序添加元数据 [assembly:<attribute>(<setting>)] AssemblyInfo常用属性 属性 描述 AssemblyTitle 程序集标题 AssemblyDescri 阅读全文
posted @ 2016-03-19 23:01 我是一个NLPer哦啦啦 阅读(494) 评论(0) 推荐(0) 编辑
摘要:初识Windows Forms 1,用C#编程 using System.Windows.Forms; [assembly: System.Reflection.AssemblyVersion("1.0")] namespace MyNamespace { public class MyForm : Form { public MyForm() ... 阅读全文
posted @ 2016-03-19 22:22 我是一个NLPer哦啦啦 阅读(2126) 评论(0) 推荐(0) 编辑
摘要:1 对象:DOM中的“O” 阅读全文
posted @ 2016-03-19 16:52 我是一个NLPer哦啦啦 阅读(223) 评论(0) 推荐(0) 编辑
摘要:第三十一章 Windows窗体 创建Windows窗体应用程序 在文本编辑器中输入: /* * form.cs * a simple windows form * */ using System; using System.Windows.Forms; namespace NotepadForms { public class MyForm:System.Windows.For... 阅读全文
posted @ 2016-03-19 16:32 我是一个NLPer哦啦啦 阅读(493) 评论(0) 推荐(0) 编辑
摘要:第七章 委托和事件 回调(callback)函数是Windows编程的一个重要方面,实际上是方法调用的指针,也称为函数指针。 .Net以委托的形式实现了函数指针的概念,.Net的委托是类型安全的。 委托 使用委托的时候,需要先声明,后实例化。 声明委托 delegate void MethodInvoker();可以在委托前加public,private,protected。 实际上,定义委托... 阅读全文
posted @ 2016-03-18 22:29 我是一个NLPer哦啦啦 阅读(291) 评论(0) 推荐(0) 编辑
摘要:第六章 运算符和类型强制转换 1,运算符 类别 运算符 算术运算符 + - * / % 逻辑运算符 & | ^ ~ && || ! 字符串连接运算符 + 增量和减量运算符 ++ -- 移位运算符 << >> 比较运算符 == != <> <= >= 赋值运算符 = += -= *= /= %= &= 阅读全文
posted @ 2016-03-17 23:03 我是一个NLPer哦啦啦 阅读(356) 评论(0) 推荐(0) 编辑
摘要:第五章 数组 1,简单数组 声明:int[] myArray; 初始化:myArray = new int[4]; 为数组分配内存。 还可以用如下的方法: int[] myArray = new int[4]{1,2,3,4}; int[] myArray = new int[]{1,2,3,4}; 阅读全文
posted @ 2016-03-16 14:00 我是一个NLPer哦啦啦 阅读(234) 评论(0) 推荐(0) 编辑
摘要:第四章 继承 1,继承的类型 实现继承: 一个类派生于一个基类型,拥有该基类型所有成员字段和函数。 接口继承 一个类型只继承了函数的签名,没有继承任何实现代码。 2,实现继承 class MyDerivedClass:MyBaseClass,IInterface1,IInterface2 { }public struct MyderivedStruct:IInterface1, IInterf... 阅读全文
posted @ 2016-03-15 22:46 我是一个NLPer哦啦啦 阅读(239) 评论(0) 推荐(0) 编辑
摘要:第三章 对象和类型 1,类和结构 类存储在托管堆上 结构存储在堆栈上 2,类成员 类中的数据和函数称为类成员 数据成员 数据成员包括了字段、常量和事件 函数成员 方法:与某个类相关的函数,可以是静态方法,也可以是实例方法。 声明: [modifiers] return_type MethodName([parameters]){} 调用函数时均通过值传递,值类型传递值,引用类型传递引用。 ... 阅读全文
posted @ 2016-03-15 14:04 我是一个NLPer哦啦啦 阅读(225) 评论(0) 推荐(0) 编辑
摘要:第二章 基础 1,helloworld示例: helloworld.cs using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace HelloWorld { class Program { static void Main(str... 阅读全文
posted @ 2016-03-14 16:55 我是一个NLPer哦啦啦 阅读(288) 评论(0) 推荐(0) 编辑
摘要:第一章 .Net体系结构 1,公共语言运行库(Common Language Runtime, CLR) .Net Framework的核心是其运行库的执行环境,称为公共语言运行库,或.Net运行库。通常在CLR的控制下运行的代码称为托管代码(managed code)。 在CLR执行编写好的源代码之前,需要编译它们。在.Net中,编译分为两个阶段: 把源代码编译成Microsoft中间语言(... 阅读全文
posted @ 2016-03-14 16:54 我是一个NLPer哦啦啦 阅读(337) 评论(0) 推荐(0) 编辑
摘要:第十四章 C++中的代码重用 包含对象成员的类 将类的对象作为新类的成员。称为has-a关系。使用公有继承的时候,类可以继承接口,可能还有实现(纯虚函数不提供实现,只提供接口)。使用包含时,可以获得实现,但是不能获得接口。 explicit关键字的用法: 防止单参数构造函数的隐式转换,例如定义了如下的构造函数: Student::Student(const string &s, int n); S... 阅读全文
posted @ 2016-03-11 19:43 我是一个NLPer哦啦啦 阅读(662) 评论(0) 推荐(0) 编辑
摘要:第十五章 友元、异常和其他 友元 友元类 表 0-1 class Tv { public: friend class Remote; }Remote类可以使用Tv的数据成员,Remote类在Tv类后定义 。 友元成员函数 表 0-2 class Tv; //前向声明 class Remote { public: void chanup(Tv &t); } class Tv { p... 阅读全文
posted @ 2016-03-11 19:43 我是一个NLPer哦啦啦 阅读(282) 评论(0) 推荐(0) 编辑
摘要:第十三章 类继承 继承的基本概念 类继承是指从已有的类派生出新的类。例: 表 0-1 player.h class player { private: string firstname; string lastname; bool hasTable; public: player(const string & fn="NULL", const string & ln= "none", bool h... 阅读全文
posted @ 2016-03-11 19:42 我是一个NLPer哦啦啦 阅读(478) 评论(0) 推荐(0) 编辑
摘要:运算符重载 使用方法: 在类的声明中定义重载运算符 datatype operator操作符(datatype); 定义:datatype classname:: operator操作符(datatype) {} 重载操作符的限制: 至少有一个操作数为用户定义的类型,并且不能违反运算符原来的句法规则。 友元 突破类私有成员的访问权限 友元有三种:友元函数、友元类和友元成员函数。 创建友元,将其原型... 阅读全文
posted @ 2016-03-11 19:38 我是一个NLPer哦啦啦 阅读(182) 评论(0) 推荐(0) 编辑
摘要:过程性编程和面向对象编程 面向对象编程(OOP)的特性: 抽象 封装和数据隐藏 多态 继承 代码的可重用性 抽象和类 类是一种将抽象转化为用户定义类型的C++工具,它将数据表示和操纵数据的方法合成一个简洁的包。 类的构造函数和析构函数 构造函数:与类名相同 析构函数:~类名 对象初始化方式: cla 阅读全文
posted @ 2016-03-11 19:37 我是一个NLPer哦啦啦 阅读(217) 评论(0) 推荐(0) 编辑
摘要:C++第九章:内存模型与名称空间 C++在内存中存储数据方面提供了多种选择。可直接选择保留在内存中的时间长度(存储持续性)以及程序哪一部分可以访问数据(作用域和链接)等。 单独编译 程序分为三个部分: 头文件:包含结构声明和使用这些结构的函数原型。 源代码文件:包含于结构有关的函数代码 源代码文件: 阅读全文
posted @ 2016-03-11 19:36 我是一个NLPer哦啦啦 阅读(347) 评论(0) 推荐(0) 编辑
摘要:C++入门第八章:函数探幽 本章将介绍C++语言区别于C语言的新特性。包括内联函数、按引用传递变量、默认的参数值、函数重载以及函数模板。 1 C++内联函数 内联函数是C++为提高程序运行速度所做的一项改进。常规函数与内联函数的区别在于编译器将其组合到程序中的方式而不是代码的编写方式。 编译过程的最 阅读全文
posted @ 2016-03-11 19:35 我是一个NLPer哦啦啦 阅读(839) 评论(0) 推荐(0) 编辑
摘要:C++入门第七章:函数-C++的编程模块 函数的基本知识 要使用C++函数,必须完成如下工作: 提供函数定义 提供函数原型 调用函数 库函数是已经定义和编译好的函数,可使用标准库头文件提供原型。 定义函数的模板: typename functionName(parameterList) { stat 阅读全文
posted @ 2016-03-11 19:34 我是一个NLPer哦啦啦 阅读(1276) 评论(0) 推荐(0) 编辑
摘要:C++入门第六章:分支语句和逻辑运算符 if语句 语法: if (test-condition) statement if else语句 if (test-condition) statement1 else statement2 if else if else语句 if (test-conditi 阅读全文
posted @ 2016-03-11 19:32 我是一个NLPer哦啦啦 阅读(555) 评论(0) 推荐(0) 编辑
摘要:C++入门第五章:循环和关系表达式 for循环 for循环的组成部分 设置初始值。 执行测试,看循环是否应该继续执行。 执行循环操作。 更新用于测试的值。 以上操作由括号括起,每个部分均是一个表达式,彼此分号隔开,控制部分后面的语句叫循环体,若测试表达式均为true,它被执行。 for(initia 阅读全文
posted @ 2016-03-11 19:30 我是一个NLPer哦啦啦 阅读(878) 评论(0) 推荐(0) 编辑
摘要:C++入门第四章:复合类型 1 数组 数组(array)是一种数据格式,能够存储多个同类型的值。 使用数组前,首先要声明。声明包括三个方面: 存储每个元素中值的类型 数组名 数组中的元素个数 声明的通用风格如下: typename arrayname[arrysize]; 注;arrysize指定元 阅读全文
posted @ 2016-03-11 19:26 我是一个NLPer哦啦啦 阅读(458) 评论(0) 推荐(0) 编辑
摘要:C++入门第三章:处理数据 面向对象编程(OOP)的本质是设计并扩展自己的数据类型。 内置的C++数据类型分为基本类型和复合类型。 基本类型分为整数和浮点数。 复合类型分为数组、字符串、指针和结构。 C++通过使用变量来存储数据。 简单变量 为把信息存储在计算机中,程序必须记录三个基本属性: 信息将 阅读全文
posted @ 2016-03-11 19:00 我是一个NLPer哦啦啦 阅读(1034) 评论(0) 推荐(0) 编辑
摘要:C++入门第二章:开始学习C++ 进入C++ 首先,以下是一个C++程序: //myfirst.cpp 显示一行文字 #include<iostream> //预处理器编译指令 int main() //函数头 { using namespace std; //编译指令 cout<<"学习C++"; 阅读全文
posted @ 2016-03-11 18:58 我是一个NLPer哦啦啦 阅读(207) 评论(0) 推荐(0) 编辑
摘要:C++入门第一章:预备知识 C++简介 C++融合了三种不同的编程方式: C语言代表的过程性语言。 C++在C语言基础上添加的类代表的面向对象语言。 C++模板支持的泛型编程。 C++简史 20世纪70年代贝尔实验室开发。 C语言编程原理 计算机语言要处理两个概念:数据和算法。 数据是程序使用和处理 阅读全文
posted @ 2016-03-11 18:56 我是一个NLPer哦啦啦 阅读(427) 评论(0) 推荐(0) 编辑