不可多得的好资料:Windows程序设计VCNET上_第1页
不可多得的好资料:Windows程序设计VCNET上_第2页
不可多得的好资料:Windows程序设计VCNET上_第3页
不可多得的好资料:Windows程序设计VCNET上_第4页
不可多得的好资料:Windows程序设计VCNET上_第5页
已阅读5页,还剩36页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、不可多得的好资料Windows程序设计(VC+.NET)上机实验指导书中原工学院计算机科学系郭清宇实验一Visual C+ .NET集成开发环境的使用1、 实验目的熟悉Visual C+ .NET集成开发环境,了解菜单和工具栏的功能。掌握生成应用程序框架的过程,熟悉解决方案资源管理器、类视图、资源视图,初步掌握文档-视图结构。2、 实验内容(1) Visual C+ NET的IDE环境了解集成开发环境的菜单功能,掌握程序的编译、连接、运行及调试方法。(2) 应用程序的生成能利用集成开发环境生成Single document、Multiple documents、Dialog based三个应用

2、程序框架,熟悉握生成应用程序框架的步骤。使用解决方案资源管理器、类视图、资源视图,浏览生成三个应用程序中包含的文件、类及资源信息,熟悉它们的作用。初步掌握基于MFC的Windows应用程序框架结构,理解文档-视图结构。实例1:建立跨平台应用程序目的:使用AppWizard向导创建一个MFC应用程序,运行后只显示一个标准Windows 窗口。1)启动VS.NET,选择新建项目,类型选择“VC+项目”,模板选择“MFC应用程序”。指定路径,输入项目名称,单击确定。应用程序类型选择“单文档”;复合文档支持、数据库支持、用户界面、生成类等接受系统默认设置。2)单击菜单“生成、生成解决方案”编辑程序;3

3、)单击菜单“调试、启动”运行程序。实例2:创建控制台应用程序目的:创建DOS界面的应用程序。1)启动VS.NET,选择新建项目,类型选择“VC+项目”,模板选择“Win32项目”,指定路径,输入项目名称,单击确定。应用程序类型选择“控制台应用程序”,选择“空项目”,单击“完成”2)在“解决方案资源管理器”右键单击“源文件”,选择“添加、添加新项”。选择“C+文件(.cpp)”,单击“打开”。3)添加代码;#include<iostream.h> /预编译c+头文件void main() int x=0,y=0,sum=0; /声明三个代表整数的符号:x,y为两个被加的数,sum为和

4、 /它们的初值都为0 cout<<"Enter 2 integers separated by space:" /界面提示用户输入 cin>>x>>y; /输入操作 sum=x+y; /加操作 cout<<"The sum is:" /界面:提示用户将得到输出 <<sum /输出sum <<endl; /输出一个换行单击菜单“生成、生成解决方案”编辑程序;单击菜单“调试、启动”运行程序。实例3:应用程序窗口初始化目的:初始化Windows 窗口。1)启动VS.NET,选择新建项目,类

5、型选择“VC+项目”,模板选择“MFC应用程序”。指定路径,输入项目名称,单击确定。应用程序类型选择“单文档”;复合文档支持、数据库支持、用户界面、生成类等接受系统默认设置。2)添加代码:在MainFrm.CPP中添加(黑体部分)BOOL CMainFrame:PreCreateWindow(CREATESTRUCT& cs)if( !CFrameWnd:PreCreateWindow(cs) )return FALSE;/初始化应用程序窗口大小和位置 int xSize = :GetSystemMetrics (SM_CXSCREEN); int ySize = :GetSystem

6、Metrics (SM_CYSCREEN); cs.cx = xSize*2/3; cs.cy = ySize*2/3; cs.x = (xSize-cs.cx)/2; cs.y = (ySize-cs.cy)/2; cs.style &=(WS_MAXIMIZEBOX|WS_MINIMIZEBOX); /去掉最小化和最大化按钮 cs.style &=WS_THICKFRAME; /使窗口大小固定 cs.style &=FWS_ADDTOTITLE; /去掉无标题 m_strTitle="My Program" /改变窗口标题内容/ TODO: 在此

7、处通过修改 CREATESTRUCT cs 来修改窗口类或/ 样式return TRUE;3)单击菜单“生成、生成解决方案”编辑程序。4)单击菜单“调试、启动”运行程序。实例4:改变应用程序窗口图标目的:对Windows 窗口进行个性化设置。1)启动VS.NET,选择新建项目,类型选择“VC+项目”,模板选择“MFC应用程序”。指定路径,输入项目名称,单击确定。应用程序类型选择“单文档”;复合文档支持、数据库支持、用户界面、生成类等接受系统默认设置。2)打开资源视图窗口,删除“IDR_MAINFRAME”图标。3)添加图标资源,设置图标ID为IDR_MAINFRAME。4)单击菜单“生成、生成

8、解决方案”编辑程序。5)单击菜单“调试、启动”运行程序。注意:添加资源前,需要将添加的图标文件拷贝到对应项目文件夹的“res”文件夹中。实验二文档、视图模型与 MFC1. 实验目的学习文档、视图模型。包括文档、视图概念、作用和相互关系;掌握如何创建文档视图应用程序的方法;以及多文档视图界面应用程序的架构和创建方法。2. 实验内容初步掌握基于MFC的Windows应用程序框架结构,理解文档-视图结构。实例一:滚动视图1.新建项目启动“Visual Studio.Net”,选择新建项目,类型选择“Visual C+项目”,模板选择“MFC应用程序”,输入项目名称t8,单击确定。生成的类中,基类选择

9、CscrollView,其他接受系统默认值,单击完成。2.修改“t8view.cpp”文件中的代码:void Ct8View:OnInitialUpdate()CScrollView:OnInitialUpdate();CSize sizeTotal;/ TODO: 计算此视图的合计大小sizeTotal.cx = sizeTotal.cy = 100; /此处100为出现滚动条时的窗口大小,将此值适当增大。SetScrollSizes(MM_TEXT, sizeTotal);3.编译运行程序实例二:分割视图1.新建项目启动“Visual Studio.Net”,选择新建项目,类型选择“Vis

10、ual C+项目”,模板选择“MFC应用程序”,输入项目名称t9,单击确定。用户界面功能中选择“拆分窗口”,其他接受系统默认值,单击完成。2.修改“ChildFrm.cpp”文件中的代码:BOOL CChildFrame:OnCreateClient(LPCREATESTRUCT /*lpcs*/, CCreateContext* pContext)return m_wndSplitter.Create(this,1, 2,/ TODO:调整行号和列号CSize(10, 10),/ TODO: 调整最小窗格大小pContext);3.编译运行程序选择菜单命令“窗口、拆分”。当前窗口将被拆分成指

11、定样式。实例三:列表视图1.新建项目启动“Visual Studio.Net”,选择新建项目,类型选择“Visual C+项目”,模板选择“MFC应用程序”,输入项目名称listview,单击确定。生成的类中,基类选择CListView,其他接受系统默认值,单击完成。2.在listviewView.cpp中添加代码BOOL CListViewView:PreCreateWindow(CREATESTRUCT& cs)/ TODO: 在此处通过修改 CREATESTRUCT cs 来修改窗口类或/ 样式return CListView:PreCreateWindow(cs);void C

12、ListViewView:OnInitialUpdate()CListView:OnInitialUpdate();/ TODO: 调用 GetListCtrl() 直接访问 ListView 的列表控件,/ 从而可以用项填充 ListView。/设置列表控件的风格,为“报表”风格GetListCtrl().ModifyStyle(0,LVS_REPORT|LVS_SHOWSELALWAYS|LVS_SORTASCENDING) ; /设置两种列表控件风格:第一种扩展风格,在列表上画线,分隔行和列;第二种风格允许用户选中整行。 GetListCtrl().SendMessage(LVM_SET

13、EXTENDEDLISTVIEWSTYLE,0, LVS_EX_GRIDLINES|LVS_EX_FULLROWSELECT) ; CDC* pDC = GetDC();/获得设备环境对象 TEXTMETRIC tm; pDC->GetTextMetrics(&tm) ; /定义列表头 GetListCtrl().InsertColumn (0,"姓名",LVCFMT_LEFT,20*tm.tmAveCharWidth, 0); GetListCtrl().InsertColumn (1,"地址",LVCFMT_LEFT,80*tm.tmA

14、veCharWidth, 1); / CListViewView 诊断3.编译运行程序实验三对话框和控件基本知识(一)1. 实验目的学习对话框和控件的基本知识和应用。3. 实验内容初步掌握模态对话框和非模态对话框的概念,了解各种Windows标准控件的功能和使用方法,以及对话框和控件的设计、初始化、通知消息等概念。实例1:设置对话框背景色1.新建项目类型:Visual C+项目;模板:MFC应用程序;项目名称:BgColorDlg;应用程序类型:基于对话框。2.对话框编辑器选择菜单“视图、资源视图”命令,打开资源视图编辑框,设置属性。3.添加代码(1)建立WM_CTLCOLOR消息的相应函数:

15、在属性框里,单击消息图标,设置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(

16、m_hIcon, FALSE);/ 设置小图标/ TODO:在此添加额外的初始化代码m_brush.CreateSolidBrush(RGB(255,255,200);/初始化画刷return TRUE; / 除非设置了控件的焦点,否则返回 TRUEHBRUSH CBgColorDlgDlg:OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor)HBRUSH hbr = CDialog:OnCtlColor(pDC, pWnd, nCtlColor);/ TODO: 在此更改 DC 的任何属性return m_brush;/ TODO: 如果默认的不是

17、所需画笔,则返回另一个画笔/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); / 标准构造函

18、数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(

19、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

20、修改为ID_VIEW_MODALDLG。选择菜单“视图、类视图”、选择CmodalDlgView类,打开其属性菜单;单击属性菜单中的事件按钮,选择ID_VIEW_MODALDLG,点击左侧的“+”号,选择“COMMAND”,在右侧为CmodalDlgView类添加菜单响应函数OnViewModaldlg()。Void CmodalDlgView:OnViewModaldlg()/TODO: 在此添加命令处理程序代码CMyDlg m_Dlg;/创建自定义对话框对象m_Dlg.DoModal ();/启动对话框(4)在ModalDlgView.cpp中的起始位置添加#include "M

21、yDlg.h"4.编译、运行运行程序,选择视图、模态对话框命令,显示模态对话框。实例3:非模态对话框1.新建项目类型:Visual C+项目;模板:MFC应用程序;项目名称:ModallessDlg;应用程序类型:单文档。2.新建对话框选择菜单“视图、资源视图”、打开资源视图编辑框,插入新对话框资源。设计新对话框,标题为“非模态对话框”。3添加代码(1)增加一个头文件MyDlg.h#pragma once/ CMyDlg 对话框class CMyDlg : public CDialogDECLARE_DYNAMIC(CMyDlg)public:CMyDlg(CWnd* pParent

22、 = 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

23、(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,打开菜单编辑器,添加新菜单。在视图菜单的状态栏下增加“非模态对话框”菜单,并在其属性栏中将

24、ID修改为ID_VIEW_MODALLESSDLG。选择菜单“视图、类视图”、选择CmodallessDlgView类,打开其属性菜单;单击属性菜单中的事件按钮,选择ID_VIEW_MODALLESSDLG,点击左侧的“+”号,选择“COMMAND”,在右侧为CmodalDlgView类添加菜单响应函数OnViewModaldlg()。在ModalDlgView.cpp中添加代码:/ ModallessDlgView.cpp : CModallessDlgView 类的实现/#include "stdafx.h"#include "ModallessDlg.h&q

25、uot;#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:OnFi

26、lePrint)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;/初始化指针对象CModallessDlgV

27、iew:CModallessDlgView()if(m_pDlg!=NULL)delete m_pDlg;/释放指针对象空间BOOL CModallessDlgView:PreCreateWindow(CREATESTRUCT& cs)/ TODO: 在此处通过修改 CREATESTRUCT cs 来修改窗口类或/ 样式return CView:PreCreateWindow(cs);/ CModallessDlgView 绘制void CModallessDlgView:OnDraw(CDC* /*pDC*/)CModallessDlgDoc* pDoc = GetDocument(

28、);ASSERT_VALID(pDoc);/ TODO: 在此处为本机数据添加绘制代码/ CModallessDlgView 打印BOOL CModallessDlgView:OnPreparePrinting(CPrintInfo* pInfo)/ 默认准备return DoPreparePrinting(pInfo);void CModallessDlgView:OnBeginPrinting(CDC* /*pDC*/, CPrintInfo* /*pInfo*/)/ TODO: 打印前添加额外的初始化void CModallessDlgView:OnEndPrinting(CDC* /*

29、pDC*/, CPrintInfo* /*pInfo*/)/ TODO: 打印后添加清除过程/ CModallessDlgView 诊断#ifdef _DEBUGvoid CModallessDlgView:AssertValid() constCView:AssertValid();void CModallessDlgView:Dump(CDumpContext& dc) constCView:Dump(dc);CModallessDlgDoc* CModallessDlgView:GetDocument() const / 非调试版本是内联的ASSERT(m_pDocument-&

30、gt;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_SHO

31、W);/显示对话框在ModallessDlgView.h文件中添加代码:/ ModallessDlgView.h : CModallessDlgView 类的接口/#include "MyDlg.h"#pragma onceclass CModallessDlgView : public CViewprotected: / 仅从序列化创建CModallessDlgView();DECLARE_DYNCREATE(CModallessDlgView)/ 属性public:CModallessDlgDoc* GetDocument() const;/ 操作public:CMyD

32、lg * m_pDlg;/创建指向对话框类指针/ 重写public:virtual void OnDraw(CDC* pDC); / 重写以绘制该视图virtual BOOL PreCreateWindow(CREATESTRUCT& cs);protected:virtual BOOL OnPreparePrinting(CPrintInfo* pInfo);virtual void OnBeginPrinting(CDC* pDC, CPrintInfo* pInfo);virtual void OnEndPrinting(CDC* pDC, CPrintInfo* pInfo);

33、/ 实现public:virtual CModallessDlgView();#ifdef _DEBUGvirtual void AssertValid() const;virtual void Dump(CDumpContext& dc) const;#endifprotected:/ 生成的消息映射函数protected:DECLARE_MESSAGE_MAP()public:afx_msg void OnViewModallessdlg();#ifndef _DEBUG / ModallessDlgView.cpp 的调试版本inline CModallessDlgDoc* CM

34、odallessDlgView:GetDocument() const return reinterpret_cast<CModallessDlgDoc*>(m_pDocument); #endif实例4:消息框1.新建项目类型:Visual C+项目;模板:MFC应用程序;项目名称:MsgBox;应用程序类型选择“基于对话框”。2.新建对话框选择菜单“视图、资源视图”、打开资源视图编辑框,选中DialogIDD_MSGBOX_DIALOG,展开对话框编辑器,设计对话框。增加两个按钮控件,标题分别为“弹出消息框1”和“弹出消息框2”。将两个按钮控件的ID属性修改为Msgbox1和M

35、sgbox2。3添加代码单击按钮控件,为两个控件添加代码:void CMsgBoxDlg:OnBnClickedMsgbox1()/ TODO: 在此添加控件通知处理程序代码/创建消息框MessageBox("程序运行出错,是否继续","提示",MB_ICONWARNING+MB_YESNO+MB_DEFBUTTON1);void CMsgBoxDlg:OnBnClickedMsgbox2()/ TODO: 在此添加控件通知处理程序代码/创建消息框AfxMessageBox("你好!");4.编译运行实验四对话框和控件基本知识(二)1

36、. 实验目的学习对话框和控件的基本知识和应用。5. 实验内容初步掌握模态对话框和非模态对话框的概念,了解各种Windows标准控件的功能和使用方法,以及对话框和控件的设计、初始化、通知消息等概念。实例一:列表框要点:InsertItem函数:插入新条目。 SetItemText函数:改变条目中的文本。1.新建项目类型:Visual C+项目;模板:MFC应用程序;项目名称:ListDlg;应用程序类型:基于对话框。2.对话框编辑设计对话框, 添加一个列表框控件:List Control,将View属性改为“报告”。ID改为IDD_LIST_DIALOG添加一个静态文本控件:Static Tex

37、t,将Caption属性改为“学生”。添加一个文本编辑控件:Edit Control,将Read Only属性改为“True”。如图所示:3.添加代码:实例二:组合框要点:AddString函数:插入新条目。1.新建项目类型:Visual C+项目;模板:MFC应用程序;项目名称:CombolBoxDlg;应用程序类型:基于对话框。2.对话框编辑设计对话框, 添加一个组合框控件。如图所示:3.添加代码:实例三:弹出式菜单要点:TrackPopupMenu 函数定义了弹出菜单项及位置。1.新建项目类型:Visual C+项目;模板:MFC应用程序;项目名称:PopMenu;应用程序类型:单文档。

38、2.创建新菜单打开资源视图编辑框,单击鼠标右键,选择“插入Menu”,建立新菜单“IDR_MENU1”,双击IDR_MENU1,编辑新菜单。如图:3.为CpopMenuView类添加鼠标右键响应函数:打开类视图,选择CpopMenuView类,在属性框中单击消息图标,添加消息处理函数。如图:4.添加代码:编辑PopMenuView.cpp文件/ CPopMenuView 消息处理程序void CPopMenuView:OnRButtonDown(UINT nFlags, CPoint point)/ TODO: 在此添加消息处理程序代码和/或调用默认值CMenu menu;/创建菜单对象men

39、u.LoadMenu(IDR_MENU1);/装载菜单CMenu* pM=menu.GetSubMenu(0);/获得子级菜单CPoint pt;/创建点对象GetCursorPos(&pt);/获得鼠标位置pM->TrackPopupMenu(TPM_LEFTALIGN,pt.x,pt.y,this);/在指定位置显示弹出菜单CView:OnRButtonDown(nFlags, point);实例四:编辑工具栏,增加工具栏按钮1.新建项目类型:Visual C+项目;模板:MFC应用程序;项目名称:ToolBar;应用程序类型:单文档。2.添加菜单代码和工具栏按钮打开资源视图

40、编辑框,展开菜单,在视图菜单下增加一新的菜单命令“新增工具按钮”,将ID改为AddTool,打开类视图,找到ID_AddTool,为其添加命令响应函数OnAddtool/ CToolBarView 消息处理程序void CToolBarView:OnAddtool()/ TODO: 在此添加命令处理程序代码AfxMessageBox("新增工具栏按钮");/消息对话框选择“ToolBar|IDR_MAINFRAME”,展开工具栏编辑器,新增工具按钮,将新增按钮的ID改为ID_AddTool(和新增菜单的ID相同),如图:注意:如果没有相应的菜单命令和处理函数,工具栏按钮不可

41、用(灰色).实例五:修改状态栏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_

42、STATUS1,其中:数组indicators用开定义状态条.实例六:创建登录对话框1.新建项目类型:Visual C+项目;模板:MFC应用程序;项目名称:Log_On_Dlg;应用程序类型:单文档。2.插入编辑新对话框:打开资源视图,插入新对话框,ID为“IDD_DIALOG_Log_On”,添加一静态文本和一文本控件,如图:其中:静态文本控件的标题属性改为提示内容“请输入口令”;文本控件的ID设置为 IDC_EDIT_Password,Password属性改为True。也可以设置对话框的标题、图标和ID。3.生成对话框类并添加变量:鼠标右键单击文本控件,选择添加类:鼠标右键单击文本控件,

43、选择添加变量,设置变量如图:4.添加代码:在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

44、#endif/ CLog_On_DlgApp/ CLog_On_DlgApp 初始化BOOL CLog_On_DlgApp:InitInstance()/ 如果一个运行在 Windows XP 上的应用程序清单指定要/ 使用 ComCtl32.dll 版本 6 或更高版本来启用可视化方式,/则需要 InitCommonControls()。否则,将无法创建窗口。InitCommonControls();CWinApp:InitInstance();MyDlg m_Dlg;/创建对话框对象if(m_Dlg.DoModal ()=IDOK)/启动对话框if(m_Dlg.My_PWD !=11111

45、)/设置密码MessageBox(NULL,"口令不对,退出!","出错",MB_OK);/错误提示 return false;elsereturn false;/ 初始化 OLE 库编译运行,如果口令不等于“11111”,程序提示以后结束;口令正确继续执行。实验五对话框和控件高级应用1. 实验目的学习对话框和控件的基本知识和高级应用。6. 实验内容了解各种Windows高级控件的功能和使用方法。实例一:标签式对话框1.新建项目类型:Visual C+项目;模板:MFC应用程序;项目名称:Tab;应用程序类型:基于对话框。2.插入编辑新对话框:打开资源视

46、图,展开对话框编辑器,设计对话框。把命令按钮移动到下部,然后增加一个Tab Control控件,一个静态文本控件Static Text,一个编辑框Edit Control控件。如图:3.设置属性4.添加代码:1)TabDlg.h : 头文件/ TabDlg.h : 头文件/#pragma once#include "afxcmn.h"/ CTabDlg 对话框class CTabDlg : public CDialog/ 构造public:CTabDlg(CWnd* pParent = NULL);/ 标准构造函数/ 对话框数据enum IDD = IDD_TAB_DIAL

47、OG ;protected:virtual void DoDataExchange(CDataExchange* pDX);/ DDX/DDV 支持/ 实现protected:HICON m_hIcon;/ 生成的消息映射函数virtual BOOL OnInitDialog();afx_msg void OnSysCommand(UINT nID, LPARAM lParam);afx_msg void OnPaint();afx_msg HCURSOR OnQueryDragIcon();DECLARE_MESSAGE_MAP()public:CTabCtrl m_TabCtrl;/创建T

48、ab控件对象afx_msg void OnTcnSelchangeTab1(NMHDR *pNMHDR, LRESULT *pResult);2)TabDlg.cpp/ TabDlg.cpp : 实现文件/#include "stdafx.h"#include "Tab.h"#include "TabDlg.h"#ifdef _DEBUG#define new DEBUG_NEW#endif/ 用于应用程序“关于”菜单项的 CAboutDlg 对话框class CAboutDlg : public CDialogpublic:CAbo

49、utDlg();/ 对话框数据enum IDD = IDD_ABOUTBOX ;protected:virtual void DoDataExchange(CDataExchange* pDX); / DDX/DDV 支持/ 实现protected:DECLARE_MESSAGE_MAP();CAboutDlg:CAboutDlg() : CDialog(CAboutDlg:IDD)void CAboutDlg:DoDataExchange(CDataExchange* pDX)CDialog:DoDataExchange(pDX);BEGIN_MESSAGE_MAP(CAboutDlg, C

50、Dialog)END_MESSAGE_MAP()/ CTabDlg 对话框CTabDlg:CTabDlg(CWnd* pParent /*=NULL*/): CDialog(CTabDlg:IDD, pParent)m_hIcon = AfxGetApp()->LoadIcon(IDR_MAINFRAME);void CTabDlg:DoDataExchange(CDataExchange* pDX)CDialog:DoDataExchange(pDX);DDX_Control(pDX, IDC_TAB1, m_TabCtrl);BEGIN_MESSAGE_MAP(CTabDlg, CD

51、ialog)ON_WM_SYSCOMMAND()ON_WM_PAINT()ON_WM_QUERYDRAGICON()/AFX_MSG_MAPON_NOTIFY(TCN_SELCHANGE, IDC_TAB1, OnTcnSelchangeTab1)END_MESSAGE_MAP()/ CTabDlg 消息处理程序BOOL CTabDlg:OnInitDialog()CDialog:OnInitDialog();/ 将“关于.”菜单项添加到系统菜单中。/ IDM_ABOUTBOX 必须在系统命令范围内。ASSERT(IDM_ABOUTBOX & 0xFFF0) = IDM_ABOUTBO

52、X);ASSERT(IDM_ABOUTBOX < 0xF000);CMenu* pSysMenu = GetSystemMenu(FALSE);if (pSysMenu != NULL)CString strAboutMenu;strAboutMenu.LoadString(IDS_ABOUTBOX);if (!strAboutMenu.IsEmpty()pSysMenu->AppendMenu(MF_SEPARATOR);pSysMenu->AppendMenu(MF_STRING, IDM_ABOUTBOX, strAboutMenu);/ 设置此对话框的图标。当应用程序

53、主窗口不是对话框时,框架将自动/ 执行此操作SetIcon(m_hIcon, TRUE);/ 设置大图标SetIcon(m_hIcon, FALSE);/ 设置小图标/ TODO:在此添加额外的初始化代码/设置选项卡标题TC_ITEM * m_pItem;m_pItem=new TC_ITEM;m_pItem->mask =TCIF_TEXT;m_pItem->pszText="第一页"m_TabCtrl.InsertItem (0,m_pItem);m_pItem->pszText="第二页"m_TabCtrl.InsertItem (1,m_pItem);/初始化选项卡,默认为第一页GetDlgIt

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论