收藏 分享(赏)

Visual Studio C++速成版教程.doc

上传人:j35w19 文档编号:7804939 上传时间:2019-05-26 格式:DOC 页数:50 大小:5.03MB
下载 相关 举报
Visual Studio C++速成版教程.doc_第1页
第1页 / 共50页
Visual Studio C++速成版教程.doc_第2页
第2页 / 共50页
Visual Studio C++速成版教程.doc_第3页
第3页 / 共50页
Visual Studio C++速成版教程.doc_第4页
第4页 / 共50页
Visual Studio C++速成版教程.doc_第5页
第5页 / 共50页
点击查看更多>>
资源描述

1、Visual Studio C+ 2008 速成版(Express)教程由于速成班不支持资源文件的编辑,这里对资源文件分析一二 15修改一个项目 16进行跟踪验证 18大胆的增加菜单的项目 19菜单是如何被触发的呢? 20跟踪研究 IDM_ABOUT? .20IDM_ABOUT 的声明在哪里? .21IDM_ABOUT 是一个数字! 22对话框是怎么打开的? 26创建命令行程序 37创建新的 Windows 窗体项目(对话框) 41向窗体添加控件 42设置窗体和控件的属性 42编写事件处理程序代码 .43编写代码以处理事件 43生成并运行程序 44创建 Visual C+ 源文件并在命令行上对

2、其进行编译 .44编译使用 .NET 类的 Visual C+ 程序 45在命令行上编译 Visual C+ .NET 控制台应用程序 .45使用 CLR 构建程序 46特别注意:数据类型的转换 47数字转变成为字符串 47字符串转变为整形变量 47首先,感谢微软公司提供免费的 Visual Studio C+ Express 中文版。相关资源:http:/ Microsoft Visual C+ Express EdtionMicrosoft Visual C+ Express Edtion 界面创建 windows 程序之带菜单的窗体新建项目选择 Win32Win32 项目名称:test1

3、位置:G:testProject1解决方案 test1单击下一步单击完成进入的界面如下:生成文件亦如下图所示:头文件:Resource.h stdafx.h targetver.h test1.h源文件:stdafx.cpp test1.cpp资源文件:small.ico test1.ico test1.rcReadMe.txt(上述文件名:test1 与解决方案名 相同)重新生成解决方案,或者通过快捷键完成(Ctrl+Alt+F7)如下图所示,表示编译没有出现错误。开始执行程序(或者通过快捷键 Ctrl+F5)运行如下:单击帮助关于弹出窗口如下。单击文件退出 (退出执行的程序)同时,您也可以

4、通过在 G:testProject1test1Debug 下运行。双击 test1.exe 执行生成的程序。下面做的是如何对程序做简单的修改,甚至是颠覆性的修改!循序而渐进!可以通过双击头文件(.h 为后缀) ,源文件(.cpp 为后缀) ,ReadMe.txt 文件进行相应的修改工作,如何修改下面章节进行论述。当您逐项进行双击后,可以看到文件的内容,如下所示,您可以切换不同的文件进行相应的编辑修改工作。如果,您对代码修改不在行,甚至一无所知,请不要做任何修改,下面章节中将有详细的阐述。对于资源文件(.ico 后缀,.rc 后缀) ,却是不同的。双击.ico 后缀的文件,会调用画图板打开该文件

5、(实际是一个图) ,但是,用画图板打开后,修改是不能进行保存的,所以这里暂时不做任何改动。当您双击.rc 后缀的文件时,您会发现,速成版并不支持资源的编辑。下图是,双击 test1.rc 后,出现的视图。不过可以通过右键菜单的查看代码,对 test1.rc 进行编辑。现在从文件的角度,看一下,通过上述这样的步骤,Visual Studio C+ 2008 Express 为我们生成了一些什么文件。如上,我们已经设计了一个程序,不过代码是系统所生成的,我们只是轻点了几下鼠标而已。究竟,生成的过程,我们不做深究,权且当作一个黑箱。不关注他的执行过程,也不关注生成了什么文件或者代码。下图是运行 te

6、st1.exe 产生的界面:简要分析一下其特征:标题:test1菜单:文件,帮助“文件”下有“退出”“帮助”下有“关于”如何对上述的特征进行修改或者增减呢?比如:把“文件”修改为“编辑” ,在“退出”前增加“打开对话框” ,增加一个新的菜单“窗口”进行,这些修改,必须了解,这些特征与文件代码的对应关系。打开 test1.rc(通过右键,查看代码的方式实现),如下图所示。由于速成班不支持资源文件的编辑,这里对资源文件分析一二我们看到,/ 菜单/IDC_TEST1 MENUBEGINPOPUP “文件(break;case IDM_EXIT:IDM_ABOUT 在 Resource.h 中被定义为

7、 104 了,#define IDM_ABOUT 104所以 IDM_ABOUT 即是 104 的一个代号,/ 分析菜单选择:switch (wmId)case 104:DialogBox(hInst, MAKEINTRESOURCE(IDD_ABOUTBOX), hWnd, About);break;case IDM_EXIT:程序中的 IDM_ABOUT 修改为 104,编译和执行是没有区别的。IDM_ABOUT 只是一个便于记忆的符号变量,同样,在 test1.rc 中的代码/ 菜单/IDC_TEST1 MENUBEGINPOPUP “文件修改(可根据语义环境或者英文原意,判断为打开对话

8、框。对话框是通过 IDD_ABOUTBOX 所标识的。通过如上“转到定义”在 Resource.h 找到定义的语句,通过“查找所有引用”也可以找出其在 Resource.h 和 test1.cpp 中出现的位置。在 test1.rc 中,找到 IDD_ABOUTBOX 部分IDD_ABOUTBOX DIALOGEX 0, 0, 170, 62上面的数字表示的对话框的尺寸,可以尽心手动修改,以符合自己的需求。数字依次表示:左下角(水平,垂直),右上角(水平,垂直)test1.cpp 代码内容如下:/ test1.cpp : 定义应用程序的入口点。/#include “stdafx.h“#incl

9、ude “test1.h“#define MAX_LOADSTRING 100/ 全局变量:HINSTANCE hInst; / 当前实例/关于HINSTANCE,在WinDef.h中定义为:DECLARE_HANDLE(HINSTANCE);/关于DECLARE_HANDLE(HINSTANCE),在WinNT.h中定义为:#define DECLARE_HANDLE(name) struct name#_ int unused; ; typedef struct name#_ *name/关于HINSTANCE,在WinDef.h中定义为:typedef HINSTANCE HMODULE

10、;TCHAR szTitleMAX_LOADSTRING; / 标题栏文本TCHAR szWindowClassMAX_LOADSTRING; / 主窗口类名/关于TCHAR,在WinDef.h中定义为:typedef WCHAR TCHAR, *PTCHAR;/ 此代码模块中包含的函数的前向声明:ATOM MyRegisterClass(HINSTANCE hInstance);/关于ATOM,在WinDef.h中定义为:typedef WORD ATOM;/关于WORD,在WinDef.h中定义为:typedef unsigned short WORD;BOOL InitInstance(

11、HINSTANCE, int);LRESULT CALLBACK WndProc(HWND, UINT, WPARAM, LPARAM);/关于LRESULT,在WinDef.h中定义为:typedef LONG_PTR LRESULT;INT_PTR CALLBACK About(HWND, UINT, WPARAM, LPARAM);int APIENTRY _tWinMain(HINSTANCE hInstance,HINSTANCE hPrevInstance,LPTSTR lpCmdLine,int nCmdShow)/在tchar.h中定义:#define _tWinMain wW

12、inMainUNREFERENCED_PARAMETER(hPrevInstance);UNREFERENCED_PARAMETER(lpCmdLine);/ TODO: 在此放置代码。MSG msg;HACCEL hAccelTable;/ 初始化全局字符串LoadString(hInstance, IDS_APP_TITLE, szTitle, MAX_LOADSTRING);LoadString(hInstance, IDC_TEST1, szWindowClass, MAX_LOADSTRING);MyRegisterClass(hInstance);/ 执行应用程序初始化:if (!

13、InitInstance (hInstance, nCmdShow)return FALSE;hAccelTable = LoadAccelerators(hInstance, MAKEINTRESOURCE(IDC_TEST1);/ 主消息循环:while (GetMessage(DispatchMessage(return (int) msg.wParam;/ 函数: MyRegisterClass()/ 目的: 注册窗口类。/ 注释:/ 仅当希望/ 此代码与添加到Windows 95 中的“RegisterClassEx”/ 函数之前的Win32 系统兼容时,才需要此函数及其用法。调用此函数十分重要,/ 这样应用程序就可以获得关联的/ “格式正确的”小图标。/

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 企业管理 > 管理学资料

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报