10 2012 档案
摘要:在MFC中引入了文档-视结构的概念,文档相当于数据容器,视相当于查看数据的窗口或是和数据发生交互的窗口。因此一个完整的应用一般由四个类组成:CWinApp应用类,CFrameWnd窗口框架类,CDocument文档类,CView视类。 在程序运行时CWinApp将创建一个CFrameWnd框架窗口实例,而框架窗口将创建文档模板,然后有文档模板创建文档实例和视实例,并将两者关联。一般来讲我们只需对文档和视进行操作,框架的各种行为已经被MFC安排好了而不需人为干预,这也是M$设计文档-视结构的本意,让我们将注意力放在完成任务上而从界面编写中解放出来。 在应用中一个视对应一个文档,但一个文档...
阅读全文
摘要:一、怎么样在MDI程序里面切换不同的视图我在MDI里面建立了两个视图和两个文档,怎样从一个 视图切换到另外一个视图? CMultiDocTemplate* pDocTemplate; pDocTemplate = new CMultiDocTemplate( IDR_MAINFRAME, RUNTIME_CLASS(CVideoConferenceDoc), RUNTIME_CLASS(CVideoConferenceChildFrame), // custom MDI child frame RUNTIME_CLASS(CVideoConferenceView1)); Afx...
阅读全文
摘要:在android 2.3上设计的下载程序,在android 4.0上运行时报android.os.NetworkOnMainThreadException异常,原来在4.0中,访问网络不能在主程序中进行,有两个方法可以解决。 一个是在主程序中增加:// 详见StrictMode文档 StrictMode.setThreadPolicy(new StrictMode.ThreadPolicy.Builder() .detectDiskReads() .detectDiskWrites() .detectNetwork() // o...
阅读全文
摘要:1. 什么是窗口 MSDN: In a graphical Win32-based application, a window is a rectangular area of the screen where the application displays output and receives input from the user. Therefore, one of the first tasks of a graphical Win32-based application is to create a window. 大意:窗口就是一个矩形区域,应用程序可以用它来显示输出,或者..
阅读全文
摘要:InvalidateRect(HWND) 使无效 ValidateRect(HWND)使有效 区别在重绘 InvalidateRect(HWND) 使窗口无效 产生消息WM_PAINT; ValidateRect(HWND)使窗口有效 清除消息队列中的WM_PAINT消息Invalidate() -- RedrawWindow() -- UpdateWindow()三个函数有什么异同? Invalidate()是强制系统进行重画,但是不一定就马上进行重画。因为Invalidate()只是通知系统,此 时的窗口已经变为无效。强制系统调用WM_PAINT,而这个消息只是Post(寄...
阅读全文
摘要:初学Java时,在很长一段时间里,总觉得基本概念很模糊。后来才知道,在许多Java书中,把对象和对象的引用混为一谈。可是,如果我分不清对象与对象引用,那实在没法很好地理解下面的面向对象技术。 为便于说明,我们先定义一个简单的类: class Vehicle { int passengers; int fuelcap; int mpg; }有了这个模板,就可以用它来创建对象: Vehicle veh1 = new Vehicle();通常把这条语句的动作称之为创建一个对象,其实,它包含了四个动作。1)右边的“new Vehicle”,是以Vehicl...
阅读全文
摘要:1、abstract的method是否可同时是static,是否可同时是native,是否可同时是synchronized? 都不能2、数组有没有length()这个方法? String有没有length()这个方法? 数组没有length()这个方法,有length的属性。String有有length()这个方法。3、两个对象值相同(x.equals(y) == true),但却可有不同的hash code,这句话对不对? 不对,有相同的hash code。4、当一个对象被当作参数传递到一个方法后,此方法可改变这个对象的属性,并可返回变化后的结果,那么这里到底是值传递还是引用传递? 是值传.
阅读全文
摘要:String s = new String("xyz") 创建了几个String Object? 那么,会有两个String被创建,一个是你的Class被CLassLoader加载时,你的 "xyz "被作为常量读入,在constant pool里创建了一个共享的 "xyz " 。然后,当调用到new String( "xyz ")的时候,会在heap里创建这个new String( "xyz ");所以一个在heap中,一个在String常量池。 但是如果你把String s = new St
阅读全文
摘要:野指针:“野指针”不是NULL指针,是指向“垃圾”内存(不可用内存)的指针。人们一般不会错用NULL指针,因为用if语句很容易判断。但是“野指针”是很危险的,if无法判断一个指针是正常指针还是“野指针”。“野指针”的成因主要有三种: 1)指针变量没有被初始化。任何指针变量刚被创建时不会自动成为NULL指针,它的缺省值是随机的,它会乱指一气。所以,指针变量在创建的同时应当被初始化,要么将指针设置为NULL,要么让它指向合法的内存。例如: char *p = NULL; char *str = (char *) malloc(100); 2)指针p被free或者delete之后,没有置为NUL..
阅读全文
摘要:void main() { char s[]="Welcometohengtian"; printf("%s%d\n",(s+7),sizeof(s)); char s[20]="Welcometohengtian"; printf("%s%d\n",(s+7),sizeof(s)); int a=4; printf("%d\n",sizeof(int)); char *p="renyuan"; printf("%d\n",sizeof(p)); int
阅读全文
摘要:C++中: 在C++程序设计中,多态性是指具有不同功能的函数可以用同一个函数名,这样就可以用一个函数名调用不同内容的函数。或指发出同样的消息被不同类型的对象接收时产生不同的执行结果和行为。 消息: 对成员函数的调用 不同的行为:不同的函数实现,即调用了不同的函数 静态多态:函数重载、运算符重载、类模板 动态多态:虚函数 动态多态要研究的问题是:当一个基类被继承为不同的派生类时,各派生类可以使用与基类成员相同的成员名,如果在运行时用同一个成员名调用类对象的成员,会调用哪个对象的成员? 关联(binding):在这里是指把一个函数名与一个类对象捆绑在一起,建立关联。一般地说,关联指把...
阅读全文
摘要:图1为线性表(ZHAO, QIAN, SUN, LI, ZHOU, WU, ZHENG, WANG)的逻辑状态。头指针指示链表中第一个结点(即第一个数据元素的存储映像)的存储位置。同时,由于最后一个数据元素没有直接后继,则线性链表中最后一个结点的指针为“空”(NULL)。图1 线性链表的逻辑状态 由上述描述可见,单链表可由头指针来唯一确定,在C语言中可用“结构指针”来描述。//-----线性表的单链表存储结构-----typedefstructLNode{ElemTypedata;structLNode*next;}LNode,*LinkList; 有时在单链表的第一个结点之前附设一个结...
阅读全文
摘要:目录如何使用Table(1)创建一个简单的表格(2)向容器添加表格(3)改变每每一列的宽度(4)用户选择(5)创建表格模型(6)监听数据改变(7)点燃数据改变事件(8)概念:编辑器和渲染器(Editors and Renderers)(9)使用自定义渲染器(10)为单元格指定提示工具(11)为列头指定工具集(12)排序和过滤(13)使用combo box作为编辑器(14)使用其他编辑器(15)使用编辑器验证用户的文本输入(16)打印(17)例子列表如何使用Table 利用 JTable 类,可以以表格的形式展示数据,可设置允许用户编辑数据。JTable 本身不拥有或者缓存数据;它只是数据的视图
阅读全文
摘要:类层次结构图:java.lang.Object--java.awt.Component--java.awt.Container--javax.swing.JComponent--javax.swing.JTabel在使用JTable以前,我们先看一下它的构造函数有哪些, 以及应该如何使用:JTabel构造函数:JTable():建立一个新的JTables,并使用系统默认的Model.JTable(int numRows,int numColumns):建立一个具有numRows行,numColumns列的空表格,使用的是DefaultTableModel.JTable(Object[][] r
阅读全文
摘要:C语言里定义一个字符串可以使用指针也可以使用数组,如:(1) char *s="hello"; //"hello"是字符串常量,s是指向常量的指针,常量是不允许改变的,不能写成s[0]=X,但可以改变指针的值,使其指向不同的常量,如 s = "Xeron";(2) char s[]="hello"; //指针常量,s本身的值不能修改,但可以修改其指向的内容,s[0]=X两者的区别是(1)定义的字符串在程序里不能被修改,因为它存放在代码段内;(2)定义的字符串可被修改,它存放在数据段或者栈内。这两种定义字符串的方法在
阅读全文
摘要:试着用用你会发现其实GridBagLayout真的能解决几乎所有界面布局的问题,窗口大小的随意改变也不会影响到整体布局,更重要的是它可以实现任何你想要的布局设计,只要你做到更有计划和更有耐心一点就行了。对于简单的程序使用Boborderlayout和Gridlayout就绰绰有余了, 但如果要把程序提到实际应用上你就得考虑使用GridBagLayout。当然, 做复杂的应用程序时,一开始就使用GridBagLayout就会更有效率。一旦你决定使用GridBagLayout,接下来一步便是要找一些纸和铅笔,只有你准确知道你的界面看上去需要成什么样子,你就可以敲键盘。这就是说,你应该在编码之前..
阅读全文
摘要:类层次结构图: --javax.swing.JComponent --javax.swing.JInternalFrame JinternalFrame的使用跟JFrame几乎一样,可以最大化、最小化、关闭窗口、加入菜单等功能;唯一不同的是JinternalFrame是lightweight component ,也就JInternalFrame不能单独出现,必须依附在最上层组件上。由于这个特色,JInternalFrame能够利用java提供的Look and Feel功能作出完全不同于原有操作系统所提供的窗口外型,也比JFrame更具有弹性。 一般我们会将Internal Fram加入..
阅读全文
摘要:JAVA中的类反射就是一个在当前JVM中支持类、接口和对象内省的小型的,类型安全的和可靠的API。它是通过java.lang.reflect包提供的,可以对类的能力进行分析。反射使程序代码能够访问装载到JVM中的类的内部信息。主要包括获取已装载类的字段、方法和构造函数的信息。允许编写处理类的代码.这些类是在程序运行时临时确定的,而非源代码中事先选定的。这使反射成为构建灵活的应用的主要工具。 “Class”类 JAVA中的“Class”类是JAVA中一个十分特殊的类。它和其它类 一样继承自“Object”类,其对象用以表达JAVA程序运行时的类和 接口。当一个类被加载时,JVM便自动产生一...
阅读全文
摘要:c语言中需要内存来存放数据。而内存主要分为两类:静态存储区和动态存储区;1.静态存储区分为:只读数据(READONLY DATA)区、以读写数据(RW DATA)区、未初始化区(BSS)。它们都是在程序编译连接阶段确定的,在程序执行的阶段不会改变。2.动态存储区分为堆和栈。都是程序执行的过程中动态分配的,大小也随之动态变化。从内存管理的实现的角度看来,堆使用的链表实现的,而栈使用的是线性存储的方法。栈:栈是先进后出,实际的操作中,栈内存可以有满栈和空栈的情况,满栈的情况下,栈指针当前的位子是已经使用的的栈区域;空栈的情况是,栈指针当前的位子是没有使用的栈区域,所以两种情况的出入栈,指针和数据的
阅读全文
摘要:字符流处理的单元为2个字节的Unicode字符,分别操作字符、字符数组或字符串,而字节流处理单元为1个字节, 操作字节和字节数组。所以字符流是由Java虚拟机将字节转化为2个字节的Unicode字符为单位的字符而成的,它对多国语言支持性比较好!如果是音频文件、图片、歌曲,用字节流好点,如果是关系到中文(文本)的,用字符流好点.(如果输入的是整数,当作文本处理) 所有文件的储存是都是字节(byte)的储存,在磁盘上保留的并不是文件的字符而是先把字符编码成字节,再储存这些字节到磁盘。在读取文件(特别是文本文件)时,也是一个字节一个字节地读取以形成字节序列. 字节流可用于任何类型的对象,包括...
阅读全文