VC++入门教程(windows入门程序详解)
- 格式:pdf
- 大小:55.01 KB
- 文档页数:23
用C语言进行Windows编程入门本文将介绍如何使用C语言进行Windows编程入门。
以下是从安装开发环境到编写简单的Windows应用程序的步骤。
1. 安装开发环境首先,您需要安装一个C语言的集成开发环境(IDE)。
推荐的IDE是Visual Studio,它是Microsoft开发的免费开发工具。
您可以从微软官网下载并按照向导进行安装。
2. 创建新项目打开Visual Studio后,选择“新建项目”,选择“Win32控制台应用程序”,然后点击“下一步”。
给项目起个名字并选择存储路径,然后点击“完成”。
3. 编写代码在IDE的代码编辑器中,您可以开始编写C语言代码。
Windows编程通常使用Windows API(应用程序编程接口)来访问操作系统的功能。
下面是一个简单的例子:```c#include <windows.h>int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow) {MessageBox(NULL, "Hello, Windows Programming!", "Welcome", MB_OK);return 0;}```以上代码将在应用程序启动时弹出一个消息框。
4. 编译和运行完成代码编写后,可以点击IDE的“生成”选项卡,然后选择“生成解决方案”。
此过程将会编译源代码并生成可执行文件。
完成后,您可以点击“调试”选项卡,然后选择“开始执行(调试)”以运行您的应用程序。
5. 创建窗口应用程序除了控制台应用程序,您也可以创建窗口应用程序。
下面是一个简单的窗口应用程序的示例代码:```c#include <windows.h>LRESULT CALLBACK WindowProc(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam);int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow) {const char CLASS_NAME[] = "Sample Window Class";WNDCLASS wc = {0};wc.lpfnWndProc = WindowProc;wc.hInstance = hInstance;wc.lpszClassName = CLASS_NAME;RegisterClass(&wc);HWND hwnd = CreateWindowEx(0,CLASS_NAME,"Window Title",WS_OVERLAPPEDWINDOW,CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT,NULL,NULL,hInstance,NULL);if (hwnd == NULL) {return 0;}ShowWindow(hwnd, nCmdShow);MSG msg = {0};while (GetMessage(&msg, NULL, 0, 0)) {TranslateMessage(&msg);DispatchMessage(&msg);}return 0;}LRESULT CALLBACK WindowProc(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam) {switch (uMsg) {case WM_DESTROY:PostQuitMessage(0);return 0;default:return DefWindowProc(hwnd, uMsg, wParam, lParam);}}```以上代码将创建一个包含窗口标题和关闭按钮的窗口。
你第一要翻开 VC6.0 界面,一般用得许多的是 Win32 控制台应用程序(源程序,扩展名 .cpp ),步骤是:(先工程—后文件—编译—连结--- 运转)1,成立一个工程,“文件”——“新建”,出现下边界面:选择“ Win32 Console Application ”( 控制台应用程序,左侧倒数第三个) ,命名工程名称,选择保留地点,点击“确立”,进入下一步,看到以下提示界面:成立一个空工程,对应其余需要的你一能够成立其余工程;点击“达成” ,以后:显示你创立的工程的信息。
2,再在有一个的工程的条件下,我们再成立一个源文件;“文件”——“新建”(快捷键Ctri+N ),出现:成立源文件,选择“ C++ Source ”,一般都是成立这类文件的(合用在当文件中合用)假如要成立头文件的话,选择“ C/C++ Header File ”,( 合用在多文件工程中使用 ) 命名,文件名称,点击“确立”,以后:进入编写区,在主界面编写代码:以下编写完以后呢:能够按编译按钮调试程序,看看有没有错误,有的话更正,没有的话就能够再按连结按钮检查连结(多文件工程经常用,检查文件间能否正常连结),最后,点运转按钮,就能够运转了。
假如是您有代码如: cpp 文件,或 .h 文件,想增添都 VC6.0 里来测试的话,能够这样做:第一,要理解一下文件扩展名为: cpp 和.h文件扩充名是 .h, 代表的是头文件,一般是书写一些函数原型,以及一些在整个程序中常用到的构造体,屡次使用的函数说明,定义等等;文件扩充名为 ,cpp 的,是 C++中的源文件,也是最常用到的文件,每成立一个工程都要起码一个源文件(起码要有一个函数进口——主函数 main() ),包括了中心代码;成立与运转说明:(以VC 6.0 编译器为例,其余编译器近似)第一,翻开 VC 6.0 编译环境;在菜单栏——文件(的下拉菜单中选择“新建”),在弹出的选择窗口中,选择Win32 Console Application( 控制台应用程序 ) ,在填写工程名称,选择一个程序保留路径,点击“达成”,查察工程信息。
VC快速入门使用指南一:如何用VC快速建立一个简单的界面?1、FILE--- new file2、弹出以下窗口,选择MFC AppWozard(exe)选项,键入Project name: 文件名,并指定文件存储路径,点击OK即可3、选择Dialog based,点击Next4、依次点击Next —》简单界面生成二:添加库文件和链接库:系统动态链接库:GT400.h GT400.Lib GT400.dll1、把PC桌面上的链接库COPY到自己建立的文件目录中2、用户程序中加入:#include “GT400.H”3、在VC环境菜单中:Project-Setting-Link, 在Objeck/Library modules中输入GT400.Lib三:如何在界面里设置控件:1、添加一个静态文本框Eg::文本框名字改为:输入电压数字量2、建立一个动态文本框:Eg: ---→Class wizard---→建立一个与文本框相关联的变量,如m_v3、添加卡初始化控件,并加相关程序代码4、添加轴初始化控件,并加相关程序代码四:本次实验需要用到的WINDOWS函数说明:1、UpdateData(TRUE)和UpdateData(FALSE)的区别:当你使用了ClassWizard建立了控件和变量之间的联系后:当你修改了变量的值,而希望对话框控件更新显示,就应该在修改变量后调用UpdateData(FALSE);如果你希望知道用户在对话框中到底输入了什么,就应该在访问变量前调用UpdateData(TRUE)。
这样在你的Edit中才能显示更新完的变量的值!数据流向:TRUE-:(从控件中输入给变量)即数据传输方向为:→>控件--→>数据成员,UpdateData(true);//用于将屏幕上控件中的数据交换到变量中(当然你要先为控件关联上变量才行。
)UpdateData(FALSE),FALSE含义:把控件关联的变量的值传给控件并改变控件状态。
vc2008教程VC2008是Visual C++ 2008的简称,是微软公司于2008年发布的一款集成开发环境。
本教程将介绍VC2008的基本使用方法,包括安装环境、创建项目、编写代码和调试等方面,帮助初学者快速上手开发。
首先,安装VC2008需要下载安装文件并运行。
安装过程中,可以选择默认设置或自定义设置,根据自己的需求进行选择。
安装完成后,就可以打开VC2008开始使用。
打开VC2008后,接下来需要创建一个项目。
选择“文件”菜单下的“新建”-“项目”,在弹出的对话框中选择“Visual C++”-“Win32控制台应用程序”。
在下一步中,可以输入项目名称和存储路径,然后点击“完成”按钮即可创建项目。
创建项目后,VC2008会自动生成一些初始代码。
这个代码包括了必要的头文件和函数,我们可以在这个基础上进行开发。
例如,在main函数中可以编写自己的代码逻辑,实现自己的功能。
编写代码时,可以使用VC2008提供的代码编辑器。
编辑器支持代码高亮显示、自动补全等功能,能够帮助开发者更高效地编写代码。
在编写代码的过程中,可以使用一些常用的C++语法和函数来实现所需功能。
完成代码编写后,就可以进行调试了。
VC2008提供了一系列的调试工具,如断点调试、变量监视器、内存查看器等,方便开发者对代码进行调试和测试。
在调试过程中,可以逐行执行代码,查看变量的值,定位错误等。
除了基本的项目创建、代码编写和调试,VC2008还提供了其他的功能和工具。
例如,在项目管理方面,可以通过VC2008的解决方案资源管理器对项目进行管理和导航。
在界面设计方面,可以使用VC2008的资源编辑器创建和编辑界面元素。
在发布项目时,可以使用VC2008的部署工具将项目打包为可执行文件或安装程序。
总结一下,VC2008是一款功能强大的开发工具,通过本教程的学习,初学者可以掌握VC2008的基本使用方法。
希望本教程对大家的学习有所帮助,让大家能够更好地利用VC2008进行开发工作。
Visual C++MFC入门教程(经典版)visual-c++mfc入门教程(经典版)木有页眉visualc++mfc入门教程目录+--第一章vc入门|------1.1如何学好vc|------1.2认知windows消息机制|------1.3利用visualc++/mfc开发windows程序的优势|------1.4利用mfc进行开发的通用方法介绍|------1.5mfc中常用类,宏,函数介绍+--第二章图形输出|------2.1和gui有关的各种对象|------2.2在窗口中输入文字|------2.3使用点,刷子,笔进行绘图|------2.4在窗口中绘制设备有关图形,图标,设备毫无关系图形|------2.5采用各种态射方式|------2.6多边形和剪贴区域+--第三章文档视结构|------3.1文档视图框架窗口间的关系和消息传送规律|------3.2接收用户输入|------3.3使用菜单|------3.4文档,视,框架之间相互作用|------3.5利用序列化展开文件读取|------3.6mfc中所提供更多的各种视类了解+--第四章窗口控件|------4.1button|------4.2staticbox|------4.3editbox|------4.4scrollbar|------4.d利用appwizard创建并使用toolbarstatusbardialogbar|------4.egeneralwindow|------4.f关于wm_notify的采用方法+--第五章对话框|------5.1使用资源编辑器编辑对话框|------5.2创建有模式对话框|------5.3创建无模式对话框|------5.4在对话框中展开消息态射|------5.5在对话框中进行数据交换和数据检查1木有页眉|------5.6采用属性对话框|------5.7采用通用型对话框|------5.8建立以对话框为基础的应用|------5.9使用对话框作为子窗口+--第六章网络通信开发|------6.1winsock介绍|------6.2利用winsock展开并无相连接的通信+------6.3利用winsock创建存有相连接的通信《visualc++开发指南》闻怡洋/文第一章vc入门1.1如何努力学习vc这个问题很多朋友都问过我,当然流汗是必须的,但同时如果按照某种思路进行有计划的学习就会起到更好的效果。
Windows下的C/C++编程对于任何一种编程语言,都会以一个最基本的程序入门,就是大家都很熟悉的Hello World。
那么,我们也从这里开始吧。
最简单的Windows程序1)TC中的Hello World相信对于下面的Turbo C 程序大家都不会陌生,这就是最简单的TC经典入门程序:#include < stdio.h >main(){prinft(“ Hello World !”);}这个程序将在DOS模式中输出“Hello World”。
2)最简单的Windows下的Hello World其实,下面的程序并不是标准的Windows应用程序,它不产生传统意义上的窗口,而只是跳出一个对话框。
让我们详细的操作一下:首先从开始菜单中选择Microsoft Visual C++ 6.0(其他版本也行);(见图1-1)图1-1 Microsoft Visual C++ 6.0然后通过File菜单中的new选项新建一个工程。
在Projects选项中选择Win32 Application;然后指定工程名,这里是:Hello World;再指定存储路径,这里是D:\DirectX8.0游戏编程\;最后点击OK。
(见图1-2)图1-2 Projects选项Win32 Application下面出现以下窗口,选择An empty project;点击OK。
(见图1-3)图1-3 An empty project这样,就创建了一个空的工程,工程名为Hello World,存储路径为D:\DirectX8.0游戏编程\下的Hello World文件夹。
下一步,在空的工程中加入C语言的源程序文件。
在Visual C++ 6.0的File菜单中选择new 选项;在弹出的File菜单中选择C++ Source File;选中Add to project 选框;选中加入到那个工程中,这里是Hello World,就是刚才创建的工程;填写文件,这里是Hello World,下面是工程的存放路径;最后,选择OK。
vc使用方法VC 使用方法。
VC 是一款功能强大的集成开发环境,可以帮助开发者进行C/C++ 程序的开发。
本文将介绍 VC 的基本使用方法,帮助初学者快速上手。
1. 安装 VC。
首先,你需要从官方网站下载 VC 的安装包,并按照提示进行安装。
安装完成后,打开 VC,你将看到一个简洁的界面,包括菜单栏、工具栏、编辑区和输出区。
2. 创建新项目。
在 VC 中,你可以创建新项目来进行开发。
点击菜单栏中的“文件”选项,选择“新建”,然后选择“项目”。
在弹出的对话框中,选择项目类型(如控制台应用程序、Windows 桌面应用程序等),填写项目名称,点击“确定”即可创建新项目。
3. 编写代码。
在创建新项目后,你可以在编辑区编写代码。
VC 提供了丰富的代码编辑功能,包括代码高亮、自动补全、代码折叠等,可以大大提高编码效率。
4. 调试程序。
在编写完代码后,你可以点击工具栏中的“调试”按钮来进行程序调试。
VC 提供了强大的调试功能,可以帮助你快速定位和解决程序中的 bug。
5. 构建和运行程序。
当程序编写完成并通过调试后,你可以点击工具栏中的“生成”按钮来构建程序。
构建完成后,你可以点击“运行”按钮来运行程序,查看程序的运行效果。
6. 其他功能。
除了上述基本功能外,VC 还提供了许多其他功能,如版本控制、性能分析、代码重构等,可以帮助你更好地进行程序开发和维护。
总结。
通过本文的介绍,相信你已经对 VC 的基本使用方法有了一定的了解。
当然,VC 还有很多其他功能和技巧等待你去探索和学习。
希望本文能够帮助你快速上手 VC,并顺利进行 C/C++ 程序的开发工作。
祝你编程愉快!。
VC入门教程vc入门教程一走进 Visual C++1 理解VC工程2 MFC编程特点3使用Wizard二 MFC 程序结构分析1 WINDOWS程序工作原理2 建立应用程序3 程序结构剖析3(1 类CMYAPP3(2 类CMAINFRAME3(3类CMyView与CMyDoc三深入MFC类库1 处理用户输入1(1 定义对话框资源1(2 定义对话框类2 有关屏幕输出2(1 设备上下文工作原理2(2 实例绘图原理剖析2(3 绘图操作实现2(4 有关屏幕映射方式3 文件处理3(1 对象持续化简述3(2 实例分析3(3 与文件处理关系密切的类CFile4 DAO技术4(1 DAO与ODBC4(2 使用MFC实现DAO技术5 打印5.1打印和显示5.2打印分页5.3 打印工作的开始和结束5.4 打印程序实例四、VC程序调试1(1 调试环境的建立1(2调试的一般过程1(3 如何设置断点1(4 控制程序的运行1(5 查看工具的使用2 高级调试技术2.1 TRACE 宏的利用2.2 ASSERT宏的利用2.3 ASSERT_VALID宏的利用以及类的AssertValid()成员函的重载2.4对象的DUMP函数的利用3 内存漏洞的检查五 Visual C++ 与多媒体1 对声音的处理1(1媒体控制接口1(2波形混音器2 多媒体文件I/O3多媒体图形图像技术;4图像合成;5 FLC动画;6热点;一走进 Visual C++Visual C++作为一个功能非常强大的可视化应用程序开发工具,是计算机界公认的最优秀的应用开发工具之一。
Microsoft的基本类库MFC使得开发Windows应用程序比以往任何时候都要容易。
本光盘教学软件的目的就是为了让你学会在Visual C++环境下,利用微软的基本类库MFC开发出功能强大的Windows应用程序。
在本章节的内容当中,我们将向您介绍使用VC开发软件需要用到的一些基本概念,使用MFC进行编程的基本特点,以及VISUAL C++集成开发环境提供的一系列编程辅助工具--WIZARD的使用方法。
第1章设计并创建Visual C++程序使用应用程序向导创建Windows应用程序使用资源编辑器来修改应用程序的外观编写源代码来实现应用程序的功能许多从来没有编写过Windows应用程序的人可能会认为这是一件很费力的事情,但是选择正确的编程工具可以让我们的工作变得简单一些。
要进行可视化编程,你可能再也找不到比Visual C++更好的软件了。
事实上,使用Visual C++可以在不到一分钟的时间内就新建一个Windows应用程序并让它运行起来。
但是如果想要熟练地运用Visual C++来编程,读者朋友们得多花一些时间来学习Visual C++的基本知识。
1.1启动Visual C++从Windows的开始菜单中选择Visual Studio 2017(以Microsoft Visual Studio 2017为例)选项并单击启动它。
当Visual C++被启动后你将看到Microsoft Visual Studio窗口。
Visual Studio 是Visual C++用户界面的名称。
如图1.1所示。
也可以把Visual Studio称为编写Visual C++程序时的工作窗口或桌面。
如果你启动Visual C++后所显式的窗口与我们所给的示例不同,这也是正常的,Visual Studio显式的界面与我们个人的设置有关。
通过本书你可以学到找出这些选项的方法。
*Visual Studio的别名Visual Studio也被称为Developer Studio,你可能还听说过IDE(集成开发环境),有时它指的也是Visual Studio。
图1.1 Visual Studio窗口1.2创建新工程创建一个新的应用程序时,首先要创建一个新的工程(Project)。
工程用于管理组成Visual C++程序的所有元素,并且由它来生成Windows应用程序。
通过“File”菜单中的“New”选项来开始创建一个新工程。
1.打开vc++6.0建立一个工作区间,然后file->new->projects->Win32 Dynamic-Link Library->空dll2.添加一个c++头文件名为EF.h,代码如下:#ifdef EF_EXPORTS#define EF_API __declspec(dllexport)#else#define EF_API __declspec(dllimport)#endif#include <windows.h>EF_API void func1(void);extern EF_API int all;class EF_API Dllprac{private:int a;public:Dllprac():a(5){}void show();}; //条件编译保证源文件使用的输出文件形式为__declspec(dllexport),客户端文件使用的是__declspec(dllimport)3.添加一个c++源文件名为EF.cpp#ifndef EF_EXPORTS//条件编译保证了EF_EXPORTS避免重复编译#define EF_EXPORTS#endif#include "EF.h"#include <iostream>using namespace std;EF_API int all = 6;EF_API void func1(void){cout<<"all"<<all<<endl;}void Dllprac::show(){cout<<"a"<<a<<endl;}BOOL APIENTRY DllMain( HANDLE hModule,DWORD ul_reason_for_call,LPVOID lpReserved){switch (ul_reason_for_call){case DLL_PROCESS_ATTACH:case DLL_THREAD_ATTACH:case DLL_THREAD_DETACH:case DLL_PROCESS_DETACH:break;}return TRUE;}4.新建一个控制台项目添加一个源文件client.cpp#include "EF.h"#include <iostream>using namespace std;//注意路径,加载 dll的另一种方法是 Project | setting | link 设置里#pragma comment(lib,"EF.lib")int main(){cout<<"call dll"<<endl;cout<<"call function in dll"<<endl;func1();Dllprac dllp;dllp.show();exit(0);return 0;int i;cin>>i;}5.project->setting->link->subsystem:windows改为subsystem:console。
C语言Windows系统编程基础Windows操作系统是目前广泛应用于个人计算机和服务器上的操作系统,而C语言是一种广泛应用于系统编程的高级编程语言。
本文将介绍C语言在Windows系统编程中的基础知识和技巧。
一、Windows系统编程简介Windows系统编程是指在Windows操作系统上进行编程开发的活动,包括应用程序开发、设备驱动程序开发、系统服务开发等。
C语言是一种强大的编程语言,被广泛应用于Windows系统编程领域。
下面将介绍一些基本的Windows系统编程知识和技巧。
二、Windows系统编程环境配置1. 安装Windows SDK在进行Windows系统编程之前,需要安装Windows SDK(软件开发工具包)。
Windows SDK包含了一系列用于Windows系统编程的库文件和头文件,可以提供给我们使用。
安装Windows SDK的过程比较简单,可以从官方网站下载并按照提示进行安装。
2. 配置开发环境在进行C语言的Windows系统编程之前,需要配置好开发环境,确保我们能够愉快地进行开发工作。
常见的开发环境配置包括安装好C语言的编译器、文本编辑器和调试工具等。
在Windows系统中,我们可以选择使用Visual Studio等集成开发环境(IDE)来进行开发工作。
三、Windows系统编程基础知识1. Windows系统API函数Windows操作系统提供了一系列的API函数,用于实现系统编程中常用的功能。
这些API函数包括文件操作、进程管理、线程管理、内存管理、窗口管理等。
通过调用这些API函数,我们可以实现各种系统编程任务。
例如,使用CreateFile函数可以创建或打开一个文件,使用ReadFile函数可以从文件中读取数据,使用WriteFile函数可以向文件中写入数据,等等。
2. Windows消息循环在Windows系统编程中,应用程序与系统之间通过消息进行交互。
消息循环是指应用程序不断地接收、处理系统发送的消息的过程。
从零开始学V C系列教程完整版Corporation standardization office #QS8QHH-HHGX8Q8-GNHHJ8从零开始学VC系列教程一.信息显示实验题外话:第一次写教程,不知道该怎么开始.以前见过的教程可能都会介绍比较多的理论然后才开始讲实际操作,我想对于VC,理论讲得太多大家可能更糊涂,所以选择了这个方案,我们先一步步照着做,每一次只介绍一两个知识点,并且把理论放在后面说明,希望大家能喜欢这种方式,并对这种方式提出意见和建议,以便以后章节更适合大家的学习.或许我写的还不能称之为教程,只是一些操作步骤及说明,通过这些练习,希望能使大家对VC有一个新的认识.VC的功能是十分强大的,但我们一般并不会用到所有的功能,就像大家熟悉的KeilC一样,其实Keil功能也是很多的,平时也没见谁把Keil的功能都用到了.基于此,我写的这个教程可能在VC专业人士看来比较简单.不是要班门弄斧,而是希望推行上位机技术,形成一个氛围让大家来学习交流,PC机与下位机结合毕竟也是发展的一个方向.望高手谅解小辈的不自量力.同时,我们结合单片机编程,让大家明白上位机控制方法及原理,当然这是今后章节的内容了.本节内容:学会在文本框中显示文本,学会弹出式对话框使用.学习目的:信息显示是人机交互的基础,同时,信息显示也为以后的程序调试打下基础.1.新建工程.打开点击[文件]->[新建],弹出如下对话框.在工程选项中选择MFCAppWizard[exe],选择好工程存入的位置,然后在工程名称中填入工程的名称,例如Eg01,填入Eg01后.VC会在我们选择的路径后自动加入一个以工程名命名的文件夹作为工程目录.完成按[确定]就会进入工程向导,出现以下的提示.在这个我们选择[基于对话框]就行了.单文档及多文档方式会在以后详细介绍.这里也简要说明一下.①单文档.程序一次只能处理一个文档对象(文件).像写字板,记事本等.②多文档.程序一次可以处理多个对象(文件),像word之类的,可以同时打开多个文件.③基本对话框.程序一般用于处理一些比较小的,工具型的软件.像双龙的ISP下载软件, Easy 51Pro等都是基于对话框.一些不是很复杂的工业软件也通常可以用基于对话框的形式,这种方式的优点是所见即所得,一些控件可以像VB一样拖到工作区就行了.选好以后直接按[完成]就可以了.至于[下一步]的向导,这里我们先不管.然后会进入以下的画面.其中红色及绿色是我的标注,看不清图片可以下载图片放大.选中静态文本框[TODO:在这里设置对话框控制],单击指标右键,在弹出的快捷菜单中选择[属性Properties]菜单项,弹出如下对话框修改IDC_STATIC为IDC_FIRSTLABEL,标题可以写为”第一个应用程序”然后关闭这个对话框,就可以看到刚才的静态文本框内容变为”第一个应用程序”了.在刚才的操作中,我们将静态文本框的ID改为了IDC_FIRSTLABEL,在VC中,ID是控件的标志,不能有相同的ID出现,但允许多个名为IDC_STATIC的ID号.所以,一般并不把文件名命为IDC_STATIC,除非以后我们不想在程序中改变这个控件的属性.有一些控制,例如GroupBox一般并不在程序中改变什么,所以不改变其ID号.ID是程序访问控件的标识,所以一个应用程序中不能有重复ID.按下来我们要添加一个按钮.用鼠标将控件条上的按钮拖到对话框上,可以看到对话框上多了一个按钮.用上叙方法,改变按钮ID为IDC_BTN1,标题改为”显示”,这样就做好一个按钮了.下面我们为按钮添加代码.双击按钮,会出现以下的提示框.按[OK]为按钮添加响应函数,出面以下画面void CEg01Dlg::OnBtn1(){然,现在还没有响应.现在我们添加一个事件,让这个按钮按下后上面的静态文本框的内容变为”串口号:COM1 波特率:57600”把上面的代码改为void CEg01Dlg::OnBtn1(){57600”果编译通过,按F5运行,可以看到程序运行后的对话框按下按钮,可以看到上面的静态文本框的内容改变了.那么恭喜你,完成我们这个例子的第一步操作了.当然,我这里的对话框看起来没那么高,大家可以调一下高度.怎么退回到控件编辑状态呢首先,我们单击选项卡中的[ResorceView],现在大家只能看到[Reso…]看到IDD_EG01_DIALG了吧,这个其实也是一个ID,是我们对话框的ID,如果大家改一下对话框的ID,就可以看到这里的ID也变了.在VC中,所有的控件都认为是窗体,只是形式不同.双击IDD_EG01_DIALG就可以看到我们刚才的控制编辑状态了.双击[显示]按钮又可以回到代码状态.刚才的例子很简单,却是我们以后会用得最多的.下面我们来分析一下代码void CEg01Dlg::OnBtn1(){57600”面我们提到过,VC中的控件都认为是窗体,所以,对于所有的文本显示,我们都可以用这个函数来做,大家可以试着加入一个编辑框(Edit),同样可以使用用这个函数,只要ID号对了就可以了.VC对大小写敏感,大家要注意大小写.下面我们用另一个方法来实现.把代码改为void CEg01Dlg::OnBtn1(){57600”以看到运行结果是一样的.大家可以看到,我们把变量a定义为CString类型,这个类型我们在C中可能没有见过.CString其实是VC中的一个类.这里我们要引入类的概念了.类跟C语言结构体很像,结构体可以有成员变量,但不能有成员函数,类不但可以有成员变量,还可以有成员函数,并且支持多种方法.在VC中,类用class标识.下面是一个类的定义,我们来分析一下.class CEg01Dlg : public CDialog{public:CString GetPath(void);protected:int GetMax(int a,int b);public:int a;int b;};这个类是我改过的,为了大家看得明白一点.首先,我们从这句class CEg01Dlg : public CDialog知道这个类名是CEg01Dlg,那么public后面的CDialog是什么意思呢CDialog其实也是一个类,是VC中标准对话框类. public CDialog意思是我们定义的这个类CEg01Dlg从CDialog派生,也叫从CDialog继承,从继承这个词语大家就会明白CEg01Dlg不但可以有自身函数,而且还可以用到CDialog里的变量及函数,所以说是继承,就像我们说的继承财产一样,儿子不但可以有自己的钱,还有从老爸那里继承的产财,这些钱都能花.所以,我们也叫CDialog为父类(不是爸类啊),把CEg01Dlg称为子类.当然,这是相对的.如果再定义一个类从CEg01Dlg派生,那么CEg01Dlg也就是父类,派生出来的类就是子类.这段可能有点难明白,大家可以慢慢体会.我们再回到CString上面来,这个类不是派生的,所以也没有父类了.用CString定义一个变量a,我们称为类变量,CString有很强大的功能,我们这里只用到一个功能,就是字符串,a可以是一个不定长度的字符串,所以我们可以给a赋一个任意的字符串而不用关心长度.当然,我们也可以用int StringLen=();来获得这个字符串的长度.从这句可以看到,GetLength()是类CString里的一个函数.大家可能又会关心一个问题,怎么把长度显示出来呢我们把代码改为void CEg01Dlg::OnBtn1(){式化后的字符串还是存放在a中,在这里,我们还用到了一个新的函数MessageBox();我们只是用了这个函数最简单的用法,显示一个字符串.MessageBox用于弹出一个提示对话框.查查MSDN就知道,函数原型是int MessageBox( LPCTSTR lpszText, LPCTSTR lpszCaption = NULL, UINT nType = MB_OK );在VC里面,函数可以有默认值,例如LPCTSTR lpszCaption = NULL, UINT nType = MB_OK变量lpszCaption的默认值是NULL, nType的默认值是MB_OK,这些有默认值的变量我们可以不传值,所以这个函数使用时,最简单的用法就是传lpszText就可以了.如果我们要显示一个固定的字串,可以这样调用MessageBox(“大家好”);是不是很简单啊这一章就写到这里了,一些问题大家可以提.未尽知识点,会在以后再详细介绍.从零开始学VC系列教程二. 对话框及常用控件实验恭喜你,进入VC学习的第二节了.这一节是人机交互的基础.所谓人机交互,说通俗点就是与机器对话.然而我们现在的技术还不能像科幻片里一样与机器人直接说话就行了.所以,我们的操作意图还得通过文本输入,命令按钮等等来实现.本节内容:学会对话框调用及一些常用控件的使用方法.学习目的:学习人机交互,为软件开发提供界面基础.1.新建工程.参考第一节的方法新建一个工程,名字为Eg02完成后如下图细心的朋友一定会发现.新建的工程里还有一个对话框,ID名是IDD_ABOUTBOX这个是做什么用的呢我们用到的软件都会有一个版权声明.通过第一章的学习,大家应该知道怎么观看这个IDD_ABOUTBOX对话框了吧.没错!双击IDD_ABOUTBOX就可以了.我们会看到如下的一个对话框这就是我们这个程序的关于对话框,一般用于版权声明及版本号标识.大家看到的这个对话框里有两个静态文本框和一个图像框(Picture),静态文本框我们在前一节已经介绍过了.大家可以修改一下版权所有这一行,填什么都可以,签个大名也行.完成以后你一定想看看效果,这个对话框怎么打开呢其实VC已经为我们做好了.先按F7编译,然后按F5运行.大家可以看到程序运行了.单击应用程序图标,就会出现一个菜单,选最后一个[关于Eg02],关于对话框就弹出来了.当然,这是系统为我们做好的.自己怎么在程序中调用这个对话框呢为了演示,首先参考第一节的内容添加一个按钮,然后把按钮的ID改为IDC_BTN_ABOUTME,把标题,也就是Caption改为[关于].最终效果如下下面我们为按钮添加代码.相信大家一定还记得怎么进入代码吧..对了,双击[关于]按钮,在弹出的对话框中点[确定]就可以了.为了让大家更好的理解下面的操作,我们先要解释一下关于对话框的类.VC向导会为关于对话框建立一个类,大家看看下面的图单击标签ClassView(这里显示的是[Class…])就可以看到Eg02这个应用程序的类.第一个CAboutDlg就是关于对话框的类.CEg02Dlg对应IDD_EG02_DIALOG.中间的Ceg02App是应用程序的基础类.所以,如果要对关于对话框进行操作,就要用到类CAboutDlg,因为与此有关的函数及变量都封装在CAboutDlg中.看到这里大家可能又糊涂了,没关系,在以后的教程中,通过一些练习大家就会慢慢领会到的.这里还是先为[关于]按钮添加代码.void CEg02Dlg::OnBtnAboutme(){们添加代码成以下所示void CEg02Dlg::OnBtnAboutme(){二句是();功能是调用类CAboutDlg里的一个函数DoModal();这个函数在MSDN 里的解释是Call this member function to invoke the modal dialog box and return the dialog-box result when done. This member function handles all interaction with the user while the dialog box is active. This is what makes the dialog box modal; that is, the user cannot interact with other windows until the dialog box is closed.一般我们用于显示一个对话框.其实大家看看CAboutDlg这个类下面,只有两个函数DoModal()这个函数并不在这个里面.第一章我们提到过类的派生和继承.其实CAboutDlg这个类是派生于CDialog类,DoModal()这个函数是CDialog的成员函数,由于CAboutDlg是继承父类CDialog的,所以CDialog里的函数在CAboutDlg中也可以使用.下面我们来说说几个常用控件的使用.首先在IDD_EG02_DIALOG对话框中加入一个Edit(编辑框)控件.Edit一般用于输入输出数据文本.相当于VB里的TextBox.加入Edit控件后,编辑其属性为然后,我们再加一个按钮(PushButton),并编辑其属性为接下来,我们先说一下要实现的效果.很简单,在编辑框里输入一个文本,然后按显示,就把文本显示在静态文本框中.所以,这里要把静态文本编辑框的ID改为IDC_DISPLABEL 下面我们为[显示]按钮添加代码void CEg02Dlg::OnBtnShow(){查MSDN就知道函数原型了.int GetDlgItemText(int nID,LPTSTR lpStr,int nMaxCount)const;int GetDlgItemText( int nID, CString& rString ) const;大家看看就觉得奇怪了,怎么有两个原型啊并且一个是传两个参数,另一个是传三个参数.在VC里面,同一个类下是可以存在多个同名函数的,具体调用哪个函数要看参数的不同.在这里我们传入了两个参数,所以VC会调用int GetDlgItemText( int nID, CString& rString ) const;这个函数.第一个函数是控件的ID号,第二个是字串.第二个传了地址,所以我们在下一句中用的a已经是获得IDC_EDIT_INPUT的文本了.运行效果如下下面介绍一下进度条的使用以及定时器的使用.我们要实现的效果是进度从0到满格,然后再从0到满格,依次循环.每跳一格间隔500ms,这个时间我们用定时器来实现.首先从控件条里拖出一个进程条到对话框,修改属性如下然后我们要介绍一下VC的定时器.VC里面使用定时器有多种方式,我们先介绍一种作为抛砖引玉首先添加一个Windows消息处理器.消息这个词语可能很陌生,我们会在后面很多次说明.这里先照图做在类管理器里选中Ceg02Dlg这个类,然后点右键,就会弹出一个菜单,选择[Add Windows Message Handler…],接下来会弹出另一个菜单双击WM_TIMER然后按[确定]就可以了.大家会看到,CEg02Dlg类中多了一个函数这个就是VC中的定时器响应函数.然后双击这个函数就进入代码了然后我们为Timer事件添加代码.void CEg02Dlg::OnTimer(UINT nIDEvent){认时,进度条0为空,100为满格.从后的程序大家可以看到,这个变量自加到100就变为0.最难理解的就是((CProgressCtrl*)(GetDlgItem(IDC_PROGRESS)))->SetPos(nPos);首先, GetDlgItem(IDC_PROGRESS)这个函数用来获取IDC_PROGRESS的句柄,在VC里面引入了句柄这个词语,我们将在下一章中对消息和句柄进行详细的说明, 句柄是WINDOWS用来标识被应用程序所建立或使用的对象的唯一整数,WINDOWS使用各种各样的句柄标识诸如应用程序实例,窗口,控制,位图,GDI对象等等。
本文由LOner芒川贡献 不是我写的. 第一讲:预备知识与概念介绍 注:我写这个专题目的是为VC初学者提供一个思路,我本人很菜,但我认为对于VC初学者来讲,可能有点帮助,当然,对于WinSDK编程,我也是刚刚接触。
如果你对WinSDK编程较熟,请与我联系,咱们共同来把这个专题做好,如果你发现了什么错误,也麻烦你给我留言指正。
我写的内容也基本上是我自己的一些理解,错误是肯定有的,如果你发现我的理解偏差很大的话,麻烦你提醒一下。
小朱! 什么是WinSDK: 大致说来windows编程有两种方法: 1.windwos c方式(SDK), 2.c++方式:即对SDK函数进行包装,如VC的MFC,BCB的OWL等,如果要深入 下去,还是要熟悉SDK。
两种方法有哪些区别呢:SDK编程就是直接调用windows的API进行编程,但是有上千个API组成(win95的API有两千多个),这种数目太大了,对于编程显然不利。
而MFC把这些API封闭起来,共有一百多个类组成。
一般只需20多个windows类和另外20多个通用的非windows类就可"干活"了,这一改变无疑是有很大好处的。
尽管MFC如此方便,但是要学VC,直接去学MFC却是不明智的选择。
只有在熟悉了MFC的运行机制的情况下,才有可能深入下去。
那些如多少天精通什么什么的书籍其实讲的全是些如怎么使用VC这种工具的话题,学来学去学会了怎么会使用VC这种工具,而不能深入MFC编程。
象VB这类工具就更令人感觉到太闷了,不过各有各的好处。
MFC虽然提高了程序员编程的效率,但是也失去了SDK编程的灵活性……不好意思,跑题了…… 本专题假定: C语言是windows的源语言,用C进行SDK编程是最合适的,你应该至少学过C语言,知道C语言的各种语法等,当我说到指针等类似概念的时候,你不至于茫然就行了。
你还应该安装了Visual C++6.0,低版本的就不用用了吧,D版的才几块钱吗? 推荐与参考资料: 1.Petzold的[programming windows by petzold],这是我看过的一本书(电子书),不过是E文的,我只看了一半,"下载空间"一栏能供了该电子书。
本文由LOner芒川贡献 不是我写的. 第一讲:预备知识与概念介绍 注:我写这个专题目的是为VC初学者提供一个思路,我本人很菜,但我认为对于VC初学者来讲,可能有点帮助,当然,对于WinSDK编程,我也是刚刚接触。
如果你对WinSDK编程较熟,请与我联系,咱们共同来把这个专题做好,如果你发现了什么错误,也麻烦你给我留言指正。
我写的内容也基本上是我自己的一些理解,错误是肯定有的,如果你发现我的理解偏差很大的话,麻烦你提醒一下。
小朱! 什么是WinSDK: 大致说来windows编程有两种方法: 1.windwos c方式(SDK), 2.c++方式:即对SDK函数进行包装,如VC的MFC,BCB的OWL等,如果要深入 下去,还是要熟悉SDK。
两种方法有哪些区别呢:SDK编程就是直接调用windows的API进行编程,但是有上千个API组成(win95的API有两千多个),这种数目太大了,对于编程显然不利。
而MFC把这些API封闭起来,共有一百多个类组成。
一般只需20多个windows类和另外20多个通用的非windows类就可"干活"了,这一改变无疑是有很大好处的。
尽管MFC如此方便,但是要学VC,直接去学MFC却是不明智的选择。
只有在熟悉了MFC的运行机制的情况下,才有可能深入下去。
那些如多少天精通什么什么的书籍其实讲的全是些如怎么使用VC这种工具的话题,学来学去学会了怎么会使用VC这种工具,而不能深入MFC编程。
象VB这类工具就更令人感觉到太闷了,不过各有各的好处。
MFC虽然提高了程序员编程的效率,但是也失去了SDK编程的灵活性……不好意思,跑题了…… 本专题假定: C语言是windows的源语言,用C进行SDK编程是最合适的,你应该至少学过C语言,知道C语言的各种语法等,当我说到指针等类似概念的时候,你不至于茫然就行了。
你还应该安装了Visual C++6.0,低版本的就不用用了吧,D版的才几块钱吗? 推荐与参考资料: 1.Petzold的[programming windows by petzold],这是我看过的一本书(电子书),不过是E文的,我只看了一半,"下载空间"一栏能供了该电子书。
中文版的是[Windows 程序设计](包括上,下卷),Charles Petzold著,北京博彦发展有限公司译,北京大学出版社出版,本书唯一的缺点就是太贵,价格是160元。
一些朋友让我多推荐一些这方面的书,我也没办法,一是这类书目前本就很少,二是如果你非要买的话,肯定要买这本书了,可是经典呢!! 2.还有一本老书值得一提,可能市面上已经买不到了,书名[Windows 编程],刘振安著,人民邮电出版社出版发行。
一个朋友曾借给我看了几天我又还了,很容易读懂的,不过一看日期,95年出版,得!没希望了。
我们学校图书馆好像也有几本,不过好像都很烂。
3.VC的在线帮助MSDN,有关SDK的资料在"Platform SDK"一栏中。
下面再加深几点概念: 什么是API: 什么是API,有必要再谈一下,特别对于从TC过来的朋友和初学编程的朋友。
API,全称application program interface,意思是应用程序编程接口(说起API并不仅仅指windows而言,windows支持的API叫winapi)。
winapi就是应用程序和windows之间通讯的一个编程界面。
windows提供了上千个API函数,以方便程序员来编写应用程序。
做数据库管理系统是很少和API打交道的,我以前学PB,看的十几本书都没有专门的章节来介绍API的。
只有到网上看那些PB技巧之类的文章才谈及API,不过还要加入一大堆声明之类的东东。
好像VB也是这样。
总之,进行系统编程,API是必不可少的。
API是每个VC高手的必过的一关。
什么是WinSDK编程: WinSDK程序设计就是API方式的windows程序设计。
SDK,全称Software Developers Kit,意思是软件开发工具箱。
它是在windows程序设计早期,程序员进行windows程序设计所必须购买的一个软件包(不知道那时候有没有D版的)。
我两个月前见SDK还不知所云。
开始进行WinSDK编程用C语言最好,可以撇开C++的特性专心熟悉一下Win32编程的思路以及了解windows的消息运行机制。
等把这些有所了解后,慢慢转向C++和MFC编程。
不过我的观点是WinSDK编程永远要慢慢进行下去,直接接触底层代码对MFC源码的理解是有很大好处的。
上周开始用MFC时,按F11进行单步跟踪,一开始见到"_tWinMain"这样古怪的东东也没有感觉到太大的迷惑,不就是相当于SDK编程中的WinMain函数吗? 什么是MFC: MFC,全称Microsoft Foundation Classes,伪软把WinAPI进行封装的类库。
它是一个类的集合,通过覆盖WinAPI,为编程提供了一个面向对象的界面。
它使windows程序员能够利用C++面象对象的特性进行编程,类似BCB的OWL,Delphi的VCL组件。
它把那些进行SDK编程时最繁琐的部分提供给程序员,使之专注于功能的实现。
你不妨把它想象成类似TC提供的函数库吧。
用Visual C++这种开发工具编程时,可以用MFC,也可以不用,但MFC是VC的精华所在,从某种意义上来说,不会MFC就是不会使用VC。
研究MFC源代码是件既快乐又痛苦的事情,不过,阵痛之后,嘻嘻,…… 怎么进行WinSDK编程: Visual C++6.0:File-->new-->Projects-->Win32 Application(project name)-->…… 我们既然用C语言进行,就选第一项"An empty project"…… ……好累,这篇就写这么多吧,但愿对你有帮助,也建议多给我提意见,你的反馈是我最大的动力渊源…… 讲的不错吧 ̄,还是比较好懂的.下面接着看. 要自己动手. 第二讲:WinMain与两只小板凳的故事 注:呵呵,近两天收到不少网友来信,要求我继续写下去,说实在的,写这东西费时费力。
不过一旦想起这些对大家或许有些帮助时,无形的压力就来了。
我所写的,仅仅是我编程中的感想,如果你有何感想,希望给我留言或到"C程序员论剑台"交流,如果你有好的建议,欢迎提出;如果你有好的对VC初学者有利的作品或文章,也欢迎给本站介绍,我将大力为你推广。
小朱 第一只小板凳: 打开"an empty project"后,在VC的IDE中,打开文本编辑器。
输入以下内容: #i nclude "windows.h" int WINAPI WinMain (HINSTANCE hInstance, HINSTANCE hPrevInstance, PSTR szCmdLine, int iCmdShow) { MessageBox (NULL, TEXT ("你好,欢迎来到VC之路"), TEXT ("欢迎"), 0) ; return 0 ; } 把它保存成以".c"为扩展名的文件,并加入空项目中。
编译…… 看到了吧,这就我们的第一只小板凳。
它就类似于TC下的"hello world"吧!虽然什么功能也没实现,但它比"hello world"强多了,因为它向我们展示了一个小窗口。
支解第一只小板凳: 像TC一样,它包含一个头文件"windows.h",这是一个最基本的头文件,它包含其它的windows头文件.在你的"X:\Program Files\Microsoft Visual Studio\VC98\Include"目录下,打开windows.h这个文件,你就知道它包含什么东东了。
像dos下的C编程的main()一样,windows下的入口是WinMain()函数。
把光标放在WinMain()上,按F1键。
启动MSDN,如果你没安装的话,一定要安装一下,MSDN是最好的学习VC的资料,当然,对于我们入门者,有一本书从头到尾学一下最好。
第一个参数:应用程序的当前实例句柄。
第二个参数:应用程序的前一个实例句柄,别管它,对于Win32位而言,它一般是NULL. 第三个参数:指向任何传给程序的命令行参数。
PSTR代表"指向字符串的指针"。
第四个参数:它告诉应用程序如何初始化窗口,如最大化,最小化等状态。
WinMain()所起的作用:初始化,展示,销毁应用程序等。
MessageBox(),如果大家在windows下编程,这是一个很常用的API,不用我费话了吧! 几个要点: 1.句柄(handle):在标准C库中句柄用来对文件输入输出。
如下面的代码: int handle; handle=open("filename","r") if(handle) { read(handle,block,bytesToread); } close(handle); 在文件被成功打开后,open()返回一个句柄,在read()中使用这个句柄来阅读这个文件。
句柄不是指针。
程序不能直接使用句柄来阅读文件中的信息。
如果不能把它传送给输入输出函数调用的话,句柄就没有用了。
句柄不返回零。
句柄命名以h开始。
这是匈牙利表示法的规定。
2.匈牙利表示法: 初开始看到这个程序时,你一定感觉到很怪,我当时就是这样的。
不知道那些字母怎么回事。
因为所有的命名采用了,匈牙利表示法。
如消息的前缀使用msg.句柄使用h.函数使用fn等。
多说了,习惯了就好了. 3.有效使用MSDN: 想成为VC高手,还要强迫自己习惯于使用MSDN,看得多了,不怕看不懂,如果仅仅知道功能不知道具体的函数,可用类似的英语单词去搜索。
我平时就用金山词霸一点点的啃。
唉,说起来惭愧,本人英语四级没过,这学期连报考都没有。
以后努力了,总感觉到大学的教育很有问题,好像每个人都在为四六级而奔忙。
呵呵,说了这些,真怀疑对你真的有用。
有不对的地方,请指出。
希望大家共同进步,把VC活吃了…… 第二只小板凳 打开VC,file-->new-->progects-->win32 application,并在project name 中输入hello.顺路走下来,选择第二项。
在编辑器中输入以下程序覆盖向导产生的代码: #i nclude "stdafx.h" //注意,这个向导产生的头文件不能去掉 #i nclude <windows.h> LRESULT CALLBACK WndProc (HWND, UINT, WPARAM, LPARAM) ; int WINAPI WinMain (HINSTANCE hInstance, HINSTANCE hPrevInstance, PSTR szCmdLine, int iCmdShow) { static TCHAR szAppName[] = TEXT ("HelloWin") ; HWND hwnd ; MSG msg ; WNDCLASS wc ; wc.style = CS_HREDRAW | CS_VREDRAW ; wc.lpfnWndProc = WndProc ; wc.cbClsExtra = 0 ; wc.cbWndExtra = 0 ; wc.hInstance = hInstance ; wc.hIcon = LoadIcon (NULL, IDI_APPLICATION) ; wc.hCursor = LoadCursor (NULL, IDC_ARROW) ; wc.hbrBackground = (HBRUSH) GetStockObject (WHITE_BRUSH) ; wc.lpszMenuName = NULL ; wc.lpszClassName = szAppName ; if (!RegisterClass (&wc)) { MessageBox (NULL, TEXT ("This program requires Windows NT!"), szAppName, MB_ICONERROR) ; return 0 ; } hwnd = CreateWindow (szAppName, // window class name TEXT ("欢迎你的到来!"), // window caption WS_OVERLAPPEDWINDOW, // window style CW_USEDEFAULT, // initial x position CW_USEDEFAULT, // initial y position CW_USEDEFAULT, // initial x size CW_USEDEFAULT, // initial y size NULL, // parent window handle NULL, // window menu handle hInstance, // program instance handle NULL) ; // creation parameters ShowWindow (hwnd, iCmdShow) ; UpdateWindow (hwnd) ; while (GetMessage (&msg, NULL, 0, 0)) { TranslateMessage (&msg) ; DispatchMessage (&msg) ; } return msg.wParam ; } LRESULT CALLBACK WndProc (HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam) { HDC hdc ; PAINTSTRUCT ps ; RECT rect ; switch (message) { case WM_PAINT: hdc = BeginPaint (hwnd, &ps) ; GetClientRect (hwnd, &rect) ; DrawText (hdc, TEXT ("你好,欢迎你来到VC之路!"), -1, &rect, DT_SINGLELINE | DT_CENTER | DT_VCENTER) ; EndPaint (hwnd, &ps) ; return 0 ; case WM_DESTROY: PostQuitMessage (0) ; return 0 ; } return DefWindowProc (hwnd, message, wParam, lParam) ; } 按前两节讲的方法编译后,就见到我们的第二只小板凳了,可别小看它,对它的全面理解对于学习MFC的封装是有很大好处的。