内容列表
- WIN32汇编: 19.树型视图控件
- 第十九课 树型视图控件
本课中,我们将学习如何使用树型视图控件。另外还要学习如何在树型视图中完成拖-拉动作,以及如何使用图象列表。
理论:树型视图是一种特别的窗口,我们可以使用它一目了然地表示某种层次关系。譬如象在资源管理器中左边窗口中的就是树型视图。您可以调用CreateWindowEx来创建树型视图,传递一个类名“"SysTreeView32"”,或者您也可以把它放到一个对话框中去。
- 分类:编程语言 查阅全文
- WIN32汇编: 18.通用控件
- 第十八课 通用控件
本课中我们将学习什么是通用控件和如何使用它们。
理论:WIN95相对于WIN3X有几个加强的用户界面控件。其实在WIN95正式发行前这些控件就在使用,譬如:状态条、工具条等。以前程序员要自己去编程使用它们,现在微软已经把它们包含到了WIN9X和WINNT中了。
Toolbar ---工具条
Tooltip ---提示文本
Status bar ---状
- 分类:编程语言 查阅全文
- WIN32汇编: 17.动态链接库
- 第十七课 动态链接库
本课中,我们将学习DLLs,它们到底是什么和如何创建它们。
理论:
如果您编程的时间非常长,就会发现很多的程序之间其实有相当多的重复代码。每编一个程序就重写一遍这些代码既没必要又浪费时间。在DOS时代,一般的做法是把这些重复的代码写成一个个的函数,然后把它们按类别放到不同的库文件中去。当要使用这些函数时,只要把您的目标文件(.obj)文件和先前存放在库
- 分类:编程语言 查阅全文
- WIN32汇编: 15.多线程教程
- 第十五课 多线程编程
本课中,我们将学习如何进行多线程编程。另外我们还将学习如何在不同的线程间进行通信。
理论:前一课中,我们学习了进程,其中讲到每一个进程至少要有一个主线程。这个线程其实是进程执行的一条线索,除此主线程外您还可以给进程增加其它的线程,也即增加其它的执行线索,由此在某种程度上可以看成是给一个应用程序增加了多任务功能。当程序运行后,您可以根据各种条件挂起或运行这些线程,尤其
- 分类:编程语言 查阅全文
- WIN32汇编: 14.进程
- 第十四课 进程
本课中我们将学习:什么是进程?如何产生和终止一个进程?
初步知识:进程是什么?下面是我从WIN32 API指南中节选的解释:
“一个进程是一个正在执行的应用程序,它包含有:私有的虚拟地址空间、代码、数据和其它的操作系统资源,譬如进程可以存取的管道、文件和同步对象等等。”
从上面的定义中您可以看到,一个进程拥有几个对象:地址空间、执行模块和其它该执行程序打开或创建的任
- 分类:编程语言 查阅全文
- 用C++BUILDER建立自己的WEB浏览器
-
用够了IE和NETCAPE的朋友,有没有想过也编制一个自己的浏览器呢?用C++BUILDE使得你能够方便高效的创建自己的INTERNET程序.由于C++BUILDER的基本语言是C++,所以它几乎可以做任何事情,通过C++BUILDER的组件设置,你可以象其他应用程序一样建立INTERNET应用,意味着你可以扩展这些组件来增强他们的功能,如果需要的话,它也可以处理低水平的API细节
- 分类:编程语言 查阅全文
- WIN32汇编: 12.内存管理和文件输入输出
- 第十二课 内存管理和文件输入/输出
本课中我们将学习基本的内存管理和文件输入/输出操作方面的知识。另外我们还将用上课学的通用对话框作为我们的显示“设备”。
理论:
从用户的角度来看,WIN32的内存管理是非常简单和明了的。每一个应用程序都有自己独立的4G地址空间,这种内存模式叫做“平坦”型地址模式,所有的段寄存器或描述符都指向同样的起始地址,所有的地址偏移都是32位的长度,这样一个应
- 分类:编程语言 查阅全文
- WIN32汇编: 10.把对话框作为主界面
- 第十课 以对话框为主要界面的应用程序
现在我们开始学习一些有关GUI编程的有趣的部分, 即:以对话框为主要界面的应用程序。我们将分两课来讲述这一过程
理论:如果您仔细关注过前一个程序就会发现:您无法按TAB键从一个子窗口控件跳到另一个子窗口控件,要想转移的话只有 用鼠标一下一下地去点击。对用户来说这是不友好的。另一件事是如果您象前一课中那样把主窗口的背景色从白色改成 灰色,为了子窗口控件
- 分类:编程语言 查阅全文
- WIN32汇编: 23.系统托盘中的快捷图标
- 第二十三课 系统托盘中的快捷图标
本课中,我们将学习如何把小图标放到系统托盘中去以及如何创建和使用弹出式菜单。
理论:系统托盘是指任务条中的一个方形区域,在该区域中可以放入一些小图标,通常您可以在此处看到系统提供的最新时间。您自己当然也可以把快捷小图标放到此处。下面是这么做的步骤:
设置NOTIFYICONDATA型的结构体变量的成员变量的值:
cbSize &
- 分类:编程语言 查阅全文
- Effective C++ 2e Item21
- 条款21: 尽可能使用const
使用const的好处在于它允许指定一种语意上的约束——某种对象不能被修改——编译器具体来实施这种约束。通过const,你可以通知编译器和其他程序员某个值要保持不变。只要是这种情况,你就要明确地使用const ,因为这样做就可以借助编译器的帮助确保这种约束不被破坏。
const关键字实在是神通广大。在类的外面,它可以用于全局或名字空间常量(见条款1和47),以及
- 分类:编程语言 查阅全文
- Effective C++ 2e Item11
- 构造函数,析构函数和赋值操作符
几乎所有的类都有一个或多个构造函数,一个析构函数和一个赋值操作符。这没什么奇怪的,因为它们提供的都是一些最基本的功能。构造函数控制对象生成时的基本操作,并保证对象被初始化;析构函数摧毁一个对象并保证它被彻底清除;赋值操作符则给对象一个新的值。在这些函数上出错就会给整个类带来无尽的负面影响,所以一定要保证其正确性。本章我将指导如何用这些函数来搭建一个结构良好的类的主
- 分类:编程语言 查阅全文
- 软件系统版本控制规定
- 软件系统版本控制规定1.软件系统的版本控制是指可以自行运行的各子系统的版本控制。2.软件系统的版本号由评测小组的人员确定,由评测小组进行版本控制工作。3.软件系统的版本号由3部分构成,即主版本号+次版本号+修改号。主版本号1位,只有当系统在结构和功能上有重大突破改进后才发生变化;次版本号有2位;修改号8位,采用提交时的日期,当系统进行任何修改后,包括数据库结构发生变化,修改号都要随之改变。例如:V
- 分类:编程语言 查阅全文
- 软件编码规范
- &n
- 分类:编程语言 查阅全文
- 海马的软件开发规范
- 海马的软件开发规范
网友海马把他的编码规范提供出来,我认为应该让大家也学习一下,就贴
- 分类:编程语言 查阅全文
- Effective C++ 2e Item9
- 条款9. 避免隐藏标准形式的new
因为内部范围声明的名称会隐藏掉外部范围的相同的名称,所以对于分别在类的内部
和全局声明的两个相同名字的函数f来说,类的成员函数会隐藏掉全局函数:
void f(); &
- 分类:编程语言 查阅全文
- 用C++Builder修改系统菜单
- 在FormCreate加入:
HWND hSysMenu;LONG dw;Form1->Height =80; Form1->Width = 250;Form1->Left = Screen->Width/2;Form1->Top =Screen->Height/3;hSysMenu=GetSystemMenu(Form1->WindowHandle,0
- 分类:编程语言 查阅全文
- Effective C++ 2e Item10
-
条款10. 如果写了operator new就要同时写operator delete
让我们回过头去看看这样一个基本问题:为什么有必要写自己的operator new和operator delete?
答案通常是:为了效率。缺省的operator new和operator delete具有非常好的通用性,它的这种灵活性也使得在某些特定的场合下,可以进一步改善它的性能。尤其在那些
- 分类:编程语言 查阅全文
- 使用原生ADO进行数据库存取。
- 使用原生ADO进行数据存储,本例子能够显示,向下翻页,但向上翻页有问题。修改后的存储,删除等都存在问题,各位朋友修改一下,我只当起个抛砖引玉的作用。
//.cpp程序
//---------------------------------------------------------------------------
#include <vcl.h>#pragma hdrst
- 分类:编程语言 查阅全文
- 邮件解析(源码)
- 存储邮件信息的结构:
struct ContentHeader{ int &
- 分类:编程语言 查阅全文
- Effective C++ 2e Item12
- 条款12: 尽量使用初始化而不要在构造函数里赋值
看这样一个模板,它生成的类使得一个名字和一个T类型的对象的指针关联起来。
template<class T>class NamedPtr {public: NamedPtr(const string& initName, T *initPtr); ...
private: string
- 分类:编程语言 查阅全文