A. 如何用VC做个简单小程序(详见问题)
您好!
虽然有点多,但对您总是有好处的,看得越多,好处也越多。呵呵
C++语言相对于C语言来说引入了两个大的新东西,一个就是面向对象(具体来将就是类
),另外就是模板技术(模板编程或者叫泛型编程是进来非常流行的技术,在C#中虽然还
没有对泛型编程的支持,但是相信在将来也一定会加入这一功能),模板是C++中比较复
杂的部分,但是作为一个真正的C++程序员,这部分很重要。尤其是对C++标准程序库
的掌握尤为重要。
刚开始的时候千万不要直扑VC中的各种向导和设计器。因为依赖开发环境生成的很多代码
会把我们搞糊涂,也不利于我们学习C++语言本身。我的建议就是生成一个空的控制台工
程,然后自己向里面添加文件。
如下就是一个简单的控制台程序:
//robindy/list.cpp
#i nclude
#i nclude
using namespace std;
int main()
{
list coll;
for(char c = 'a'; c <= 'z'; ++c)
{
coll.push_back(c);
}
list::const_iterator pos;
for(pos = coll.begin(); pos != coll.end(); ++pos)
{
cout << *pos << ' ';
}
cout << endl;
return 0;
}
对using namespace std;的解释:
所谓namespace,是指标识符的各种可见范围。C++标准程序库中的所有标识符都被定义于一个名为std的namespace中。
由于namespace的概念,使用C++标准程序库的任何标识符时,可以有三种选择:
1、直接指定标识符。例如std::ostream而不是ostream。完整语句如下:
std::cout << std::hex << 3.4 << std::endl;
2、使用using关键字。
using std::cout;
using std::endl;
以上程序可以写成
cout << std::hex <<3.4 << endl;
3、最方便的就是使用using namespace std;这样命名空间std内定义的所有标识符都有效(曝光)。就好像它们被声明为全局变量一样。那么以上语句可以如下写:
cout << hex << 3.4 << endl;
这段程序用到了标准模板库,在屏幕上打印字符a~z,其中main函数的标记式只有两种是被
C++标准委员会接受的,只有以下两种写法是符合C++标准的,是可移植的。即:
int main()
{
}
和
int main(int argc, char* argv[])
{
}
C++在main()的末尾定义了一个隐式的return 0; 但是在VC中必须显式的写出return语句。
在BCB中可以不写return而编译通过。
这段程序中用到了STL中的容器:链表。先是向链表中插入26个字母,然后从遍历链表,输
出字符。
我不建议初学者一开始就从模板库入手,但是我建议应该逐渐地有意识地学习模板库。如
我们应该熟悉cout和cin的用法(位于iostream),而减少使用老式的C函数库中printf和sc
anf等。
从控制台入手的好处就是避免我们理解VC中向导等工具生成的其他代码,整个程序的流程
很清楚。新手学习VC的一大难点就是搞不清楚整个程序的流程(从那条语句开始执行,然后
从那条语句退出。MFC做了太多封装,掩盖了事实的真相,^_^)。通过控制台我们可以很快
地学习C++语言中的很多新特性。如类的封装、继承和多态等。通过这个时期的学习,要
能够掌握三个东西: C++关键字、语法(重点是和面向对象有关的,以及模板)、C++
标准程序库(知道怎么使用即可,要彻底掌握需要很多时间和精力)。至于与界面有关的
东东(MFC中很大一部分是与界面相关的类,所以我认为MFC很臃肿而无聊!回头看过以前
用MFC写的程序,有一种“垃圾”的感觉。)
自己做个测试:
写一个控制台程序,在其中体现出类的继承,函数重载,动态多态(通过虚函数实现),
数据封装,C++标准库的运用。
如果你能够轻松搞定,恭喜你,你已经通过C++语言关了。不过C++实在是一个复杂的
东东,其中有各种千奇百怪的语法现象,如果没有三、五年的功力,千万不要说自己懂C+
+。^_^。
推荐书籍《Thinking in C++》(有精力的话,可以直接读原版)
《Essential C++》
本来我计划继续说说如何来进入C++世界的,但是琢磨了一下,觉得还是要先解决一个问
题:为什么要学习C++?我觉得在软件开发这个行当了里除了为了生计外,学习新东西都
是应该以兴趣为导向的。所以撇开我个人对C++的偏爱,我想为你树立起学习C++的信
心和兴趣。当初我对自己学习C++的第一个忠告就是:不能半途而废!起初是兴趣驱动,
后来则是生计所需,最后还是回归到了兴趣。毕竟我从中得到了乐趣,这就足够了。在学
一个新东西前,解决动机问题很重要。就如同杀人一样,如果只是突然兴起,那么等尝试
了以后,是没有成就感的。革命先烈们为我们作出了很好的榜样,就算我们在学习C++的
道路上遇到了太多困惑和痛苦,但是我们毕竟为自己的信念做了努力,我们知道自己在
做什么,知道自己在追求什么。
C++适合做什么样的开发?
C++是一门广泛用于工业软件研发的大型语言。具有很高的复杂性和解决问题的能力。C
++不仅在开发上极具价值,同时在学术界也就有很高的价值。有关C++的文章应该可以
用浩如烟海来形容了吧。C++的世界级经典书籍也是数不胜数。然而,目前开发语言是如
此地繁荣,就连微软也在推出了新的开发语言C#。一个不可否认的现实是,在低阶程序设
计领域,C++挤压着C同时也在承受着C的强烈反弹,前段时间看了据说是微软操作系统源代
码的东东,其中很多还是C语言。而在高阶程序设计领域,Java和C#正在不断蚕食着C++的
地盘。也许Java和C#的狂潮终将迫使C++回归本位— 回到它有着根本性优势的开发领域:
低级系统程序设计、高级大规模高性能应用设计、嵌入式程序设计、通用程序设计以及数
值科学计算等。果真如此,我认为这未尝不是一件好事。电力系统软件所要求的高性能和
大规模数值计算正是C++所擅长的。就我所接触的南瑞和鲁能,很多涉及到电力系统计算
的软件如PAS等,都是用C++来开发的。在电力系统软件开发这块阵地,C++大有用武之
地。C++吸引如此之多的智力投入,以至于这个领域的优秀作品,包括重量级的软件产品、
程序库以及书籍等,数不胜数。在C++之父Bjarne Stroustrup的个人主页上,有一页
列出了一些(全部或大部分)使用C++编写的系统、应用程序和库。
下面是一些例子(摘自荣耀网站):
o Adobe Systems:所有主要应用程序都使用C++开发而成,比如Photoshop & ImageReady
、Illustrator和Acrobat等。
o Maya:知道“蜘蛛人”、“指环王”的电脑特技是使用什么软件做出来的吗?没错,就
是Maya。
o Amazon.com:使用C++开发大型电子商务软件。
o Apple:部分重要“零件”采用C++编写而成。
o AT&T:美国最大的电讯技术提供商,主要产品采用C++开发。
o Google:Web搜索引擎采用C++编写。
o IBM:OS/400。
o Microsoft:以下产品主要采用C++(Visual C++)编写:
o Windows XP Windows NT:NT4、2000 Windows 9x:95、98、Me Microsoft Office:Wo
rd、Excel、Access、PowerPoint、Outlook Internet Explorer,包括Outlook Express
Visual Studio:Visual C++、Visual Basic、Visual FoxPro .NET Framework类库采用C
#编写,但C#编译器自身则使用C++编写而成。Exchange SQL Server FrontPage Project
所有游戏......
o KDE:K Desktop Environment(Linux)。
o Symbian OS:最流行的蜂窝电话OS之一。
C++源于C语言,还记得很久以前学习C语言的时光(那是一段快乐而充实的时光),可是
现在学习C++,并不是在C的基础上加上了类而已,如果这样认为,我们是耍不好C++的
。因此,C++绝不是C的升级或扩充,我们应该把C++当作一门新语言来学习(C++之
父Bjarne Stroustrup语)。
写程序首先希望是程序能正确执行,其次是效率能够被接受,再次就是易于维护。C++是
一个难学易用的语言。C++提供了太多可选择的东西,而且使用使用C++来写程序可以
有四种思考模式:基于过程、基于对象、面向对象和泛型。我们使用一种语言来写程序,
并不意味着就是使用语言本身,换句话说,我们更多的时候是使用程序库在写程序。比如
MFC、STL、ATL、VCL等等。其中要使用C++来写出结构优美、性能卓越、代码简洁、易于
维护的代码,首推C++标准程序库。STL对效率做了严格的要求,而且使用STL写出来的程
序简洁美观(前段时间我特意贴了一个要求对若干整数进行排序的帖子,其实目的就是用来
展示STL的简洁优雅)。一旦习惯使用泛型思维来考虑问题,我们能够充分体会到模板带来的美!
对于数值计算来说,C++标准程序库可以充分满足现代化服务和商业计算对数据、信息的即
时回应的要求。
我觉得学好一门语言最重要的就是实践。也就是多“写”!“工程经验之积累”对已具有
一段开发时间的程序员而言,非常重要!只有在不断的积累中,我们才能渐渐体会到C++
语言中的一些背后的东西。对于这点,没有大量程序代码写作经验的菜鸟,也可以借助《
Effective C++》先攒一些经验值。《Effective C++》是一本好书!。Meyers的书绝对值
得一读,Meyers可以说当今C++社群中数一数二的技术专家。
推荐网站:
www.royaloo.com
以下文字应该是去年所涂鸦而成,主要是关于动态内存分配的,在这里将其重新看了看
,觉得还是写得太浅薄了。因为内存是程序运行的“运动场”,对场地的了解程度会直接
影响到我们程序运行的流畅度和稳定性。
C++提供了操作符new来在堆上分配内存,操作符delete来释放内存。有些情况下,我
们需要对内存的分配和释放进行更好的控制。许多程序创建和释放一些重要类的大量的对
象,如tree nodes,linked lists links,points,lines,messages,etc.使用通用的内存分
配器如new和delete来进行这些对象的分配和释放有时将支配程序的运行时间和内存需求。
两方面的因素:通用内存分配操作的运行和空间的耗费以及不同对象大小引起的内存碎片
。类使用定制的内存分配器将加快模拟器、编译器和类似程序的执行速度。
例外一种需要更好的内存控制的情况是:需要在有限资源的情况下长时间不间断运行
的程序。实时系统经常需要用最少的耗费来获取有保证的可预期的内存。这也就导致了更
好的内存控制的需要。一般来说,这些程序都避免使用动态的内存分配,而使用特殊目的
的内存分配器来管理有限资源。
此外,还有一些情况下由于硬件或系统的要求,需要将对象放在指定的内存位置。这也
需要进行定制的内存管理(通过重载new来加以实现)。
在C++ Release 2.0中,为了满足以上需求,内存管理机制做了相应的修改。主要是引
进了operator new [] 和 operator delete []。
new操作符的作用范围(Scope for operator new Functions)
操作符(Operator) 范围(Scope)
::operator new Global
class-name::operator new Class
operator new的第一个参数必须是类型size_t(在STDDEF.H中定义的类型),返回类型
为void *。
当分配内建(built-in)类型的对象、未包含用户自定义的new操作符函数的类对象、任何
类型的数组时,使用全局new操作符函数。当在类中自定义new操作符时,分配该类对象的
内存时,调用该类的new操作符。如下:
#i nclude
#i nclude
class Blanks
{
public:
Blanks(){}
void *operator new( size_t stAllocateBlock, char chInit );
};
void *Blanks::operator new( size_t stAllocateBlock, char chInit )
{
void *pvTemp = malloc( stAllocateBlock );
if( pvTemp != 0 )
memset( pvTemp, chInit, stAllocateBlock );
return pvTemp;
}
int main()
{
Blanks *a5 = new( 0xa5 ) Blanks;//创建对象Blanks,并且初试化为0xa5
return a5 != 0;
}
new操作符可以重载,而delete却不行。因为等到需要释放的时候,我们所能得到的就
是一个指针。而且该指针可能不是原先的对象类型指针(有可能进行了类型转换)。实际
上,当使用new获得一个指向一片内存的指针时,在该片内存前有一个指示器(indicator)
,记录实际分配的内存数量。当调用delete时,可以获知需要释放的内存大小。
数组的释放(Deallocating Arrays):
void f( )
{
X* p1 = new X[10];
//...
delete [] X;
}
为什么不使用delete [10] X;来释放内存?Bjarne Stroustrup称这种做法容易导致错
误,而将记录元素个数的任务放在delete的实现中了。
至于为什么C++中未内建垃圾收集器(Garbage Collection)的原因,看《C++语言的设
计和演化》(En) Bjarne Stroustrup 机械工业出版社(俗称:D&E)可以得到答案。
此外,C++标准库中提供了一种智能型指针auto_ptr,这种指针可以帮助我们防止“被
异常抛出时发生资源泄漏”。但是缺点是该智能型指针不能指向数组,因为其内部释放内
存是通过delete而非delete [] 来进行的。所以,只能使用其来指向一个单个对象。
模板部分是C++中比较难的部分,也是C++的魅力所在。以下文字是我以前看过的,具
体出处不清楚了。今天稍微整理了一下,作为模板介绍的一个单元。
为什么要使用模板
对于除类型之外,其余都相同的函数(譬如quicksort),我们一般有3种解决办法。
1、针对每个不同的类型重复地编写函数实体(C语言的做法):
int* quicksort(int a[]) {... }
double* quicksort(double a[]) {... }
…
2、使用Object(Java的做法)或者void*
缺点有两个
效率问题方面也有问题
类型检查问题
3、使用宏预处理机制
缺点:只是愚蠢的文本替换,而且也不会考虑作用域和类型安全。
然而,应用模板却可以避免这些缺点,我们可以编写:
template
T* quicksort(T a[]) {... }
优点:
代码简洁优雅,所有参数类型都以T来代替,真正实现了类型无关性。
更好的类型安全性,所有的类型检查都是在编译期进行,而且避免使
用指针。
不存在继承,效率高。(1)没有虚函数;(2)所有的一切工作都是
在编译期完成,大大提高运行效率。
目的:告诉编译器如何做出最佳的选择,而且这种选择
全部是在编译期完成的。
模板的机制:特化 和 实参演绎
1、特化
基本模板:
template
class A { // (1)
void f(T1 a, T2 b);
}
局部特化(偏特化):
template class A { // (2)
void f(int a, T2 b);
}
或者
template> class A { // (3)
void f(T a, T b);
}
全局特化(显式特化):
template<>
class A {
void f(int a, int b); // (4)
}
使用示例:
A* p1; //将使用(4) ——全局特化
A* p2; //将使用(3) ——局部特化
A* p3; //将使用(2) ——局部特化
A* p4; //将由(1) ——基本模板——生成
//A
优点:
由:全局特化->局部特化->基本模板,这种特化顺序的选择与匹配(重载解析规则)是由编译器自动进行的,无需人工参与。
可以根据不同的情况(诸如类型不同,条件不同),给出不同的实现,从而获得更加灵活的针对性。
可以针对任何变化,改善了程序的扩展性。
2 实参演绎
T const& f(T const& a, T const& b)
{
return a + b; //1处
}
int g = f(1,2);
实际上f(1,2)要匹配的函数是int const& f(int const&,int const&);
而这个函数又是怎么来的呢?
优点:
再也无需提供一对尖括号和里面的实参,诸如f(1,2),有了
实参演绎,我们就可以写成f(1,2)。
模板的应用
1、标准库(STL)——到处都是模板代码
标准库=算法+容器+迭代器
如list /
2、类型无关性(T)
3、trait和policy
(1)trait: 主要用到了许多typedef和特化,指定的是一种特性。
// traits/accumtraits3.hpp
template
lass AccumulationTraits;
c template<>
class AccumulationTraits {
public:
typedef int AccT;
static AccT const zero = 0;
};
template<>
class AccumulationTraits {
public:
typedef int AccT;
static AccT const zero = 0;
};
template<>
class AccumulationTraits {
public:
typedef long AccT;
static AccT const zero = 0;
};
(2)policy:通常表现为某个函数,指定的是一种行为
class SumPolicy {
public:
template
static void accumulate (T1& total, T2 const & value) {
total += value;
}
};
(3)trait和policy的用法:
template>
class Accum {
public:
typedef typename Traits::AccT AccT;
static AccT accum (T const* beg, T const* end) {
AccT total = Traits::zero();
while (beg != end) {
Policy::accumulate(total, *beg);
++beg;
}
return total;
}
};
4、Metaprogramming
编译期计算、递归的思想
5、新形式的设计模板
(第三、第四、第五点以后再详细介绍)
《C++ Templates中文版》的具体介绍
第1部分介绍了模板的基本概念,以教程的风格来介绍这些基本概念。
第2部分阐述了模板的语言细节,可以作为一本基于模板的构造的参考手册。
第3部分介绍了C++模板所支持的基本设计技术,范围覆盖从微小的概念一直延伸到复杂的用法;一些技术在别的书籍都没有出现过。
第4部分基于前两部分,深入讨论了各种使用模板的普通应用程序。
B. 服装的纸样、样衣 、样板、打板是什么
1、纸样是指用纸做出的模型。纸样一词是服装工业中专用的词语,是把立体服装平面化的一种很好的表现方法。服装纸样设计是服装结构上的设计,它虽然有别于服装造型的设计,但它是构成服装造型设计的基础。
2、样衣: 服装的实际样品。分为两种:
(1)企业自主设计试制的新款样品,供客户选样订购;
(2)按客户要制作并经客户确认的样品,体现设计意图和原作精神的样衣是设计、制板和车缝密切配合、反复修改、不断完善的集体劳动成果。
3、样板:起着模具、图样和型板的作用,是排料画样裁剪和产品缝制过程中的技术依据,也是检验产品规格质量的直接衡量标准。样板是以结构制图为基础制作出来的,称为打制样板,简称制板。
4、打板:根据设计师的意图在纸样上将服装分解成衣片,绘制成结构图(纸样),包括身,袖,领等。纸样经过校验后放在面料上,按照纸样的轮廓裁剪成衣片,将衣片进行缝纫后做出成衣。
(2)做衣服程序里面的抛模板是什么扩展阅读:
服装纸样是服装设计的重要组成部分,是服装厂的核心技术,它是联系创作设计和工艺设计的桥梁,是第二设计。
结构设计师根据创作设计师的服装效果图和规格,或者根据客户的样板和规格,或者根据客户的制单,通过平面的或者立体的结构设计手法,按照符合人体的变化原理,做出净样的底图。
通过不同的方法从底图上用硬纸板把样片剥离出来,在样片上加上出纸样的九个方面(1缝份、2剪口、3布纹、4款号、5名称、6数量、7尺码、8粘合衬、9颜色),通过检查就可以交给车板工去车板了,这就是出纸样的过程。
服装纸样是创作设计的延伸和实现,又是工艺设计的依据和基础,所以服装纸样在服装厂里占着举足轻重的位置。
C. 如何制作淘宝商品图片模板
1。软件工具:要自己制作宝贝模板,首先要选择网页编辑工具,目前业界最流行得就是 dreamweaver 了,用老微的frontpage也可以。想自己做的朋友最好选择前者,frontpage我以前也用过,后来很少用,主要还是觉得dreamweaver使用更加方便,功能更加强大,毕竟是专门以这个起家的嘛。 需要dreamweaver 软件的朋友可以 从网络上下载,下载方法:在 google 搜索栏中输入“ dreamweaver 软件下载 ” 就可以找到很多下载网站了!!!,其它工具软件你都可以这样搜索到,下载就可以了。不过,记得下载完了一定要先杀毒哦,对我们这些店家来讲,安全是非常重要得。
2。网页制作之前,首先要考虑自己模板的基本布局。先不要着急用dreamweaver开始编辑,正式编辑之前我建议朋友们多看一些别人的作品,总结出宝贝描述模板的大体布局方法,需要的各个选项!最好的办法就是先纸上谈兵,在纸上用笔先勾画出描述模板的布局,注明需要做的一些工作等。不过,宝贝模板的主要模块我总结就是以下就是几块
A. 商品的大图 B。商品的描述 C买家事宜 D配送方法 E店铺分类 F 店铺连接
可以在纸上粗粗描绘一下大体的布局,然后再开始下面的工作。
3。 准备素材。做网页不能没有素材,素材就是指一些养眼的图片,文字,背景等资源。还有最重要的,也最可能用到的就是你店铺的logo,宝贝的图片,文字介绍跟店铺商品有关的一切了。把这些素材都统统归到一个目录下面(真正正规的编辑方法是按照文件夹来组织自己的素材),方便以后寻找。另外,为了做出更好的效果,可能还要动用一下photoshop这个工具,特别对图片处理都离不开它。下载的方法象上面所说的就可以了。
4。现在基本的东西已经准备好了。那么就开始做吧。
淘巧网
A。首先打开Dreamweaver ,新建一个html网页。这个时候工作台上你看到一个白色的区域,就是编辑区域了。
B。添加表格进行布局。这一点很重要,因为表格能够比较方便的让我们进行布局的分配,以及以后各种素材的定位。有了表格,我们心里面就对布局基本有数了。在表格里面可以添加我们的素材,文字,更改背景等。这些文字一般是通用的文字,固定不变的,不会随着宝贝的不同而变化,比如【买家事宜】,【配送方法】等标题性和说明性的文字。这个时候我们还要留出放置宝贝图片,和宝贝描述的位置,这些都是会变化的,因为每个宝贝的图片,和描述都是不同的。因此一定要留出这个位置。 龚树华的淘巧网
提示:这一步之前首先要把需要用到的图片上传网络上去,我推荐给大家这个网站。首先上传有一个好处,以后在使用图片的时候,直接可以找到图片,然后复制下该图片的连接添加到图像占位符的来源上面就可以了,不用再一边上传图像,一边编辑网页。
C。在需要添加图片的位置上,添加一个图像占位符,记住,宝贝描述模板中所有的图像都一定是一个图像占位符,不能直接图像。添加完后我们看到一个断裂的方块,证明该对象是个图像占位符。 淘巧
【重点理解】为什么不直接插入图像呢?直接插入图像在淘宝里面是无法显示的。在要放置图像的地方,包括背景图等都要使用图像占位符。有了图像占位符,等于是先占好了这个位置,然后在这个位置上添加相应的图片连接地址,这样当在浏览器中查看网页的时候,浏览器自己按照图片的连接地址下载图像,就可以显示出自己想要的图片了。这点很重要哦。
D。在其它位置上也添加一些图像占位符,比如店铺logo,店铺分类等等,这些位置可以为你以后操作带来方便。
E。把图像占位符的地方填好图片的网络连接地址,具体到每个商品图片时候,我们在淘宝里宝贝编辑器中再填进来。在淘宝的宝贝描述编辑器里,我们找到该商品的图片连接地址,填到图像占位符的图片来源上就可以了。这样的话,只需要改动商品图片图像占位符的图像来源地址,就可以显示我们想要的图片了。
6。以上如果不出所料,按照自己的设计,基本上可以算完工了。具体美不美观要自己慢慢调整。现在最重要的就是在Dreamweaver中切换到代码编辑窗口,CTRL+a 选中所有代码,选择复制,然后选择一个宝贝,在淘宝里面编辑该宝贝,在宝贝编辑器里面,选择编辑源文件,这个时候就切换到代码编辑窗口了。将先前复制的代码粘贴到该窗口,然后选择编辑模式,切换到图形编辑模式。这个时候你就发现,以前你设置的图像占位符现在都显示成图片了。如果不能显示,就证明该处没有图像连接地址。敢紧选择该图像占位符,然后点击插入/编辑图像按钮,输入相应的图片连接地址就可以了。 特别要提示的是:修改宝贝描述主要是能够直接显示宝贝的大图。这个时候一定要更改宝贝图片占位符,把该占位符的图像来源改成是当前宝贝的图片连接地址就可以了。 内容来自淘巧网
点击一下预览,可以看看编辑的效果,有什么不满意的,只能以后慢慢修改了。
切换宝贝编辑器到代码模式,选择所有代码复制并拷贝到一个TXT文本文件中保留,以后每个宝贝都可以用到。新建一个宝贝的时候将这些代码在代码编辑模式下面直接拷贝过来,然后切换回图像编辑模式改变对应的宝贝图片就可以了。
怎么样,一切都很简单吧。
下面的图是dreamweaver中图形编辑模式下的宝贝模板的布局,红色字体说明部分是常用到的哦,一定要多加留意。
具体的效果大家可以到我的店铺里面随便点击一个宝贝看下就可以。还有很多地方要完善的,请大家多多指教。有什么问题可以一起探讨噢。只能算是抛砖引玉。希望高手们把你们的设计经验跟大家交流一下。
补充说明一下,在宝贝编辑器中可以使用热点连接这个功能来创建图像上的直接连接功能.比如我的模板上面店铺介绍,逛逛本店,信用评价这些文字上面都使用了连接功能.这个连接功能怎么实现的呢?方法如下 :
选中你需要做连接的图片,图像占位符也是支持的。然后这个时候你发现dreamweaver左下脚有一些绿色的小图标。这些是用来在图片上画出一些方形,圆形或其它形状区域,在浏览器中,鼠标经过这些区域的时候就会变成小手的形状,这些区域就是热区。鼠标点击这一热区的时候就会连接到相应的网页。
赶快在图上画一个区域,然后在dreamweaver左下角连接地址中输入你想要连接的网页地址。
将代码考到宝贝编辑器,然后预览一下,当鼠标放到这些区域上的时候,就会变成小手的形状。点击一下,就会连接到相应的网页了。