 |
Visual C++.NET编程讲座之三
|
|
| |
| ...第二讲 文档数据的读取和显示
摘要
本讲先来介绍程序各个类的关联机制,然后讨论文档的读过程及读操作,最后讨论文档数据的显示方法和技巧。
程序中各用户类的关联
在上一讲中,我们使用MFC应用程序向导创建一个单文档项目TextViewer。现在,我们打开该项目。可以看出,向导为TextViewer项目创建了以下几个类:
应用程序类CTextViewerApp,应用程序必须的运行入口,在上一讲已经讨论过。
主框架窗口类CMainFrame,用来负责窗口的标题栏、菜单、工具栏及状态栏等界面元素的操作。
文档类CTextViewerDoc,用来负责文档数据的读取和保存
视图类CTextViewerView类,用来显示文档显示,并可响应各种类型的输入(例如键盘输入)以及实现打印和打印预览等。
还有一个对话框类CAboutDlg,用来显示该应用程序的版本信息,是一个"关于"对话框。
需要说明的是,Visual C++ .NET将各个类的声明保存在头文件中,即以.h为扩展名,而将类的实现代码保存在以.cpp为扩展名的实现文件中。
那么,在MFC中上述的主框架窗口类、文档类和视图类的关系是怎样呢?我们来看一下。
将解决方案管理器切换到"类视图",展开CTextViewerApp类的所有节点,双击 ...
|
|
| 作者:Adding qiaoyongbo张贴于2007-12-21 15:30:15.0,共阅读800次,回复1次 |
|
|
 |
Visual C++.NET编程讲座之二
|
|
| |
| ...摘要
本讲先来通过一个简单的MFC应用程序来介绍"类"的有关概念,然后分析其运行机制以及基本MFC类层次结构,最后使用项目模板所提供的MFC应用程序向导来创建一个单文档程序TextViewer。
一个简单的MFC应用程序
在现在的"面向对象"程序设计中,我们经常会听说过"类"和"对象"的概念。那么什么是"类"呢?"类"的实质上是一种新的复杂数据类型。说它"新",是因为它不同于C语言中的char、int、float等基本数据类型,说它"复杂",是因为它不仅可以包含各种基本类型的数据,而且还可以包含处理这些数据的函数。
MFC使用"类"来编写Windows应用程序,例如下面的过程:
(1) 单击"开始"页面中的"新建项目",或者打开"文件"菜单中的"新建",选择"项目"命令,都将弹出"新建项目"对话框。
(2) 在左侧的"项目类型"窗格中,选中"Visual C++项目"。在右侧的"模板"窗格中,拖动窗格右侧的滚动条显示其他模板,然后选中"Win32 项目"。
(3) 在"名称"文本框中,输入项目名称"Ex_1_SimpMFC",单击"确定"按钮,弹出"Win32 应用程序向导"对话框。
(4) 单击左侧的"应用程序设置"。选中"应用程序类型"中的"Windows 应用程序",在"附加选项"中选中"空项目",结果 ...
|
|
| 作者:Adding qiaoyongbo张贴于2007-12-21 15:28:39.0,共阅读760次,回复0次 |
|
|
 |
Visual C++.NET编程讲座之一
|
|
| |
| ...Visual C++.NET编程讲座之一
作者:Adding 文章来源:yesky 点击数:5053 更新时间:2006-7-6 19:41:30
前言
本文先来较详细地讨论Visual C++的编程方式,然后讨论其学习方法,最后说明本讲座内容的编排。
Visual C++编程方式
2003年5月22日,微软隆重推出三个企业级的产品:Microsoft Windows Server 2003,Visual Studio.NET 2003和SQL Server 2000 企业版64位。Visual Studio .NET 2003是 Microsoft 的第二代开发工具,用于构建和部署Microsoft .NET 的软件。在这个最新平台上,包括了Visual C++、Visual Basic和Visual C#等开发工具。
Visual C++ .NET包括许多新的特性,如Web应用程序、托管C++扩展、ATL、DCOM、MFC等方面的增强以及ATL Server、Windows .NET Framework的支持等。
尽管如此,Visual C++在Windows桌面应用程序上的编程方法仍可分为两类:一类是非Window编程,如控制台程序(一种与早期DOS相兼容的程序,用来学习基本C++的编程思想),另 ...
|
|
| 作者:不祥 qiaoyongbo张贴于2007-12-21 15:26:32.0,共阅读773次,回复0次 |
|
|
 |
InstallShield教程
|
|
| |
| 上传了几次,每次10分钟还是上传不上不,也不晓得是什么原因,贴一个连接吧,ftp://vc:vc@218.197.202.143/,机子我每天都开着,连不连得上开个人的造化了,hoho
|
|
| 作者:不祥 Boyben张贴于2004-05-14 14:51:25.0,共阅读4923次,回复3次 |
|
|
 |
VC基础学习:初学者指针指南
|
|
| |
| 何为指针?
指针基本上和其它的变量一样,唯一的一点不同就是指针并不包含实际的数据,而是包含了一个指向内存位置的地址,你可以在这个地址找到某些信息。这是一个很重要的概念,并且许多程序或者思想都是将指针作为它们的设计基础,例如链表。
开始
如何定义一个指针?呃,就像定义其它的变量一样,不过你还需要在变量名之前添加一个星号。例如,下面的代码创建了两个指向整数的指针:
int* pNumberOne;
int* pNumberTwo;
注意到变量名的前缀“p”了吗?这是编写代码的一个习惯,用来表示这个变量是一个指针。
现在,让我们把这些指针指向一些实际的值吧:
pNumberOne = &some_number;
pNumberTwo = &some_other_number;
“&”标志应该读作“the address of(……的地址)”,它的作用是返回一个变量的内存地址,而不是这个变量本身。那么在这个例子中,pNumberOne就是some_number的地址,亦称作pNumberOne指向some_number。
现在,如果我们想使用some_number的地址的话,那么我们就可以使用pNumberOne了。如果我们希望经由pNumberOne而使用some_number的值的话,我们可以用*pNum ...
|
|
| 作者:不祥 try_yuyi张贴于2004-07-24 19:09:16.0,共阅读5533次,回复5次 |
|
|
 |
利用MSXML解析XML文本
|
|
| |
| 当前Web上流行的剧本语言是以HTML为主的语言结构,HTML是一种标记语言,而不是一种编程语言,主要的标记是针对显示,而不是针对文档内容本身结构的描述的。也就是说,机器本身是不能够解析它的内容的,所以就出现了XML语言。XML (eXtensible Markup Language)语言是SGML语言的子集,它保留了SGML主要的使用功能,同时大大缩减了SGML的复杂性。XML语言系统建立的目的就是使它不仅能够表示文档的内容,而且可以表示文档的结构,这样在同时能够被人类理解的同时,也能够被机器所理解。XML要求遵循一定的严格的标准。XML分析程序比HTML浏览器更加要挑剔语法和结构,XML要求正在创建的网页正确的使用语法和结构,而不是象HTML一样,通过浏览器推测文档中应该是什么东西来实现HTML的显示,XML使得分析程序不论在性能还是稳定性方面都更容易实现。XML文档每次的分析结果都是一致的,不象HTML,不同的浏览器可能对同一个HTML作出不同的分析和显示。同时因为分析程序不需要花时间重建不完整的文档,所以它们能比同类HTML能更有效地执行其任务。它们能全力以赴地根据已经包含在文档中的那个树结构建造出相应的树来,而不用在信息流中的混合结构的基础上进行显示。XML标准是对数据的处理应用,而不是只针对Web网页的。任何类型的应用都可以在分析程序的上面进行建造,浏览器只是XML的一 ...
|
|
| 作者:不祥 jerry张贴于2004-05-20 20:18:56.0,共阅读10780次,回复1次 |
|
|
 |
C++类机制的实现细节
|
|
| |
| 为了搞清楚VC中类的实现专门写了一个最简单的类,用来观察它的实现过程,代码如下: // test.cpp : Defines the entry point for the console application.
//
#include "stdafx.h"
#include "CTest.h"
int main(int argc, char* argv[])
{
CTest aTest;
aTest.a(1,2);
return 0;
}
// CTest.h: interface for the CTest class.
//
//////////////////////////////////////////////////////////////////////
#if !defined(AFX_CTEST_H__2CCCDCFC_6C3A_48BC_9CD0_E7A8E63431D9__INCLUDED_)
#define AFX_CTEST_H__2CCCDCFC_6C3A_48BC_9CD0_E7A8E63431D9__INCLUDED_
#if _MSC_VER > 1000
#pr ...
|
|
| 作者:不祥 try_yuyi张贴于2004-07-24 19:16:27.0,共阅读3249次,回复2次 |
|
|
 |
一个求PI的外星程序
|
|
| |
|
# include "stdio.h"
long a=10000,b,c=2800,d,e,f[2801],g;
void main(){
for(;b-c;)f[b++]=a/5;
for(;d=0,g=c*2;c-=14,printf("%.4d",e+d/a),e=d%a)
for(b=c;d+=f[b]*a,f[b]=d%--g,d/=g--,--b;d*=b);
}
能求900多位的PI值,速度还可以,给大家研究下.:)
|
|
| 作者:不祥 Bccv张贴于2004-04-08 09:10:16.0,共阅读2371次,回复1次 |
|
|
 |
便利的开发工具-log4cpp快速使用指南
|
|
| |
| 以前写的一个文章,介绍log4cpp的,始发于这里:
http://www-900.ibm.com/developerWorks/cn/linux/l-log4cpp/index.shtml
便利的开发工具-log4cpp快速使用指南
作者: hehe (9:37 pm)
以前写的一个文章,介绍log4cpp的,始发于这里:
http://www-900.ibm.com/developerWorks/cn/linux/l-log4cpp/index.shtml
便利的开发工具-log4cpp快速使用指南
内容:
优点
原理
手动使用步骤
配置文件驱动方式使用步骤
相关考虑
参考资料
关于作者
在 Linux 专区还有:
教程
工具与产品
代码与组件
文章
李群 (liqun@nsfocus.com)
绿盟科技
2003 年 9 月
log4cpp是个基于LGPL的开源项目,是基于优秀的日志处理跟踪项目Java语言的log4j移植过
来的。log4j介绍的文档很多,在java领域使用的也比较广泛,而这个功能强大的库对国内
的C++语言开发人员却使用的不多。这里从开发人员使用的角度介绍这个库,使开发人员用
最少的代价尽快掌握这种技术。下面先简单介绍一下这个项目的优点(也是log4j的优点)
,然后分原理,手动使用步骤, ...
|
|
| 作者:不祥 Bccv张贴于2004-05-28 12:58:48.0,共阅读5798次,回复0次 |
|
|
 |
21世纪的智能编译器
|
|
| |
| 在这个演讲中,我先简要讲述四十多年前我作为计算机工业界的一名程序员时的早期经历。我将描述我所看到的编程实践方面的不断改进,特别是在我现在工作的最大的软件公司--微软。这会有助于我们预测以后四十年在智能编译器的进一步改善和编程语言质量的进一步提高。我将强调大学和工业界中高级研究的贡献。
在这个演讲中,我先简要讲述四十多年前我作为计算机工业界的一名程序员时的早期经历。我将描述我所看到的编程实践方面的不断改进,特别是在我现在工作的最大的软件公司--微软。这会有助于我们预测以后四十年在智能编译器的进一步改善和编程语言质量的进一步提高。我将强调大学和工业界中高级研究的贡献。
在二十世纪,编译器的定义是就是一段程序,它能读一些用抽象(几乎是数学的)记号表述的用户程序并将其翻译成更晦涩难懂的但能在计算机上直接运行的机器码。一个严重的问题是许多编译好的程序含有错误,一些甚至会导致程序崩溃。检测和消除这些错误就需要艰辛的劳动,即费时耗力的调试过程。
目前,调试问题可以通过其他辅助生成测试条件和测试管理的工具来加速程序缺陷的诊断。但是调试过程的成本和延误仍然是整个程序开发过程的主要部分。
在二十一世纪,编译器和其他程序分析工具会变得更加智能化。它们将更多地理解程序员的意图,能够在程序可能不会实现那些意图时给出警告。程序错误和检测它们的成本将成为过去。卸去了常犯错误的负担,程序员就 ...
|
|
| 作者:不祥 Bccv张贴于2004-05-28 12:56:28.0,共阅读2240次,回复0次 |
|
|
 |
Win2K/NT下屏蔽Ctrl+Alt+Del的响应
|
|
| |
| 大家知道,Ctrl+Alt+Del是Win2k/NT操作系统默认的系统登录/注销组合键序列,系统级别很高。在应用程序中,想要屏蔽掉该键序列的响应或得到这个"按下"事件,难度是相当大的。本文介绍了一种简单易行的方法,实现在用户登录成功后,按下Ctrl+Alt+Del不再弹出"Windows安全"对话框。
关键词:GINA(Graphical Identification aNd Authentication) SAS(Secure Attention Sequence)
一. 开发原理
首先介绍一下Winlogon。Windows 2000/NT有三种系统状态:没有用户登录状态、用户成功登录状态以及工作站锁定状态。Winlogon是Windows 2000/NT操作系统提供交互式登录支持的组件。Winlogon有三个组成部分:可执行文件winlogon.exe,提供图形界面认证功能的动态库Gina Dll,以及一些网络服务提供动态库Network Provider Dll。参考模型如下:
winlogon.exe处理一些下层导出的接口函数,而认证策略是在Gina Dll中是独立设计的。在系统启动时,Gina Dll被winlogon.exe装载。Microsoft提供了一个默认的Gina Dll--Winnt\system32\msgina.dll,提供了标准的用户 ...
|
|
| 作者:不祥 Bccv张贴于2004-04-07 09:04:15.0,共阅读2598次,回复2次 |
|
|