欢迎来到【飞狐双顶源码】【股票启动源码指标】【遇见神鹿源码python】cfont源码-皮皮网网站!!!

皮皮网

【飞狐双顶源码】【股票启动源码指标】【遇见神鹿源码python】cfont源码-皮皮网 扫描左侧二维码访问本站手机端

【飞狐双顶源码】【股票启动源码指标】【遇见神鹿源码python】cfont源码

2024-11-30 01:19:30 来源:{typename type="name"/} 分类:{typename type="name"/}

1.编程中VB跟VC指的是什么 请详细说清楚...
2.即使是一些大站,为了吸引VC往往也偷偷搞些猫腻.这里的VC是什么意思
3.什么是vc?
4.Windows 中不规则窗体的编程实现

cfont源码

编程中VB跟VC指的是什么 请详细说清楚...

       VB即Visual Basic编程语言

        年,美国微软公司推出了Visual Basic(可简称VB),目前的最新版本是VB Beta2(VB9)中文版。

        Visual 意即可视的、可见的飞狐双顶源码,指的是开发像Windows操作系统的图形用户界面(Graphic User Interface,GUI)的方法,它不需要编写大量代码去描述界面元素的外观和位置,只要把预先建立好的对象拖放到屏幕上相应的位置即可。

        Basic 实际上是一个短语的缩写,这个短语就是 Beginners all_purpose symbolic instruction code ,其中文意思为“初始者通用符号指令代码语言”。

        Visual Basic 6 有学习版、专业版和企业版三种版本,以满足不同的开发需要。学习版适用于普通学习者及大多数使用 Visual Basic 开发一般 Windows 应用程序的人员,但是;专业版适用于计算机专业开发人员,包括了学习版的全部内容功能以及Internet控件开发工具之类的高级特性;企业版除包含专业版全部的内容外,还有自动化构件管理器等工具,使得专业编程人员能够开发功能强大的组骨子里分布式应用程序。

        Visual Basic 是一种可视化的、面向对象和采用事件驱动方式的结构化高级程序设计语言,可用于开发 Windows 环境下的各类应用程序。它简单易学、效率高,且功能强大可以与 Windows 专业开发工具SDK相媲美。在Visual Basic环境下,利用事件驱动的编程机制、新颖易用的可视化设计工具,使用Windows内部的广泛应用程序接口(API)函数,以用动态链接库(DLL)、对象的链接与世隔嵌入(OLE)、开放式数据连接(ODBC)等技术,可以高效、快速地开发Windows环境下功能强大、图形界面丰富的应用软件系统。随着版本的提高,Visual Basic的功能也越来越强。5.0版以后,Visual Basic 推出了中文版,与前个版本相比,其功能有了很大提升。

        但是,功能再强大,Visual Basic 仍然有一个缺点:在没有MSVBVM**.DLL的计算机上必须安装所需的DLL文件。用它可设计操作系统,不过,比较困难。

        在世纪初,Microsoft 公司推出 Visual Studio .NET ,它与 Visual Basic 之间有了重大变化,Visual Studio 为各种编程工具做了一个平台,Visual Basic.NET 可在这种平台上运行。相对于传统VB,有很大的不同。VB .Net,首次使用.Net构架进行可视化编程,并且能很好地与COM构架兼容,Visual Studio .NET 应用 .NET Framework 1.1 。

        年 Visual Studio 则运用了 NET 2.0 的技术,更加的方便了程序员的工作。可是新的程序对系统配置要求也较高,需要微软.Net Framework 2.0以上的.Net构架支持。

        年月,微软(Microsoft)推出了Visual Studio Beta 2 发生了重大的变化(见附图)在代码输入的时候,可以比VB快很多,在非特殊的情况下,VB都会自动开启 自动完成关键字 这个命令 而且支持最新的 .NET Framework 3.5 SP1 Beta

       VC即Visual Basic编程语言

        一、VC是什么?学VC是学什么?

        首先VC是一个软件(IDE集成开发环境)(编译、编辑、调试)

        C和C++。但C++中的有些特性是不用的,例如I/O流,多态继承

        WindowsSDK(软件开发工具)

        VC的灵魂:MFC(微软基础类库)

        ATL(ActiveX模板类库)

        其他的SDK,如OpenGL,DirectX,ActiveMoive,DrawDib(WinG)

        VC是许许多多技术的综合,就好像少林般绝技,一般在应用中学会其中很少一部分就够了。我们的现在目的,其实不过是学一套少林长拳。这套长拳应包括:

        1、养成一种严谨的软件开发习惯,熟悉软件工程的基本原则。

        2、C语言基础

        3、C++最基本内容:类、继承性、封装性、多态性的概念

        4、如何用向导建立一个程序框架

        5、设计菜单

        6、设计工具条

        7、设计和使用对话框,熟悉最常用的对话框控件:按钮、静态文本、编辑框等

        8、知道怎样新建类、成员函数、成员变量、消息处理函数。

        9、了解最常用的Windows消息:如WM_PAINT(重绘窗口),鼠标按下、弹起、股票启动源码指标移动,初始化对话框,等。

        、了解最简单的GDI(图形设备接口):写文字、画框、画点、画线、画圆,设置画笔、画刷。

        、熟悉最常用的MFC类:

        CWnd

        CDocument

        CView

        CDC

        CDialog

        CWinApp

        CGdiObject及子类

        CString、CPoint、CRect、CSize等简单数据类型

        CFile

        以上提到的这些内容,是每个人都会用到的内容。

        二、MFC简介

        上述主要内容都是与实际操作关系非常密切的,在此不可能讲清楚;而且,这些在一般的书里都会讲到。我主要将最重要的MFC介绍一下。

        MFC是对WindowsAPI的封装,大大简化了我们的工作;学VC主要就是要学MFC,大约有多个类,但常用的也就二三十个。应该象背4级单词一样将这些常用类搞懂;当然不要死记,要通过看帮助、看例子、动手练习来学会它们;而且,并非每个类的内部的所有函数都要学会,要日积月累。如果真的想成为高手,做个笔记本把自己认为重要的类、函数记下来,随时学习,也是很好的突击方法。

        下面介绍最重要的MFC。

        CWnd:窗口,它是大多数“看得见的东西”的父类(Windows里几乎所有看得见的东西都是一个窗口,大窗口里有许多小窗口),比如视图CView、框架窗口CFrameWnd、工具条CToolBar、对话框CDialog、按钮CButton,etc;一个例外是菜单(CMenu)不是从窗口派生的。该类很大,一开始也不必学,知道就行了。

        CDocument文档,负责内存数据与磁盘的交互。最重要的是OnOpenDocument(读入),OnSaveDocument(写盘),Serialize(读写)

        CView视图,负责内存数据与用户的交互。包括数据的显示、用户操作的响应(如菜单的选取、鼠标的响应)。最重要的是OnDraw(重画窗口),通常用CWnd::Invalidate()来启动它。另外,它通过消息映射表处理菜单、工具条、快捷键和其他用户消息。你自己的许多功能都要加在里面,你打交道最多的就是它。

        CDC设备文本。无论是显示器还是打印机,都是画图给用户看。这图就抽象为CDC。CDC与其他GDI(图形设备接口)一起,完成文字和图形、图像的显示工作。把CDC想象成一张纸,每个窗口都有一个CDC相联系,负责画窗口。CDC有个常用子类CClientDC(窗口客户区),画图通常通过CClientDC完成。

        CDialog对话框

        CWinApp应用程序类。似于C中的main函数,是程序执行的入口和管理者,负责程序建立、消灭,主窗口和文档模板的建立。最常用函数InitInstance():初始化。

        CGdiObject及子类,用于向设备文本画图。它们都需要在使用前选进DC。

        CPen笔,画线

        CBrush刷子,填充

        CFont字体,控制文字输出的字体

        CBitmap位图

        CPalette调色板

        CRgn区域,指定一块区域可以用于做特殊处理。

        CFile文件。最重要的不外是Open(打开),Read(读入),Write(写)

        CString字符串。封装了C中的字符数组,非常实用。

        CPoint点,就是(x,y)对

        CRect矩形,就是遇见神鹿源码python(left,top,right,bottom)

        CSize大小,就是(cx,cy)对(宽、高)

        三、用好MSDN和例子

        作为提高,推荐看的例子有:

        nHello最简单的程序框架

        nScribble鼠标绘图。教程:编程基础,GDI

        nDiblook图像处理最简单范例

        nMFCIE因特网浏览器

        nEnroll数据库

        nDaoviewDao(数据访问对象)范例。树型和列视控件

        nCubeOpenGL范例,画一个不断旋转的方块

        nHierSvrOLE服务器

        nOclientOLE包容器

        nDrawcli鼠标绘图。也包括OLE。

        nWordPad写字板。OLE

        四、几点经验

        A.为什么要用Windows而不是DOS编程

        Windows编程并不比DOS编程难很多,只是在刚刚接触的时候感到头绪繁多,不知从何下手。实际上,如果你会C语言,你会发现Windows编程的难度并不比当年学C语言时大。DOS编程要想成为高手,也需要学习几百个函数(无论是TC、BC、MicrosoftC),并要深入了解汇编语言级的DOS功能调用。而现在在Windows下,付出相同的工作量,你却可以获得几倍的收益。如果你以前熟悉DOS编程,现在再搞Windows编程,只要两个星期肯定会感到巨大的优越性:在DOS下,每一件事都要自己干,而且还有K内存、显示精度等的限制,实在是事倍功半了。

        B.为什么要用VC而不是其他Windows编程语言

        n大多数大型软件(包括Windows自己)都是用C、C++编的,所以可以利用的源代码特别多。例如Photoshop,就有VC的编程接口。的其他的语言都不如VC有历史优势。而且VC的开发工具特别多,从控件公司到硬件开发商,其产品很少敢不提供VC接口的。

        nVC适合组织大工程(VB就不行)

        nBorlandC++或C++Builder也很不错,并不比VC差。但BC的版本兼容性不好,从3.1到4.0就出现“代沟”,而且VC提供了极为丰富的文档和范例,VC的参考资料也远比BC多。并且VC与其他的VisualStudio成员可以协调工作,对软件工程有利。

        n

        C.开始不要学WinAPI编程,但以后最好学学WinAPI

        特别要注意,开始不要买讲WindowsSDK编程的书。一个臭名昭著的例子就是“HelloWorld”。各种计算机语言在入门课中往往都给出一个例子,显示一行文字“HelloWorld”,无论是在Basic、C、Pascal,甚至汇编中,这个最简单的小程序都几行就可以写完。但在早期的Windows编程中,刚才讲到的“HelloWin”这个有名的例子就要组织一个工程、写上几百行代码才能实现。这就吓跑了很多想学Windows编程的人。实际上,在Windows下显示“Helloworld”,最简单的方法只要5行就够了:

        #include“windows.h”

        voidWinMain()

        {

        MessageBox(NULL,”HelloWorld!”,”MyFirstWindowsApplication”,MB_OK);

        }

        当然这个程序只建立了一个最简单的对话框,但这已经够了。

        如果你没有SDK编程的经验,学VC就是要利用MFC绕过Windows编程的许多细节。有好的工具为什么不用呢?现在你在VC写一个”HelloWorld”,只要写一行代码就可以了。

        voidCYourView::OnDraw(CDC*pDC)

        {

        //…….其他的代码

        pDC->TextOut(,,”HelloWorld!”);

        }

        但MFC不是万能的,WinAPI和VC中有很多功能在MFC中并不能反映出来。在入门后,要想发挥VC的完全能力,WindowsAPI还是非常重要的。而且,这些API在其他Windows语言中也用得到。

        学语言,与练武道理也差不多。VC、VB、Dlphi、VFP,以及其他的Windows编程语言,都属于同一个门派:Windows门,虽然招式不同,但内功都是一样的,这就是WindowsAPI(应用编程接口),大概是两千个函数。任何武功,招式即使再复杂,通常也能在很短时间内记下来;但内功就不是一朝一夕的事。而且,各门派的内功不同,Unix、Linux门有Uinx的内功,Apple(苹果)门有Mac的内功,Java更是抄底卖出指标源码自成一派。我们这里说的学VC,只是学招式,学招式一个月差不多就够了,聪明的两个星期就可以掌握。光学招式,吓唬人是够了,但和高手一过招,非出丑不可。要想精通VC,必须熟悉WindowsAPI。

即使是一些大站,为了吸引VC往往也偷偷搞些猫腻.这里的VC是什么意思

       一、VC是什么?学VC是学什么?

       首先VC是一个软件(IDE集成开发环境)(编译、编辑、调试)

       C和C++。但C++中的有些特性是不用的,例如I/O流,多态继承

       WindowsSDK(软件开发工具)

       VC的灵魂:MFC(微软基础类库)

       ATL(ActiveX模板类库)

       其他的SDK,如OpenGL,DirectX,ActiveMoive,DrawDib(WinG)

       VC是许许多多技术的综合,就好象少林般绝技,一般在应用中学会其中很少一部分就够了。我们的现在目的,其实不过是学一套少林长拳。这套长拳应包括:

       1、养成一种严谨的软件开发习惯,熟悉软件工程的基本原则。

       2、C语言基础

       3、C++最基本内容:类、继承性、封装性、多态性的概念

       4、如何用向导建立一个程序框架

       5、设计菜单

       6、设计工具条

       7、设计和使用对话框,熟悉最常用的对话框控件:按钮、静态文本、编辑框等

       8、知道怎样新建类、成员函数、成员变量、消息处理函数。

       9、了解最常用的Windows消息:如WM_PAINT(重绘窗口),鼠标按下、弹起、移动,初始化对话框,等。

       、了解最简单的GDI(图形设备接口):写文字、画框、画点、画线、画圆,设置画笔、画刷。

       、熟悉最常用的MFC类:

       CWnd

       CDocument

       CView

       CDC

       CDialog

       CWinApp

       CGdiObject及子类

       CString、CPoint、CRect、CSize等简单数据类型

       CFile

       以上提到的这些内容,是每个人都会用到的内容。

       二、MFC简介

       上述主要内容都是与实际操作关系非常密切的,在此不可能讲清楚;而且,这些在一般的书里都会讲到。我主要将最重要的MFC介绍一下。

       MFC是对WindowsAPI的封装,大大简化了我们的工作;学VC主要就是要学MFC,大约有多个类,但常用的也就二三十个。应该象背4级单词一样将这些常用类搞懂;当然不要死记,要通过看帮助、看例子、动手练习来学会它们;而且,并非每个类的内部的所有函数都要学会,要日积月累。如果真的想成为高手,做个笔记本把自己认为重要的类、函数记下来,随时学习,也是很好的突击方法。

       下面介绍最重要的MFC。

       CWnd:窗口,它是大多数“看得见的东西”的父类(Windows里几乎所有看得见的东西都是一个窗口,大窗口里有许多小窗口),比如视图CView、框架窗口CFrameWnd、工具条CToolBar、对话框CDialog、按钮CButton,etc;一个例外是菜单(CMenu)不是从窗口派生的。该类很大,一开始也不必学,知道就行了。

       CDocument文档,视酷源码详解负责内存数据与磁盘的交互。最重要的是OnOpenDocument(读入),OnSaveDocument(写盘),Serialize(读写)

       CView视图,负责内存数据与用户的交互。包括数据的显示、用户操作的响应(如菜单的选取、鼠标的响应)。最重要的是OnDraw(重画窗口),通常用CWnd::Invalidate()来启动它。另外,它通过消息映射表处理菜单、工具条、快捷键和其他用户消息。你自己的许多功能都要加在里面,你打交道最多的就是它。

       CDC设备文本。无论是显示器还是打印机,都是画图给用户看。这图就抽象为CDC。CDC与其他GDI(图形设备接口)一起,完成文字和图形、图像的显示工作。把CDC想象成一张纸,每个窗口都有一个CDC相联系,负责画窗口。CDC有个常用子类CClientDC(窗口客户区),画图通常通过CClientDC完成。

       CDialog对话框

       CWinApp应用程序类。似于C中的main函数,是程序执行的入口和管理者,负责程序建立、消灭,主窗口和文档模板的建立。最常用函数InitInstance():初始化。

       CGdiObject及子类,用于向设备文本画图。它们都需要在使用前选进DC。

       CPen笔,画线

       CBrush刷子,填充

       CFont字体,控制文字输出的字体

       CBitmap位图

       CPalette调色板

       CRgn区域,指定一块区域可以用于做特殊处理。

       CFile文件。最重要的不外是Open(打开),Read(读入),Write(写)

       CString字符串。封装了C中的字符数组,非常实用。

       CPoint点,就是(x,y)对

       CRect矩形,就是(left,top,right,bottom)

       CSize大小,就是(cx,cy)对(宽、高)

       三、用好MSDN和例子

       作为提高,推荐看的例子有:

       nHello最简单的程序框架

       nScribble鼠标绘图。教程:编程基础,GDI

       nDiblook图像处理最简单范例

       nMFCIE因特网浏览器

       nEnroll数据库

       nDaoviewDao(数据访问对象)范例。树型和列视控件

       nCubeOpenGL范例,画一个不断旋转的方块

       nHierSvrOLE服务器

       nOclientOLE包容器

       nDrawcli鼠标绘图。也包括OLE。

       nWordPad写字板。OLE

       四、几点经验

       A.为什么要用Windows而不是DOS编程

       Windows编程并不比DOS编程难很多,只是在刚刚接触的时候感到头绪繁多,不知从何下手。实际上,如果你会C语言,你会发现Windows编程的难度并不比当年学C语言时大。DOS编程要想成为高手,也需要学习几百个函数(无论是TC、BC、MicrosoftC),并要深入了解汇编语言级的DOS功能调用。而现在在Windows下,付出相同的工作量,你却可以获得几倍的收益。如果你以前熟悉DOS编程,现在再搞Windows编程,只要两个星期肯定会感到巨大的优越性:在DOS下,每一件事都要自己干,而且还有K内存、显示精度等的限制,实在是事倍功半了。

       B.为什么要用VC而不是其他Windows编程语言

       n大多数大型软件(包括Windows自己)都是用C、C++编的,所以可以利用的源代码特别多。例如Photoshop,就有VC的编程接口。的其他的语言都不如VC有历史优势。而且VC的开发工具特别多,从控件公司到硬件开发商,其产品很少敢不提供VC接口的。

       nVC适合组织大工程(VB就不行)

       nBorlandC++或C++Builder也很不错,并不比VC差。但BC的版本兼容性不好,从3.1到4.0就出现“代沟”,而且VC提供了极为丰富的文档和范例,VC的参考资料也远比BC多。并且VC与其他的VisualStudio成员可以协调工作,对软件工程有利。

       n

       C.开始不要学WinAPI编程,但以后最好学学WinAPI

       特别要注意,开始不要买讲WindowsSDK编程的书。一个臭名昭著的例子就是“HelloWorld”。各种计算机语言在入门课中往往都给出一个例子,显示一行文字“HelloWorld”,无论是在Basic、C、Pascal,甚至汇编中,这个最简单的小程序都几行就可以写完。但在早期的Windows编程中,刚才讲到的“HelloWin”这个有名的例子就要组织一个工程、写上几百行代码才能实现。这就吓跑了很多想学Windows编程的人。实际上,在Windows下显示“Helloworld”,最简单的方法只要5行就够了:

       #include“windows.h”

       voidWinMain()

       {

       MessageBox(NULL,”HelloWorld!”,”MyFirstWindowsApplication”,MB_OK);

       }

       当然这个程序只建立了一个最简单的对话框,但这已经够了。

       如果你没有SDK编程的经验,学VC就是要利用MFC绕过Windows编程的许多细节。有好的工具为什么不用呢?现在你在VC写一个”HelloWorld”,只要写一行代码就可以了。

       voidCYourView::OnDraw(CDC*pDC)

       {

       //…….其他的代码

       pDC->TextOut(,,”HelloWorld!”);

       }

       但MFC不是万能的,WinAPI和VC中有很多功能在MFC中并不能反映出来。在入门后,要想发挥VC的完全能力,WindowsAPI还是非常重要的。而且,这些API在其他Windows语言中也用得到。

       学语言,与练武道理也差不多。VC、VB、Dlphi、VFP,以及其他的Windows编程语言,都属于同一个门派:Windows门,虽然招式不同,但内功都是一样的,这就是WindowsAPI(应用编程接口),大概是两千个函数。任何武功,招式即使再复杂,通常也能在很短时间内记下来;但内功就不是一朝一夕的事。而且,各门派的内功不同,Unix、Linux门有Uinx的内功,Apple(苹果)门有Mac的内功,Java更是自成一派。我们这里说的学VC,只是学招式,学招式一个月差不多就够了,聪明的两个星期就可以掌握。光学招式,吓唬人是够了,但和高手一过招,非出丑不可。要想精通VC,必须熟悉WindowsAPI。

       D.高级语言与自然语言

       一门高级语言与一门自然语言是类似的。关键要素有三:

       语法:了解C和C++基本语法,这是比较容易的。

       修辞:编程的艺术和风格。通常,这是与软件工程联系起来的。算法上的小伎俩并非是关键的。严谨,严格按照规范去做,同时又能发挥出极大的创造性,才是语言学家的本色。

       词汇:如何利用别人的工作?如何利用自己以前的工作?这是一个软件工程师成功的关键。如果词汇量不丰富,就写不出好文章,就会有想法表达不出。一个人的语法在上小学之前就基本上学成了,修辞水平也在年轻时就确定了,惟有词汇量需要根据需要不断学习、不断扩充。VC编程中,拥有大的词汇量就意味着要掌握较多的类、函数和其他编程组件。如:WindowsSDK,MFC,以及你所专攻的领域的现成的SDK,比如3D编程中的OpenGL,多媒体编程中的DirectX,图像处理中的Victor库。另外,ActiveX控件的掌握往往也是成败的关键。我们这几年的工作也总结成了一个类库,叫IPX(图像处理框架),大大简化了图像处理的工作;不过现在还有很多细节问题要解决,如果有同学感兴趣可以参与这方面的工作。

       学习VC,千万不要用我们在学校里学英语的方法,而要用小孩学说话的方法。所谓学英语的方法,就是我们在本科时学C语言的那种模式:详细搞懂每一个细节,背大量的规则,很少上机实践,没有实际问题供解决,最后由考试来断定学习成果。这种模式的后果大家都清楚:我们学了十几年英语,可有不少人还只会四五千个单词,写百把字的文章,不会说,不能听;尤其要命的是,看不懂VC的帮助文档。我们要象婴儿一样,在使用中学会语法、修辞和词汇;一开始肯定只能编出最糟糕的,就好象小孩开始只会说:“爸爸坐车车”;但“爸爸”“车车”这些词对小孩是最需要的,学习的效率反而最高。学VC的时候,应从我的需要出发,先做一个最简单的东西,然后一点一点复杂起来,象滚雪球一样。

       学习VC尤其要和别人交流,你苦苦思考不明白的,也许别人早就解决了。一定要善于学习:从书店找出有用的书;向身边的高手学习;寻找可以利用的源代码、类库、组件、控件、库;如果能上互连网,那就更加能解决问题了。

       

参考资料:

/.html

什么是vc?

       维生素c

       维生素C参加体内的氧化还原过程,促进人体的生长发育,增强人体对疾病的抵抗能力,促进细胞间质中胶原的形成,维持牙齿、骨骼、血管和肌肉的正常功能,增强肝脏的解毒能力。当人体中缺少维生素C时,就会出现牙龈出血、牙齿松动、骨骼脆弱、粘膜及皮下易出血、伤口不易愈合等症状。近年来,科学家们还发现,维生素C能阻止亚硝酸盐和仲胺在胃内结合成致癌物质——亚脱胺,从而减低癌的发病率。

       维生素C主要生理功能:

       1、 促进骨胶原的生物合成。利于组织创伤口的更快愈合;

       2、 促进氨基酸中酪氨酸和色氨酸的代谢,延长肌体寿命。

       3、 改善铁、钙和叶酸的利用。

       4、 改善脂肪和类脂特别是胆固醇的代谢,预防心血管病。

       5、 促进牙齿和骨骼的生长,防止牙床出血。;

       6、 增强肌体对外界环境的抗应激能力和免疫力。

       维生素C缺乏和疾病:

       维生素C缺乏时,其症状表现为:

       1. 牙龈肿胀出血,牙床溃烂、牙齿松动。

       2. 骨骼畸形、易骨折。

       3. 伤口难愈合等。进一步则引起坏血症、贫血。

       4. 大出血和心脏衰竭,严重时有猝死的危险。

       5. 肌肉纤维衰退,包括心肌衰退。

       含维生素C的食物很多,猕猴桃和辣椒中含量最丰富.

       VC

       一、VC是什么?学VC是学什么?

       首先VC是一个软件(IDE集成开发环境)(编译、编辑、调试)

       C和C++。但C++中的有些特性是不用的,例如I/O流,多态继承

       WindowsSDK(软件开发工具)

       VC的灵魂:MFC(微软基础类库)

       ATL(ActiveX模板类库)

       其他的SDK,如OpenGL,DirectX,ActiveMoive,DrawDib(WinG)

       VC是许许多多技术的综合,就好像少林般绝技,一般在应用中学会其中很少一部分就够了。我们的现在目的,其实不过是学一套少林长拳。这套长拳应包括:

       1、养成一种严谨的软件开发习惯,熟悉软件工程的基本原则。

       2、C语言基础

       3、C++最基本内容:类、继承性、封装性、多态性的概念

       4、如何用向导建立一个程序框架

       5、设计菜单

       6、设计工具条

       7、设计和使用对话框,熟悉最常用的对话框控件:按钮、静态文本、编辑框等

       8、知道怎样新建类、成员函数、成员变量、消息处理函数。

       9、了解最常用的Windows消息:如WM_PAINT(重绘窗口),鼠标按下、弹起、移动,初始化对话框,等。

       、了解最简单的GDI(图形设备接口):写文字、画框、画点、画线、画圆,设置画笔、画刷。

       、熟悉最常用的MFC类:

       CWnd

       CDocument

       CView

       CDC

       CDialog

       CWinApp

       CGdiObject及子类

       CString、CPoint、CRect、CSize等简单数据类型

       CFile

       以上提到的这些内容,是每个人都会用到的内容。

       二、MFC简介

       上述主要内容都是与实际操作关系非常密切的,在此不可能讲清楚;而且,这些在一般的书里都会讲到。我主要将最重要的MFC介绍一下。

       MFC是对WindowsAPI的封装,大大简化了我们的工作;学VC主要就是要学MFC,大约有多个类,但常用的也就二三十个。应该象背4级单词一样将这些常用类搞懂;当然不要死记,要通过看帮助、看例子、动手练习来学会它们;而且,并非每个类的内部的所有函数都要学会,要日积月累。如果真的想成为高手,做个笔记本把自己认为重要的类、函数记下来,随时学习,也是很好的突击方法。

       下面介绍最重要的MFC。

       CWnd:窗口,它是大多数“看得见的东西”的父类(Windows里几乎所有看得见的东西都是一个窗口,大窗口里有许多小窗口),比如视图CView、框架窗口CFrameWnd、工具条CToolBar、对话框CDialog、按钮CButton,etc;一个例外是菜单(CMenu)不是从窗口派生的。该类很大,一开始也不必学,知道就行了。

       CDocument文档,负责内存数据与磁盘的交互。最重要的是OnOpenDocument(读入),OnSaveDocument(写盘),Serialize(读写)

       CView视图,负责内存数据与用户的交互。包括数据的显示、用户操作的响应(如菜单的选取、鼠标的响应)。最重要的是OnDraw(重画窗口),通常用CWnd::Invalidate()来启动它。另外,它通过消息映射表处理菜单、工具条、快捷键和其他用户消息。你自己的许多功能都要加在里面,你打交道最多的就是它。

       CDC设备文本。无论是显示器还是打印机,都是画图给用户看。这图就抽象为CDC。CDC与其他GDI(图形设备接口)一起,完成文字和图形、图像的显示工作。把CDC想象成一张纸,每个窗口都有一个CDC相联系,负责画窗口。CDC有个常用子类CClientDC(窗口客户区),画图通常通过CClientDC完成。

       CDialog对话框

       CWinApp应用程序类。似于C中的main函数,是程序执行的入口和管理者,负责程序建立、消灭,主窗口和文档模板的建立。最常用函数InitInstance():初始化。

       CGdiObject及子类,用于向设备文本画图。它们都需要在使用前选进DC。

       CPen笔,画线

       CBrush刷子,填充

       CFont字体,控制文字输出的字体

       CBitmap位图

       CPalette调色板

       CRgn区域,指定一块区域可以用于做特殊处理。

       CFile文件。最重要的不外是Open(打开),Read(读入),Write(写)

       CString字符串。封装了C中的字符数组,非常实用。

       CPoint点,就是(x,y)对

       CRect矩形,就是(left,top,right,bottom)

       CSize大小,就是(cx,cy)对(宽、高)

       三、用好MSDN和例子

       作为提高,推荐看的例子有:

       nHello最简单的程序框架

       nScribble鼠标绘图。教程:编程基础,GDI

       nDiblook图像处理最简单范例

       nMFCIE因特网浏览器

       nEnroll数据库

       nDaoviewDao(数据访问对象)范例。树型和列视控件

       nCubeOpenGL范例,画一个不断旋转的方块

       nHierSvrOLE服务器

       nOclientOLE包容器

       nDrawcli鼠标绘图。也包括OLE。

       nWordPad写字板。OLE

       四、几点经验

       A.为什么要用Windows而不是DOS编程

       Windows编程并不比DOS编程难很多,只是在刚刚接触的时候感到头绪繁多,不知从何下手。实际上,如果你会C语言,你会发现Windows编程的难度并不比当年学C语言时大。DOS编程要想成为高手,也需要学习几百个函数(无论是TC、BC、MicrosoftC),并要深入了解汇编语言级的DOS功能调用。而现在在Windows下,付出相同的工作量,你却可以获得几倍的收益。如果你以前熟悉DOS编程,现在再搞Windows编程,只要两个星期肯定会感到巨大的优越性:在DOS下,每一件事都要自己干,而且还有K内存、显示精度等的限制,实在是事倍功半了。

       B.为什么要用VC而不是其他Windows编程语言

       n大多数大型软件(包括Windows自己)都是用C、C++编的,所以可以利用的源代码特别多。例如Photoshop,就有VC的编程接口。的其他的语言都不如VC有历史优势。而且VC的开发工具特别多,从控件公司到硬件开发商,其产品很少敢不提供VC接口的。

       nVC适合组织大工程(VB就不行)

       nBorlandC++或C++Builder也很不错,并不比VC差。但BC的版本兼容性不好,从3.1到4.0就出现“代沟”,而且VC提供了极为丰富的文档和范例,VC的参考资料也远比BC多。并且VC与其他的VisualStudio成员可以协调工作,对软件工程有利。

       n

       C.开始不要学WinAPI编程,但以后最好学学WinAPI

       特别要注意,开始不要买讲WindowsSDK编程的书。一个臭名昭著的例子就是“HelloWorld”。各种计算机语言在入门课中往往都给出一个例子,显示一行文字“HelloWorld”,无论是在Basic、C、Pascal,甚至汇编中,这个最简单的小程序都几行就可以写完。但在早期的Windows编程中,刚才讲到的“HelloWin”这个有名的例子就要组织一个工程、写上几百行代码才能实现。这就吓跑了很多想学Windows编程的人。实际上,在Windows下显示“Helloworld”,最简单的方法只要5行就够了:

       #include“windows.h”

       voidWinMain()

       {

       MessageBox(NULL,”HelloWorld!”,”MyFirstWindowsApplication”,MB_OK);

       }

       当然这个程序只建立了一个最简单的对话框,但这已经够了。

       如果你没有SDK编程的经验,学VC就是要利用MFC绕过Windows编程的许多细节。有好的工具为什么不用呢?现在你在VC写一个”HelloWorld”,只要写一行代码就可以了。

       voidCYourView::OnDraw(CDC*pDC)

       {

       //…….其他的代码

       pDC->TextOut(,,”HelloWorld!”);

       }

       但MFC不是万能的,WinAPI和VC中有很多功能在MFC中并不能反映出来。在入门后,要想发挥VC的完全能力,WindowsAPI还是非常重要的。而且,这些API在其他Windows语言中也用得到。

       学语言,与练武道理也差不多。VC、VB、Dlphi、VFP,以及其他的Windows编程语言,都属于同一个门派:Windows门,虽然招式不同,但内功都是一样的,这就是WindowsAPI(应用编程接口),大概是两千个函数。任何武功,招式即使再复杂,通常也能在很短时间内记下来;但内功就不是一朝一夕的事。而且,各门派的内功不同,Unix、Linux门有Uinx的内功,Apple(苹果)门有Mac的内功,Java更是自成一派。我们这里说的学VC,只是学招式,学招式一个月差不多就够了,聪明的两个星期就可以掌握。光学招式,吓唬人是够了,但和高手一过招,非出丑不可。要想精通VC,必须熟悉WindowsAPI。

       D.高级语言与自然语言

       一门高级语言与一门自然语言是类似的。关键要素有三:

       语法:了解C和C++基本语法,这是比较容易的。

       修辞:编程的艺术和风格。通常,这是与软件工程联系起来的。算法上的小伎俩并非是关键的。严谨,严格按照规范去做,同时又能发挥出极大的创造性,才是语言学家的本色。

       词汇:如何利用别人的工作?如何利用自己以前的工作?这是一个软件工程师成功的关键。如果词汇量不丰富,就写不出好文章,就会有想法表达不出。一个人的语法在上小学之前就基本上学成了,修辞水平也在年轻时就确定了,惟有词汇量需要根据需要不断学习、不断扩充。VC编程中,拥有大的词汇量就意味着要掌握较多的类、函数和其他编程组件。如:WindowsSDK,MFC,以及你所专攻的领域的现成的SDK,比如3D编程中的OpenGL,多媒体编程中的DirectX,图像处理中的Victor库。另外,ActiveX控件的掌握往往也是成败的关键。我们这几年的工作也总结成了一个类库,叫IPX(图像处理框架),大大简化了图像处理的工作;不过现在还有很多细节问题要解决,如果有同学感兴趣可以参与这方面的工作。

       学习VC,千万不要用我们在学校里学英语的方法,而要用小孩学说话的方法。所谓学英语的方法,就是我们在本科时学C语言的那种模式:详细搞懂每一个细节,背大量的规则,很少上机实践,没有实际问题供解决,最后由考试来断定学习成果。这种模式的后果大家都清楚:我们学了十几年英语,可有不少人还只会四五千个单词,写百把字的文章,不会说,不能听;尤其要命的是,看不懂VC的帮助文档。我们要象婴儿一样,在使用中学会语法、修辞和词汇;一开始肯定只能编出最糟糕的,就好像小孩开始只会说:“爸爸坐车车”;但“爸爸”“车车”这些词对小孩是最需要的,学习的效率反而最高。学VC的时候,应从我的需要出发,先做一个最简单的东西,然后一点一点复杂起来,象滚雪球一样。

       学习VC尤其要和别人交流,你苦苦思考不明白的,也许别人早就解决了。一定要善于学习:从书店找出有用的书;向身边的高手学习;寻找可以利用的源代码、类库、组件、控件、库;如果能上互连网,那就更加能解决问题了。

       ================================================

       Lchrennew:

       以下内容由于曾经进行编辑替换(Replace)不让通过,所以采用附加(Append)的方式,在下面把我的版本加上,请大家对比:

       VC是英文的缩写形式,其完整形式基本上包括如下几方面:

       1. 医学、药品学、生物化学:Vitamins C,简写VC,音译“维他命C”,中文意译为维生素C,又被称为抗坏血酸。

Windows 中不规则窗体的编程实现

          Windows 中不规则窗体的编程实现          ä¸‹è½½æºä»£ç      ä¸€ 序言     ã€€ã€€åœ¨ç»å¤§å¤šæ•°çš„Windows应用程序中 其窗体都是使用的正规正矩的矩形窗体 例如我们常用的 记事本 扫雷 等等 矩形窗体 具有编程实现简单 风格简洁的优点 所以在普通文档应用程序和简单小游戏中使用足矣 但在某些娱乐游戏程序中使用就略显呆板些了 这时若用不规则窗体替代原先的矩形窗体 将会使这类程序更添情趣 典型的例子有windows 自代的Media Player 新版本的Media Player有个控制面板的选项 选中这些面板 播放器就以选中的面板形状出现 这时的播放器比以前版本的Media Player的古老矩形界面要生动有趣的多了 要实现不规则窗体不是太难 知道了基本原理后 你也可以创建各种有趣的不规则窗体           äºŒ 实现原理          ã€€ã€€æ‰€æœ‰çš„ Windows 窗体都位于一个称为 region 中 窗体的大小如果超出 region 的范围 windows会自动裁剪超出"region"范围那部分的窗体 使其不可见 所以 要创建不规则窗体有两个步骤 第一步就是创建不规则"region" 第二步就是将窗体放到创建的 region 中   其中第二步很简单就调用一条语句即可 在SDK中调用API函数SetWindowRgn 该函数原型如下

          int SetWindowRgn( HWND hWnd HRGN hRgn BOOL bRedraw );

          其中hWnd为待设置的窗体句柄 hRgn为已经创建的"region"句柄 bRedraw代表是否要重绘窗体 在MFC中使用窗口类CWnd的成员函数int CWnd::SetWindowRgn(HRGN hRgn BOOL bRedraw );该函数的参数意义与API中同名函数相同   相对与第二步 创建不规则窗体的第一步要复杂许多 并且不规则窗体越复杂 创建其"region"的过程也越复杂 接下去我们将由浅入深地介绍各种创建 region 的方法      ã€€ã€€åœ¨MFC中"region"对象 由CRgn类实现 CRgn的几乎每个成员函数都有同名的SDK API函数对应 三 简单 region 的创建     ã€€ã€€ç±»CRgn创建一个新的"region"的简单方法有以下几个成员函数

        BOOL CRgn::CreateRectRgn( int x int y int x int y ); 创建矩形的 region        

        BOOL CRgn::CreateEllipticRgn( int x int y int x int y ); 创建圆形或椭圆形 region        

       

        BOOL CRgn::CreateRoundRectRgn( int x int y int x int y int x int y ); 创建圆角矩形 region        

        BOOL CRgn::CreatePolygonRgn( LPPOINT lpPoints int nCount int nMode ); 创建多边形 region

          这里以创建椭圆窗体为例 介绍椭圆窗体创建的方法 在创建椭圆 region 的CreateEllipticRgn函数中 x y 指椭圆所在矩形的左上角坐标 x y 指该矩形的右下角坐标      ã€€ã€€ä¸‹é¢çš„代码加入到MFC对话框程序的OnInitDialog函数中 可将该对话框变成椭圆窗体      

          BOOL CTestDlg::OnInitDialog(){ CDialog::OnInitDialog(); CRgn rgn; rgn CreateEllipticRgn( ); SetWindowRgn(rgn TRUE);}

     å›¾ä¸€ 椭圆窗体效果图     å›› 作图路径法创建 region 使用该方法创建 region 的过程如下 第一步绘制所要创建的窗体形状 该步骤中使用到CDC类中的一些成员函数如下

          BOOL CDC::BeginPath( );

          调用该函数后当前设备环境(DC)开始追踪绘图的过程

          int CDC::SetBkMode( int nBkMode );

          设置绘图时的背景模式 此应用中nBkMode必须取值为TRANSPARENT 即设置绘图时背景不发生变化

          BOOL CDC::EndPath( );

          调用该函数后当前设备环境(DC)结束追踪绘图的过程   开始绘图前 先调用BeginPath 然后调用SetBkMode 接下去就可调用CDC的其他绘图函数作图 例如Arc AngleArc LineTo MoveTo RoundRect Textout等等 绘图完毕调用EndPath() 第二步将绘制的结果转成 region 此步骤中使用SDK API函数

          HRGN PathToRegion( HDC hdc );

          Hdc为作图DC的句柄 CDC类中的m_hDC成员变量可做此参数传入 示例 将下面代码加入某个按钮单击事件中 可以将当前窗体变为字符串 hello 的形状     

          void CTestDlg::OnTest() {    HRGN wndRgn;    CClientDC dc(this);    CFont mFont;        if (dc m_hDC!=NULL)    {        VERIFY(mFont CreateFont(             FW_HEAVY TRUE FALSE             ANS    

lishixinzhi/Article/program/c//