




已阅读5页,还剩46页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
不可多得的好资料Windows 程序设计(VC+.NET)上机实验指导书中原工学院计算机科学系郭清宇Windows 程序设计 VC+.NET 实验指导书 计算机科学系 郭清宇 2实验一 Visual C+ .NET 集成开发环境的使用1、实验目的熟悉 Visual C+ .NET 集成开发环境,了解菜单和工具栏的功能。掌握生成应用程序框架的过程,熟悉解决方案资源管理器、类视图、资源视图,初步掌握文档- 视图结构。2、实验内容(1) Visual C+ NET 的 IDE 环境了解集成开发环境的菜单功能,掌握程序的编译、连接、运行及调试方法。(2) 应用程序的生成能利用集成开发环境生成 Single document、Multiple documents、Dialog based 三个应用程序框架,熟悉握生成应用程序框架的步骤。使用解决方案资源管理器、类视图、资源视图,浏览生成三个应用程序中包含的文件、类及资源信息,熟悉它们的作用。初步掌握基于 MFC 的 Windows 应用程序框架结构,理解文档-视图结构。实例 1:建立跨平台应用程序目的:使用 AppWizard 向导创建一个 MFC 应用程序,运行后只显示一个标准 Windows 窗口。1)启动 VS.NET,选择新建 项目, 类型选择“VC+ 项目”,模板选择“MFC 应用程序”。指定路径,输入 项目名称,单击确定。应用程序类型选择“ 单文档”;复合文档支持、数据库支持、用户界面、生成 类等接受系 统默认设置。2)单击菜单“ 生成、生成解决方案”编辑程序;3)单击菜单“ 调试、启动”运行程序。实例 2:创建控制台应用程序目的:创建 DOS 界面的应用程序。1)启动 VS.NET,选择新建 项目, 类型选择“VC+ 项目”,模板选择“Win32 项目”,指定路径,输入项目名称,单击确定。应用程序类型选择“ 控制台应用程序”,选择“空项目 ”,单击“ 完成 ”2)在“解决方案 资源管理器 ”右键单击“源文件”,选择“添加、添加新项” 。选择“C+ 文件( .cpp)”,单击 “打开”。3)添加代码;Windows 程序设计 VC+.NET 实验指导书 计算机科学系 郭清宇 3#include /预编译 c+头文件void main()int x=0,y=0,sum=0;/声明三个代表整数的符号:x,y 为两个被加的数,sum 为和/它们的初值都为 0coutxy; /输入操作sum=x+y; /加操作coutGetTextMetrics(/定义列表头GetListCtrl().InsertColumn (0,“姓名“,LVCFMT_LEFT,20*tm.tmAveCharWidth, 0);GetListCtrl().InsertColumn (1,“地址“,LVCFMT_LEFT,80*tm.tmAveCharWidth, 1);/ CListViewView 诊断3.编译运行程序Windows 程序设计 VC+.NET 实验指导书 计算机科学系 郭清宇 8实验三 对话框和控件基本知识(一)1. 实验目的学习对话框和控件的基本知识和应用。3. 实验内容初步掌握模态对话框和非模态对话框的概念,了解各种 Windows 标准控件的功能和使用方法,以及对话框和控件的设计、初始化、通知消息等概念。实例 1:设置对话框背景色1.新建项目类型:Visual C+项目;模板: MFC 应用程序;项目名称:BgColorDlg ;应用程序类型:基于对话框。2.对话框编辑器选择菜单“视图 、资源视图”命令,打开资源视图编辑框,设置属性。3.添加代码(1)建立 WM_CTLCOLOR 消息的相应函数:在属性框里,单击消息图标, 设置 WM_CTLCOLOR 消息的相应函数为:ONCtlColor。(2)添加成员变 量在 BgColorDlgDlg.h 头文件中添加成员变量(斜体字 )/ CBgColorDlgDlg 对话框class CBgColorDlgDlg : public CDialog/ 构造public:CBgColorDlgDlg(CWnd* pParent = NULL); / 标准构造函数public: CBrush m_brush;/创 建画刷 对 象在 BgColorDlgDlg.cpp : 实现文件中添加以下代码:SetIcon(m_hIcon, TRUE); / 设置大图标SetIcon(m_hIcon, FALSE); / 设置小图标/ TODO:在此添加额外的初始化代码m_brush.CreateSolidBrush(RGB(255,255,200);/初始化画刷return TRUE; / 除非 设置了控件的焦点,否则返回 TRUEWindows 程序设计 VC+.NET 实验指导书 计算机科学系 郭清宇 9HBRUSH CBgColorDlgDlg:OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor)HBRUSH hbr = CDialog:OnCtlColor(pDC, pWnd, nCtlColor);/ TODO: 在此更改 DC 的任何属性return m_brush;/ TODO: 如果默认的不是所需画笔, 则返回另一个画笔/return hbr;4. 编译执行程序实例 2:模态对话框1.新建项目类型:Visual C+项目;模板:MFC 应用程序;项目名称:ModalDlg ;应用程序类型:单文档。2.新建对话框选择菜单“视图 、资源视图”、打开资源视图编辑框,插入新对话框资源。设计新对话框,标题为“模态对话框”。3添加代码(1)增加一个头 文件 MyDlg.h#pragma once/ CMyDlg 对话 框class CMyDlg : public CDialogDECLARE_DYNAMIC(CMyDlg)public:CMyDlg(CWnd* pParent = NULL); / 标准构造函数virtual CMyDlg();/ 对话框数据enum IDD = IDD_DIALOG1 ;protected:virtual void DoDataExchange(CDataExchange* pDX); / DDX/DDV 支持DECLARE_MESSAGE_MAP();(2) 增加一个 C+文件 MyDlg.cpp/ MyDlg.cpp : 实现文件/#include “stdafx.h“#include “ModalDlg.h“#include “MyDlg.h“/ CMyDlg 对话 框IMPLEMENT_DYNAMIC(CMyDlg, CDialog)Windows 程序设计 VC+.NET 实验指导书 计算机科学系 郭清宇 10CMyDlg:CMyDlg(CWnd* pParent /*=NULL*/): CDialog(CMyDlg:IDD, pParent)CMyDlg:CMyDlg()void CMyDlg:DoDataExchange(CDataExchange* pDX)CDialog:DoDataExchange(pDX);BEGIN_MESSAGE_MAP(CMyDlg, CDialog)END_MESSAGE_MAP()(3)在资源视图 中双击 Menu、IDR_MAINFRAME,打开菜单编辑器,添加新菜 单。在视图菜单的状态栏下增加“模态对话框” 菜单,并在其属性栏中将 ID 修改为ID_VIEW_MODALDLG。选择菜单“视图 、类视图”、选择 CmodalDlgView 类 ,打开其属性菜 单;单击属性菜单中的事件按钮,选择 ID_VIEW_MODALDLG,点击左侧的“+” 号,选择“COMMAND”,在右 侧为 CmodalDlgView 类添加菜 单响应函数OnViewModaldlg()。Void CmodalDlgView:OnViewModaldlg()/TODO: 在此添加命令处理程序代码CMyDlg m_Dlg;/创建自定 义对话框对象m_Dlg.DoModal ();/启动对话框(4)在 ModalDlgView.cpp 中的起始位置添加#include “MyDlg.h“4.编译、运行运行程序,选择视图、模态对话框命令, 显示模态对话 框。实例 3:非模态对话框1.新建项目类型:Visual C+项目;模板:MFC 应用程序;项目名称:ModallessDlg ;应用程序类型:单文档。2.新建对话框选择菜单“视图 、资源视图”、打开资源视图编辑框,插入新对话框资源。设计新对话框,标题为“非模态对话框”。3添加代码Windows 程序设计 VC+.NET 实验指导书 计算机科学系 郭清宇 11(1)增加一个头 文件 MyDlg.h#pragma once/ CMyDlg 对话 框class CMyDlg : public CDialogDECLARE_DYNAMIC(CMyDlg)public:CMyDlg(CWnd* pParent = NULL); / 标准构造函数virtual CMyDlg();/ 对话框数据enum IDD = IDD_DIALOG1 ;protected:virtual void DoDataExchange(CDataExchange* pDX); / DDX/DDV 支持DECLARE_MESSAGE_MAP();(2)增加一个 C+文件 MyDlg.cpp#include “stdafx.h“#include “ModallessDlg.h“#include “MyDlg.h“/ CMyDlg 对话 框IMPLEMENT_DYNAMIC(CMyDlg, CDialog)CMyDlg:CMyDlg(CWnd* pParent /*=NULL*/): CDialog(CMyDlg:IDD, pParent)CMyDlg:CMyDlg()void CMyDlg:DoDataExchange(CDataExchange* pDX)CDialog:DoDataExchange(pDX);BEGIN_MESSAGE_MAP(CMyDlg, CDialog)END_MESSAGE_MAP()(3)在资源视图 中双击 Menu、IDR_MAINFRAME,打开菜单编辑器,添加新菜 单。在视图菜单的状态栏下增加“非模态对话框” 菜单,并在其属性栏中将 ID 修改为ID_VIEW_MODALLESSDLG。Windows 程序设计 VC+.NET 实验指导书 计算机科学系 郭清宇 12选择菜单“视图 、类视图”、选择 CmodallessDlgView 类,打开其属性菜 单;单击属性菜单中的事件按钮,选择 ID_VIEW_MODALLESSDLG,点击左侧的“+” 号,选择“COMMAND”,在右 侧为 CmodalDlgView 类添加菜 单响应函数OnViewModaldlg()。在 ModalDlgView.cpp 中添加代码:/ ModallessDlgView.cpp : CModallessDlgView 类的实现/#include “stdafx.h“#include “ModallessDlg.h“#include “MyDlg.h“#include “ModallessDlgDoc.h“#include “ModallessDlgView.h“#ifdef _DEBUG#define new DEBUG_NEW#endif/ CModallessDlgViewIMPLEMENT_DYNCREATE(CModallessDlgView, CView)BEGIN_MESSAGE_MAP(CModallessDlgView, CView)/ 标准打印命令ON_COMMAND(ID_FILE_PRINT, CView:OnFilePrint)ON_COMMAND(ID_FILE_PRINT_DIRECT, CView:OnFilePrint)ON_COMMAND(ID_FILE_PRINT_PREVIEW, CView:OnFilePrintPreview)ON_COMMAND(ID_VIEW_MODALLESSDLG, OnViewModallessdlg)END_MESSAGE_MAP()/ CModallessDlgView 构造/销毁CModallessDlgView:CModallessDlgView()/ TODO: 在此处添加构造代码m_pDlg=NULL;/初始化指 针对 象Windows 程序设计 VC+.NET 实验指导书 计算机科学系 郭清宇 13CModallessDlgView:CModallessDlgView()if(m_pDlg!=NULL)delete m_pDlg;/释 放指 针对 象空 间BOOL CModallessDlgView:PreCreateWindow(CREATESTRUCT/ CModallessDlgView 绘制void CModallessDlgView:OnDraw(CDC* /*pDC*/)CModallessDlgDoc* pDoc = GetDocument();ASSERT_VALID(pDoc);/ TODO: 在此处为本机数据添加绘制代码/ CModallessDlgView 打印BOOL CModallessDlgView:OnPreparePrinting(CPrintInfo* pInfo)/ 默认准备return DoPreparePrinting(pInfo);void CModallessDlgView:OnBeginPrinting(CDC* /*pDC*/, CPrintInfo* /*pInfo*/)/ TODO: 打印前添加额外的初始化Windows 程序设计 VC+.NET 实验指导书 计算机科学系 郭清宇 14void CModallessDlgView:OnEndPrinting(CDC* /*pDC*/, CPrintInfo* /*pInfo*/)/ TODO: 打印后添加清除过程/ CModallessDlgView 诊断#ifdef _DEBUGvoid CModallessDlgView:AssertValid() constCView:AssertValid();void CModallessDlgView:Dump(CDumpContextCModallessDlgDoc* CModallessDlgView:GetDocument() const / 非调试版本是内联的ASSERT(m_pDocument-IsKindOf(RUNTIME_CLASS(CModallessDlgDoc);return (CModallessDlgDoc*)m_pDocument;#endif /_DEBUG/ CModallessDlgView 消息处理程序void CModallessDlgView:OnViewModallessdlg()/ TODO: 在此添加命令处理程序代码if( m_pDlg=NULL)m_pDlg=new CMyDlg;/为 指 针对 象分配空 间m_pDlg-Create(IDD_DIALOG1,this);/创 建 对话 框 资 源m_pDlg-ShowWindow(SW_SHOW);/显 示 对话 框Windows 程序设计 VC+.NET 实验指导书 计算机科学系 郭清宇 15在 ModallessDlgView.h 文件中添加代码:/ ModallessDlgView.h : CModallessDlgView 类的接口/#include “MyDlg.h“#pragma onceclass CModallessDlgView : public CViewprotected: / 仅 从序列化创 建CModallessDlgView();DECLARE_DYNCREATE(CModallessDlgView)/ 属性public:CModallessDlgDoc* GetDocument() const;/ 操作public:CMyDlg * m_pDlg;/创 建指向 对话 框 类 指 针/ 重写public:virtual void OnDraw(CDC* pDC); / 重写以绘 制该视图virtual BOOL PreCreateWindow(CREATESTRUCTprotected:virtual BOOL OnPreparePrinting(CPrintInfo* pInfo);virtual void OnBeginPrinting(CDC* pDC, CPrintInfo* pInfo);virtual void OnEndPrinting(CDC* pDC, CPrintInfo* pInfo);Windows 程序设计 VC+.NET 实验指导书 计算机科学系 郭清宇 16/ 实现public:virtual CModallessDlgView();#ifdef _DEBUGvirtual void AssertValid() const;virtual void Dump(CDumpContext#endifprotected:/ 生成的消息映射函数protected:DECLARE_MESSAGE_MAP()public:afx_msg void OnViewModallessdlg();#ifndef _DEBUG / ModallessDlgView.cpp 的调试版本inline CModallessDlgDoc* CModallessDlgView:GetDocument() const return reinterpret_cast(m_pDocument); #endif 实例 4:消息框1.新建项目类型:Visual C+项目;模板: MFC 应用程序;项目名称:MsgBox;应用程序类型选择“基于 对话框” 。2.新建对话框选择菜单“视图 、资源视图”、打开资源视图编辑框,选中DialogIDD_MSGBOX_DIALOG,展开对话框编辑 器,设计对话框。增加两个按钮控件, 标题分别为“弹出消息框 1”和“弹出消息框 2”。将两个按钮控件的 ID 属性修改为 Msgbox1 和 Msgbox2。3添加代码Windows 程序设计 VC+.NET 实验指导书 计算机科学系 郭清宇 17单击按钮控件,为两个控件添加代码:void CMsgBoxDlg:OnBnClickedMsgbox1()/ TODO: 在此添加控件通知处理程序代码/创建消息框MessageBox(“程序运行出错,是否继续“,“ 提示“,MB_ICONWARNING+MB_YESNO+MB_DEFBUTTON1);void CMsgBoxDlg:OnBnClickedMsgbox2()/ TODO: 在此添加控件通知处理程序代码/创建消息框AfxMessageBox(“你好 !“);4.编译运行Windows 程序设计 VC+.NET 实验指导书 计算机科学系 郭清宇 18实验四 对话框和控件基本知识(二)1. 实验目的学习对话框和控件的基本知识和应用。5. 实验内容初步掌握模态对话框和非模态对话框的概念,了解各种 Windows 标准控件的功能和使用方法,以及对话框和控件的设计、初始化、通知消息等概念。实例一:列表框要点:InsertItem 函数:插入新条目。SetItemText 函数:改变条目中的文本。1.新建项目类型:Visual C+项目;模板:MFC 应用程序;项目名称:L istDlg;应用程序类型:基于对话框。2.对话框编辑设计对话框, 添加一个列表框控件:List Control,将 View 属性改为“报告” 。ID改为 IDD_LIST_DIALOG 添加一个静态文本控件:Static Text ,将 Caption 属性改为“学生” 。添加一个文本编辑控件:Edit Control,将 Read Only 属性改为“True”。如图所示:3.添加代码:Windows 程序设计 VC+.NET 实验指导书 计算机科学系 郭清宇 19Windows 程序设计 VC+.NET 实验指导书 计算机科学系 郭清宇 20实例二:组合框要点:AddString 函数:插入新条目。1.新建项目类型:Visual C+项目;模板:MFC 应用程序;项目名称:CombolBoxDlg;应用程序类型:基于对话框。2.对话框编辑设计对话框, 添加一个组合框控件。如 图所示:3.添加代码:Windows 程序设计 VC+.NET 实验指导书 计算机科学系 郭清宇 21实例三:弹出式菜单要点:TrackPopupMenu 函数定义了弹出菜单项及位置。1.新建项目类型:Visual C+项目;模板:MFC 应用程序;项目名称: PopMenu;应用程序类型:单文档。2.创建新菜单打开资源视图编辑框,单击鼠标右键, 选择“插入 Menu”,建立新菜单“IDR_MENU1”,双击 IDR_MENU1,编辑新菜单。如图:3.为 CpopMenuView 类添加鼠标右键响应函数:打开类视图,选择 CpopMenuView 类,在属性框中单击消息图标,添加消息处理函数。如图:4.添加代码:编辑 PopMenuView.cpp 文件Windows 程序设计 VC+.NET 实验指导书 计算机科学系 郭清宇 22/ CPopMenuView 消息处理程序void CPopMenuView:OnRButtonDown(UINT nFlags, CPoint point)/ TODO: 在此添加消息处理程序代码和/或调用默认值CMenu menu;/创 建菜 单对 象menu.LoadMenu(IDR_MENU1);/装 载 菜 单CMenu* pM=menu.GetSubMenu(0);/获 得子 级 菜 单CPoint pt;/创 建点 对 象GetCursorPos(/获 得鼠 标 位置pM-TrackPopupMenu(TPM_LEFTALIGN,pt.x,pt.y,this);/在指定位置 显 示弹 出菜 单CView:OnRButtonDown(nFlags, point);Windows 程序设计 VC+.NET 实验指导书 计算机科学系 郭清宇 23实例四:编辑工具栏,增加工具栏按钮1.新建项目类型:Visual C+项目;模板:MFC 应用程序;项目名称:ToolBar;应用程序类型:单文档。2.添加菜单代码和工具栏按钮打开资源视图编辑框,展开菜单,在 视图菜单下增加一新的菜单命令“ 新增工具按钮”,将 ID 改为 AddTool,打开类视图,找到 ID_AddTool,为其添加命令响应函数 OnAddtool/ CToolBarView 消息处理程序void CToolBarView:OnAddtool()/ TODO: 在此添加命令处理程序代码AfxMessageBox(“新增工具 栏 按 钮 “);/消息 对话 框选择“ToolBar|IDR_MAINFRAME”,展开工具栏编辑 器,新增工具按钮,将新增按钮的 ID 改为 ID_AddTool(和新增菜单的 ID 相同), 如图:注意:如果没有相应的菜单命令和处理函数,工具栏按钮不可用(灰色).Windows 程序设计 VC+.NET 实验指导书 计算机科学系 郭清宇 24实例五:修改状态栏1.新建项目类型:Visual C+项目;模板:MFC 应用程序;项目名称:ToolBar;应用程序类型:单文档。2.新建状态条打开资源视图编辑框,选中”StringTable| StringTable”,双击展开字符串编辑框,如图:将新增字符串的 ID 改为”ID_STATUS1” ,标题改为 ”当前状态:”3.增加代码:打开 MainaFrm.cpp加入状态行指示器代码:static UINT indicators =ID_SEPARATOR, / 状态行指示器ID_INDICATOR_CAPS,ID_INDICATOR_NUM,ID_INDICATOR_SCRL,ID_STATUS1,其中:数 组 indicators用开定 义状态条.Windows 程序设计 VC+.NET 实验指导书 计算机科学系 郭清宇 25实例六:创建登录对话框1.新建项目类型:Visual C+项目;模板:MFC 应用程序;项目名称:Log_On_Dlg;应用程序类型:单文档。2.插入编辑新对话框:打开资源视图,插入新对话框, ID 为“IDD_DIALOG_Log_On” ,添加一静 态文本和一文本控件,如图:其中:静态文本控件的标题属性改为提示内容“请输入口令” ;文本控件的 ID 设置为 IDC_EDIT_Password,Password 属性改为 True。也可以设置对话框的标题、图标和 ID。3.生成对话框类并添加变量:鼠标右键单击文本控件,选择添加类:Windows 程序设计 VC+.NET 实验指导书 计算机科学系 郭清宇 26鼠标右键单击文本控件,选择添加变量, 设置变量如图:Windows 程序设计 VC+.NET 实验指导书 计算机科学系 郭清宇 274.添加代码:在 Log_On_Dlg.cpp 中添加代 码:/ Log_On_Dlg.cpp : 定义应用程序的类行为。/#include “stdafx.h“#include “Log_On_Dlg.h“#include “MainFrm.h“#include “Log_On_DlgDoc.h“#include “Log_On_DlgView.h“#include “MyDlg.h“#ifdef _DEBUG#define new DEBUG_NEW#endif/ CLog_On_DlgApp/ CLog_On_DlgApp 初始化BOOL CLog_On_DlgApp:InitInstance()/ 如果一个运行在 Windows XP 上的应用程序清单指定要/ 使用 ComCtl32.dll 版本 6 或更高版本来启用可视化方式,/则需要 InitCommonControls()。否则
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 中外矿山合同样本
- 农村订购混泥土合同样本
- 企业中介佣金合同标准文本
- 个人定货合同样本
- 保险正规合同样本
- 制衣劳动合同标准文本
- 劳务中介合同样本
- 个人超市员工合同标准文本
- 加盟锂电租赁合同标准文本
- 冻库设备转让合同标准文本
- 提升供应商质量管理的方案
- 《房颤诊治指南解读》课件
- 中考化学主题复习(重庆)专题4综合实验的探究
- 2008年高考数学试卷(文)(全国卷Ⅱ)(解析卷)
- 专题01 富强与创新【考情透视+框架梳理+考点突破+题型归纳】道德与法治上学期期末高效复习资料
- 人力资源管理软件采购协议
- 2024年中国储能产业研究报告
- 2025年南京市事业单位招聘708人历年管理单位笔试遴选500模拟题附带答案详解
- 2024-2030年国家甲级资质:中国生物质能源融资商业计划书
- 江苏省扬州市2024-2025学年高中学业水平合格性模拟考试英语试题(含答案)
- 西安市新建住宅供配电设施建设技术导则.修订完整版
评论
0/150
提交评论