《Windows编程》实验指导书
Windows编程实验二实验报告
Windows编程实验二实验报告一、实验目的本次 Windows 编程实验的目的在于深入了解和掌握 Windows 应用程序的开发流程,通过实际编程操作,提高对 Windows 消息机制、窗口处理、图形绘制等方面的理解和应用能力。
二、实验环境操作系统:Windows 10开发工具:Visual Studio 2019编程语言:C++三、实验内容1、窗口创建与消息处理创建一个基本的 Windows 窗口,并实现对窗口消息(如WM_CREATE、WM_PAINT、WM_DESTROY 等)的处理。
通过响应这些消息,完成窗口的初始化、绘制和关闭操作。
2、图形绘制在窗口客户区进行简单的图形绘制,如直线、矩形、圆形等。
掌握GDI(图形设备接口)的基本绘图函数和操作方法。
3、菜单与控件添加菜单到窗口,并处理菜单命令消息。
同时,尝试在窗口中添加一些基本的控件,如按钮、编辑框等,并实现相应的交互功能。
四、实验步骤1、创建项目打开 Visual Studio 2019,创建一个新的 Windows 桌面应用程序项目。
选择 C++作为编程语言,并按照向导进行设置,包括项目名称、存储位置等。
2、窗口类定义定义一个窗口类(WNDCLASS),设置窗口的样式、窗口过程函数指针等属性。
```cppWNDCLASS wndClass ={ 0 };wndClasslpfnWndProc = WndProc;wndClasshInstance = hInstance;wndClasslpszClassName = L"MainWindowClass";RegisterClass(&wndClass);```3、窗口创建与显示使用`CreateWindow` 函数创建窗口,并通过`ShowWindow` 和`UpdateWindow` 函数显示窗口。
```cppHWND hWnd = CreateWindow(L"MainWindowClass",L"Windows Programming Experiment",WS_OVERLAPPEDWINDOW,CW_USEDEFAULT, CW_USEDEFAULT,CW_USEDEFAULT, CW_USEDEFAULT,NULL, NULL, hInstance, NULL);ShowWindow(hWnd, nCmdShow);UpdateWindow(hWnd);```4、消息循环在主函数中,通过一个无限循环来获取和分发窗口消息。
《windows高级编程技术》实训指导书
《windows高级编程技术》实训指导书deretsigeRnU西华大学数学与计算机学院编写时间:2012-10-29目录目录..................................................................................................................................................2 一、实训目的..................................................................................................................................3 二、实训要求..................................................................................................................................4 三、实训项目..................................................................................................................................4 四、实训考核..................................................................................................................................5 五、实训教材及主要参考书..........................................................................................................5 六、实训项目指导.. (6)实训1 VS2008基本操作........................................................................................................6 实训2 MFC 界面设计.............................................................................................................7 实训3 学生信息管理界面设计..............................................................................................8 实训4 GDI 编程....................................................................................................................20 实训5 我的画图...................................................................................................................21 实训 6文件系统编程...........................................................................................................33 实训7 用户信息管理及验证...............................................................................................34 实训8 注册表编程...............................................................................................................40 实训10 卸载管理程序.........................................................................................................42 实训11吃水果问题..............................................................................................................43 实训12服务与动态链接库编程...........................................................................................49 实训13 Windows 钩子编程.. (50)Un Re gi st er ed一、实训目的本课程是《Windows 高级编程技术》的实训课程。
windows编程实验报告
windows编程实验报告《Windows编程实验报告》摘要:本实验报告主要介绍了在Windows操作系统下进行编程实验的过程和结果。
通过对Windows编程环境的搭建和基本编程语言的应用,我们实现了一些简单的程序,并对程序的运行结果进行了分析和总结。
一、实验目的本实验的主要目的是通过在Windows操作系统下进行编程实验,掌握Windows编程环境的搭建和基本编程语言的应用,加深对计算机编程原理的理解,并提高编程能力。
二、实验环境1. 操作系统:Windows 102. 编程语言:C++、C#3. 开发工具:Visual Studio 2019三、实验过程1. 环境搭建:首先在Windows 10操作系统下安装Visual Studio 2019开发工具,选择合适的编程语言进行编程实验。
2. 编程实验:根据实验要求,编写了一些简单的程序,包括控制台应用程序和Windows窗体应用程序。
通过编写程序实现了一些基本功能,如计算器、文本处理、图形界面设计等。
3. 调试运行:在编写程序的过程中,及时进行调试和运行,查找并解决程序中的错误和bug,确保程序能够正常运行。
4. 实验总结:对编写的程序进行分析和总结,总结出程序的特点和运行结果,提出改进和优化的建议。
四、实验结果通过实验,我们成功搭建了Windows编程环境,掌握了C++和C#等编程语言的应用,编写了一些简单的程序,并成功运行并得到了相应的结果。
同时,我们也发现了一些问题和不足之处,对程序进行了改进和优化,提高了程序的性能和稳定性。
五、结论本实验通过在Windows操作系统下进行编程实验,加深了对Windows编程环境的理解和掌握,提高了编程能力和实践能力。
同时也发现了一些问题和挑战,需要不断学习和提高,以适应日益复杂的编程需求。
希望通过本实验,能够为今后的编程学习和实践打下坚实的基础。
综上所述,本实验取得了一定的成果,对Windows编程环境的掌握和应用有了一定的提高,为今后的学习和发展奠定了良好的基础。
Windows编程实验二实验报告
武汉轻工大学Windows编程实验报告(实验二)姓名:刘文斌院系:数学与计算机学院班级:软件工程13 03班学号:老师:刘文涛一、实验目的和要求1、了解CDC类的使用2、掌握常用绘图函数的使用3、学会设置字体4、掌握画笔和画刷的使用5、了解不同文本输出函数的用法二、实验内容【程序1:】编写一个单文档的应用程序,在视图窗口中显示一行文本,要求文本颜色为红色,背景色为黄色。
【程序2:】编写一个单文档的应用程序,在客户区使用不同的画笔和画刷绘制点、折线、曲线、圆角矩形、弧、扇形和多边形等几何图形。
【程序3:】编写一个单文档的应用程序,在视图窗口中显示3个圆,通过使用不同颜色的画笔以及画刷来模拟交通红绿灯。
【程序4:】编写一个单文档的应用程序,在视图窗口实现一行文本的水平滚动显示,要求每个周期文本为红、黄两种颜色,字体为宋、楷两种字体。
三、实验过程1、void CTestView::OnDraw(CDC* pDC){CTestDoc* pDoc = GetDocument();ASSERT_VALID(pDoc);写单文档应用程序test,在视图中显示三个圆,通过使用不同颜色的画笔及画刷来模拟交通红绿灯。
在MFC单文档 onDraw函数中编写如下代码void CTestView::OnDraw(CDC* pDC){CTestDoc* pDoc = GetDocument();ASSERT_VALID(pDoc);写程序test,实现一行文本水平滚动显示,要求每个周期文本为红、黄两种颜色,字体为宋、楷两种字体。
void CTestView::OnDraw(CDC* pDC){CTestDoc* pDoc = GetDocument();ASSERT_VALID(pDoc);// TODO: add draw code for native data here CFont *OldFont,NewFont;if(flag%2==0){pDC->SetTextColor(RGB(255,0,0));(200,"宋体",NULL);}if(flag%2==1){pDC->SetTextColor(RGB(255,255,0));(200,"楷体",NULL);}OldFont=pDC->SelectObject(&NewFont);pDC->TextOut(x,50,"漂移");pDC->SelectObject (OldFont);SetTimer(1,10,NULL);();}void CTestView::OnTimer(UINT nIDEvent){// TODO: Add your message handler code here and/or call defaultx++;CClientDC dc(this);CRect rect;GetClientRect(&rect);if(x>={x=0;flag++;}Invalidate();CView::OnTimer(nIDEvent);}四、实验总结这次的实验做的时间有点长,不过收获还是蛮多的,比如如何设置文本的字体、颜色等属性。
《Windows编程》实验指导书
《Windows编程》实验指导书Visual C++6.0开发环境VC开发环境界面Windows编程是指在Windows操作系统上开发各种应用程序,开发工具是多种多样的,使用的计算机语言也是不同的,有C++、Pascal、Basic等,本门课程主要讲授使用C++语言开发Windows应用程序,开发工具使用的是微软公司的Visual C++6.0软件(以下简称VC)。
图1-1VC开发环境界面由标题栏、菜单栏、工具栏、项目工作区窗口、文档窗口、输出窗口以及状态栏组成,如图1-1所示。
标题栏上显示当前被操作的文档的文件名。
菜单栏包含了开发环境中几乎所有的命令,它为用户提供了文档操作、程序的编译、调试、窗口操作等一系列的功能。
菜单中的一些常用命令还被排列在相应的工具栏上,以便用户更好地操作。
项目工作区窗口位于开发环境的左边,它包含用户项目的一些信息,包括ClassView、FileView、ResourceView。
在项目工作区窗口中的任何标题或图标处单击鼠标右键,都会弹出相应的快捷菜单,该快捷菜单包含当前状态下的一些常用操作。
文档窗口一般位于开发环境的右边,它用于编辑各种程序的源代码,我们大部分时间都是和这个窗口打交道。
输出窗口一般出现在底部,它包括了编译、调试、查找文件等相关信处的输出。
这些输出信息以多页面标签的形式出现在输出窗口中,例如“编译”页面标签显示的是程序在编译和连接时的进度及错误信息。
状态栏一般位于最底部,它用于显示当前操作状态、注释、文本光标所在的行列号等信息。
开发的基本步骤虽然编程是一项创造性的工作,但仍然需要遵循一些章法,掌握这些基本方法是学习编程必不可少的步骤,无论要编写一个多么庞大的程序,都是从这些最简单的工作开始的。
下面我们就介绍一下要编写一个Windows应用程序的基本步骤。
1、创建工程。
选择“File―New…”菜单,或是使用快捷键“CTRL+N”,将会弹出创建工程界面(图1-2)。
Windows程序设计实验指导书
《Windows程序设计》上机实验指导书成都信息工程学院网络工程系二零零一年四月实验项目名称:编写Windows窗口程序、理解Hello World 程序实验项目性质:所属课程名称:VC程序设计实验计划学时:2学时一、实验目的1.了解 VC++ 6。
0 集成环境操作界面的使用2.学习创建windows 窗口的方法,熟悉WNDCLASS结构体,了解WinMain函数和窗口过程函数构建windows 窗口的整个编程过程。
并掌握Windows的消息循环机制。
二、实验内容和要求(1)编写一个windows应用程序窗口(具体要求如下)参见教材例3_1◆通过WNDCLASS窗口类的定义改变窗口的背景颜色、图标、光标等等窗口特性◆通过CreateWindow函数改变窗口起点坐标、窗口标题名、窗口大小、窗口的样式◆完成4种不同外观的窗口程序(每个窗口程序光标、图标、标题名、窗口宽度、高度、窗口样式等等特性完全不同)(2)参见教材例题4.1到4.3,编写程序,并调通。
在实验一所创建的窗口基础上,完成如下要求的绘图程序编写:1)完成基本图形绘制,长方形、圆角矩形、椭圆、多边形(六边形、五边形、八边形等等),扇形、弦,弧等相关图形2)图形的画笔,画刷颜色和填充不同。
例如下图所示:三、实验步骤(参见教材第3章)1.使用Windows SDK 创建一个应用程序的步骤1) 单击Developer Studio 的File (文件)菜单中的New (新建)命令,以显示New 对话框,选择project 属性页,选择Win32 Appilaction),然后输入需要创建工程的名称和目录(见图1-1 ),点OK 。
1.选择Win32Application2)选择应用程序类型,该例中选择An empty Project,点finish ,点ok3) 单击Developer Studio 的File (文件)菜单中的New (新建)命令,以显示New 对话框,选择File 属性页,然后选择C ++ Source File,输入源程序名和源程序所在文件夹,点击OK.(见图1-3)选择4. 输入源程序 , 教材 例3_15.编译运行执行, !若有错修 再编译运行执行,并修改相关特性.6.添加资源,重复3,File 标签 Resource Script ,插入相应的资源(如:Cursor ) 修改程序 ( 如: LoadCursor( ) , #include resource.h )(见图1-4)1-1指定应用程序的文件名和位置1-2选择应用程序类型1-3创建.cpp(或.c)文件1-4创建一个新资源2)窗口背景颜色改变代码实例首先画刷句柄赋值HBRUSH hbr;LOGBRUSH logbr;logbr.lbStyle=BS_SOLID;logbr.lbColor=RGB(0,234,123);logbr.lbHatch=NULL;hbr=CreateBrushIndirect(&logbr);然后WNDCLASS结构体背景颜色赋值画刷句柄wndclass.hbrBackground = hbr;3)画六边形的代码实例#include "math.h"#define pi 3.14POINT pt1[6]for (i=0;i<5;i++){pt1[i].x=170+(long)50*cos(72*(i+1)*pi/180);pt1[i].y=220+(long)50*sin(72*(i+1)*pi/180);}Polygon(hdc,pt1,5);四、思考题1.如何添加对WM_LBUTTONDOWN 的响应2.如何修改鼠标的形状?3.比较向导生成的hello world 与 3_1有何不同?4.比较Win32 Application与Win32 Console Application有何不同?五、常用函数或者结构体参数的定义(详细参见MSDN)HICON LoadIcon(HINSTANCE hInstance, // handle to application instanceLPCTSTR lpIconName // name string or resource identifier);HCURSOR LoadCursor(HINSTANCE hInstance, // handle to application instanceLPCTSTR lpCursorName // name or resource identifier);表图标样式Value DescriptionIDI_APPLICATION Default application icon.IDI_ASTERISK Same as IDI_INFORMATION.IDI_ERROR Hand-shaped icon.IDI_EXCLAMATION Same as IDI_WARNING.IDI_HAND Same as IDI_ERROR.IDI_INFORMA TION Asterisk icon.IDI_QUESTION Question mark icon.IDI_WARNING Exclamation point icon.IDI_WINLOGO Windows logo icon.HCURSOR LoadCursor(HINSTANCE hInstance, // handle to application instanceLPCTSTR lpCursorName // name or resource identifier);表光标样式Value MeaningIDC_APPSTARTING Standard arrow and small hourglassIDC_ARROW Standard arrowIDC_CROSS CrosshairIDC_HAND Windows2000: HandIDC_HELP Arrow and question markIDC_IBEAM I-beamIDC_ICON Obsolete for applications marked version 4.0 or later.IDC_NO Slashed circleIDC_SIZE Obsolete for applications marked version 4.0 or later. UseIDC_SIZEALL.IDC_SIZEALL Four-pointed arrow pointing north, south, east, and westIDC_SIZENESW Double-pointed arrow pointing northeast and southwestIDC_SIZENS Double-pointed arrow pointing north and southIDC_SIZENWSE Double-pointed arrow pointing northwest and southeastIDC_SIZEWE Double-pointed arrow pointing west and eastIDC_UPARROW Vertical arrowIDC_WAIT Hourglass窗口类结构体typedef struct _WNDCLASS {UINT style;WNDPROC lpfnWndProc;int cbClsExtra;int cbWndExtra;HINSTANCE hInstance;HICON hIcon;HCURSOR hCursor;HBRUSH hbrBackground;LPCTSTR lpszMenuName;LPCTSTR lpszClassName;} WNDCLASS, *PWNDCLASS;Class StylesThe class styles define additional elements of the window class. Two or more styles can be combined by using the bitwise OR (|) operator. To assign a style to a window class, assign the style to the style member of the WNDCLASSEX structure. The class styles are as follows.表窗口类风格Style ActionCS_BYTEALIGNCLIENT Aligns the window's client area on a byte boundary (in the x direction).This style affects the width of the window and its horizontal placementon the display.CS_BYTEALIGNWINDOW Aligns the window on a byte boundary (in the x direction). This styleaffects the width of the window and its horizontal placement on thedisplay.CS_CLASSDC Allocates one device context to be shared by all windows in the class.Because window classes are process specific, it is possible for multiplethreads of an application to create a window of the same class. It is alsopossible for the threads to attempt to use the device contextsimultaneously. When this happens , the system allows only one threadto successfully finish its drawing operation.CS_DBLCLKS Sends a double-click message to the window procedure when the userdouble-clicks the mouse while the cursor is within a window belongingto the class.CS_GLOBALCLASS Specifies that the window class is an application global class. For moreinformation, see Application Global Classes.CS_HREDRAW Redraws the entire window if a movement or size adjustment changesthe width of the client area.CS_NOCLOSE Disables Close on the window menu.CS_OWNDC Allocates a unique device context for each window in the class.CS_PARENTDC Sets the clipping rectangle of the child window to that of the parentwindow so that the child can draw on the parent. A window with theCS_PARENTDC style bit receives a regular device context from thesystem's cache of device contexts. It does not give the child the parent'sdevice context or device context settings. Specifying CS_PARENTDCenhances an application's performance.CS_SA VEBITS Saves, as a bitmap, the portion of the screen image obscured by awindow of this class. When the window is removed, the system uses thesaved bitmap to restore the screen image, including other windows thatwere obscured. Therefore, the system does not send WM_PAINTmessages to windows that were obscured if the memory used by thebitmap has not been discarded and if other screen actions have notinvalidated the stored image.This style is useful for small windows (for example, menusor dialog boxes) that are displayed briefly and then removedbefore other screen activity takes place. This styleincreases the time required to display the window, becausethe system must first allocate memory to store the bitmap. CS_VREDRAW Redraws the entire window if a movement or size adjustment changesthe height of the client area.创建窗口函数:HWND CreateWindow(LPCTSTR lpClassName, // registered class nameLPCTSTR lpWindowName, // window nameDWORD dwStyle, // window styleint x, // horizontal position of windowint y, // vertical position of windowint nWidth, // window widthint nHeight, // window heightHWND hWndParent, // handle to parent or owner windowHMENU hMenu, // menu handle or child identifierHINSTANCE hInstance, // handle to application instanceLPVOID lpParam // window-creation data);Window StylesThe following styles can be specified wherever a window style is required. After the control has been created, these styles cannot be modified, except as noted.表窗口样式Style MeaningWS_BORDER Creates a window that has a thin-line border.WS_CAPTION Creates a window that has a title bar (includes the WS_BORDER style). WS_CHILD Creates a child window. A window with this style cannot have a menu bar.This style cannot be used with the WS_POPUP style.WS_CHILDWINDOW Same as the WS_CHILD style.WS_CLIPCHILDREN Excludes the area occupied by child windows when drawing occurs withinthe parent window. This style is used when creating the parent window.WS_CLIPSIBLINGS Clips child windows relative to each other; that is, when a particular childwindow receives a WM_PAINT message, the WS_CLIPSIBLINGS styleclips all other overlapping child windows out of the region of the childwindow to be updated. If WS_CLIPSIBLINGS is not specified and childwindows overlap, it is possible, when drawing within the client area of achild window, to draw within the client area of a neighboring childwindow.WS_DISABLED Creates a window that is initially disabled. A disabled window cannotreceive input from the user. To change this after a window has beencreated, use EnableWindow.WS_DLGFRAME Creates a window that has a border of a style typically used with dialogboxes. A window with this style cannot have a title bar.WS_GROUP Specifies the first control of a group of controls. The group consists of thisfirst control and all controls defined after it, up to the next control with theWS_GROUP style. The first control in each group usually has theWS_TABSTOP style so that the user can move from group to group. Theuser can subsequently change the keyboard focus from one control in thegroup to the next control in the group by using the direction keys.You can turn this style on and off to change dialog boxnavigation. To change this style after a window has been created,use SetWindowLong.WS_HSCROLL Creates a window that has a horizontal scroll bar.WS_ICONIC Creates a window that is initially minimized. Same as the WS_MINIMIZEstyle.WS_MAXIMIZE Creates a window that is initially maximized.WS_MAXIMIZEBOX Creates a window that has a maximize button. Cannot be combined withthe WS_EX_CONTEXTHELP style. The WS_SYSMENU style must alsobe specified.WS_MINIMIZE Creates a window that is initially minimized. Same as the WS_ICONICstyle.WS_MINIMIZEBOX Creates a window that has a minimize button. Cannot be combined withthe WS_EX_CONTEXTHELP style. The WS_SYSMENU style must alsobe specified.WS_OVERLAPPED Creates an overlapped window. An overlapped window has a title bar and aborder. Same as the WS_TILED style.WS_OVERLAPPEDWINDOW Creates an overlapped window with the WS_OVERLAPPED,WS_CAPTION, WS_SYSMENU, WS_THICKFRAME,WS_MINIMIZEBOX, and WS_MAXIMIZEBOX styles. Same as theWS_TILEDWINDOW style.WS_POPUP Creates a pop-up window. This style cannot be used with the WS_CHILDstyle.WS_POPUPWINDOW Creates a pop-up window with WS_BORDER, WS_POPUP, andWS_SYSMENU styles. The WS_CAPTION and WS_POPUPWINDOWstyles must be combined to make the window menu visible.WS_SIZEBOX Creates a window that has a sizing border. Same as theWS_THICKFRAME style.WS_SYSMENU Creates a window that has a window menu on its title bar. TheWS_CAPTION style must also be specified.WS_TABSTOP Specifies a control that can receive the keyboard focus when the userpresses the TAB key. Pressing the TAB key changes the keyboard focus tothe next control with the WS_TABSTOP style.You can turn this style on and off to change dialog boxnavigation. To change this style after a window has been created,use SetWindowLong.WS_THICKFRAME Creates a window that has a sizing border. Same as the WS_SIZEBOXstyle.WS_TILED Creates an overlapped window. An overlapped window has a title bar and aborder. Same as the WS_OVERLAPPED style.WS_TILEDWINDOW Creates an overlapped window with the WS_OVERLAPPED,WS_CAPTION, WS_SYSMENU, WS_THICKFRAME,WS_MINIMIZEBOX, and WS_MAXIMIZEBOX styles. Same as theWS_OVERLAPPEDWINDOW style.WS_VISIBLE Creates a window that is initially visible.This style can be turned on and off by using ShowWindow orSetWindowPos.WS_VSCROLL Creates a window that has a vertical scroll bar.显示窗口BOOL ShowWindow(HWND hWnd, // handle to windowint nCmdShow // show state);ParametershWnd[in] Handle to the window.nCmdShow[in] Specifies how the window is to be shown. This parameter is ignored the first time an application calls ShowWindow, if the program that launched the application provides a STARTUPINFO structure. Otherwise, the first timeShowWindow is called, the value should be the value obtained by the WinMain function in its nCmdShow parameter. In subsequent calls, this parameter can be one of the following values.Value MeaningSW_FORCEMINIMIZE Windows 2000: Minimizes a window, even if thethread that owns the window is hung. This flagshould only be used when minimizing windowsfrom a different thread.SW_HIDE Hides the window and activates another window.SW_MAXIMIZE Maximizes the specified window.SW_MINIMIZE Minimizes the specified window and activatesthe next top-level window in the Z order.SW_RESTORE Activates and displays the window. If thewindow is minimized or maximized, the systemrestores it to its original size and position.An application should specify this flag whenrestoring a minimized window.SW_SHOW Activates the window and displays it in itscurrent size and position.SW_SHOWDEFAULT Sets the show state based on the SW_ valuespecified in the STARTUPINFO structure passedto the CreateProcess function by the programthat started the application.SW_SHOWMAXIMIZED Activates the window and displays it as amaximized window.SW_SHOWMINIMIZED Activates the window and displays it as aminimized window.SW_SHOWMINNOACTIVE Displays the window as a minimized window.This value is similar to SW_SHOWMINIMIZED,except the window is not activated.SW_SHOWNA Displays the window in its current size andposition.This value is similar to SW_SHOW, except thewindow is not activated.SW_SHOWNOACTIVATE Displays a window in its most recent size andposition.This value is similar to SW_SHOWNORMAL, exceptthe window is not actived.SW_SHOWNORMAL Activates and displays a window. If the windowis minimized or maximized, the system restoresit to its original size and position. Anapplication should specify this flag whendisplaying the window for the first time.六、补充知识VC++的工程文件说明:*.dsp:是VC++的项目文件,文本格式。
windows程序设计实验指导书
实验四、Windows GDI编程实验目的:1、了解windows GDI设备环境的获取与设置。
2、了解windows GDI 绘图对象CPen,CBrush,CFont等的相关基本操作。
3、掌握建立简单图形交互的图形数据管理和鼠标工具设计等。
实验要求:建立一个windows SDI(单文档)应用程序,并编辑建立图形属性设置的无模式对话框、简单图形工具条等。
实现直线、矩形、椭圆、多边形的交互绘制及文字显示,并能进行图形属性设置。
实验可以选择竞赛作业题目,则本次的基本操作实验可以不做,竞赛作业可在课程后期交上,计算成绩有加分因素。
竞赛作业:分析微软Office系列软件的绘图工具箱组件的图形编辑功能和操作特点,抽象出其数据组织的结构体系,并分析其需要的鼠标工具类型,设计出相应合理的数据结构和鼠标工具,模拟实现简单几何图形的绘制工具(能交互设置图形属性、有图形成组操作功能,可以实现图形的简单几何变换为佳)。
实验指导:一、在VC++6.0环境中建立一个单文档工程。
1、通过资源编辑器编辑如下所示对话框资源和工具条资源。
注意生成对话框类后,为几个组合框添加字符串变量,为Spin控件添加控制变量,并为几个组合对话框添加初始数据:映射模式:MM_ANISOTROPICMM_HIENGLISHMM_HIMETRICMM_ISOTROPICMM_LOENGLISHMM_LOMETRICMM_TEXTMM_TWIPS画笔风格:PS_SOLIDPS_DASHPS_DOTPS_DASHDOTPS_DASHDOTDOTPS_NULLPS_INSIDEFRAME画刷风格:BS_HATCHEDBS_SOLID线刷风格:HS_BDIAGONALHS_CROSSHS_DIAGCROSSHS_FDIAGONALHS_HORIZONTALHS_VERTICAL为生成的对话框类添加构造函数和变量:.h文件CGraphPropertyDlg(CView* pView);GDI_ExeView* m_pView;.cpp文件CGraphPropertyDlg::CGraphPropertyDlg(CView* pView){m_pView = (GDI_ExeView* ) pView;}2、在View类中添加数据成员:public://无模式对话框CGraphPropertyDlg* pDlg;int m_nMapMode;//映射模式LOGBRUSH m_lBrush;//用来交互设置CDC画刷属性的逻辑画刷LOGPEN m_lPen;//用来交互设置CDC画笔属性的逻辑画笔COLORREF m_cFont;//用来交互设置CDC字体颜色LOGFONT m_lFont;//用来交互设置CDC字体属性的逻辑字体private://将字符串变量与整形变量之间建立映射关系,用于对话框的数据交互CMap<int,int,CString,CString> m_mapMode;CMap<int,int,CString,CString> m_mapPen;CMap<int,int,CString,CString> m_mapBrush;CMap<int,int,CString,CString> m_mapHBrush;View类中数据成员的初始化:CGDI_ExeView::CGDI_ExeView(){// TODO: add construction code here//初始化映射模式的值-字符串映射表m_mapMode.SetAt(MM_ANISOTROPIC,"MM_ANISOTROPIC"); m_mapMode.SetAt(MM_HIENGLISH,"MM_HIENGLISH");m_mapMode.SetAt(MM_HIMETRIC,"MM_HIMETRIC");m_mapMode.SetAt(MM_ISOTROPIC,"MM_ISOTROPIC");m_mapMode.SetAt(MM_LOENGLISH,"MM_LOENGLISH");m_mapMode.SetAt(MM_LOMETRIC,"MM_LOMETRIC");m_mapMode.SetAt(MM_TEXT,"MM_TEXT");m_mapMode.SetAt(MM_TWIPS,"MM_TWIPS");//初始化画笔样式的值-字符串映射表m_mapPen.SetAt(PS_SOLID,"PS_SOLID");m_mapPen.SetAt(PS_DASH,"PS_DASH");m_mapPen.SetAt(PS_DOT,"PS_DOT");m_mapPen.SetAt(PS_DASHDOT,"PS_DASHDOT");m_mapPen.SetAt(PS_DASHDOTDOT,"PS_DASHDOTDOT");m_mapPen.SetAt(PS_NULL,"PS_NULL");m_mapPen.SetAt(PS_INSIDEFRAME,"PS_INSIDEFRAME"); //初始化画刷样式的值-字符串映射表m_mapBrush.SetAt(BS_HATCHED,"BS_HATCHED");m_mapBrush.SetAt(BS_SOLID,"BS_SOLID");m_mapBrush.SetAt(BS_NULL,"BS_NULL");//初始化线模式画笔样式的值-字符串映射表m_mapHBrush.SetAt(HS_BDIAGONAL,"HS_BDIAGONAL"); m_mapHBrush.SetAt(HS_CROSS,"HS_CROSS");m_mapHBrush.SetAt(HS_DIAGCROSS,"HS_DIAGCROSS"); m_mapHBrush.SetAt(HS_FDIAGONAL,"HS_FDIAGONAL"); m_mapHBrush.SetAt(PS_DASHDOTDOT,"PS_DASHDOTDOT"); m_mapHBrush.SetAt(HS_HORIZONTAL,"HS_HORIZONTAL"); m_mapHBrush.SetAt(HS_VERTICAL,"HS_VERTICAL");//初始化映射模式,画笔、画刷、字体样式m_nMapMode = MM_TEXT;m_lBrush.lbColor = RGB(0,0,0);m_lBrush.lbHatch = HS_BDIAGONAL;m_lBrush.lbStyle = BS_HATCHED;m_lPen.lopnColor = RGB(0,0,0);m_lPen.lopnStyle = PS_SOLID;m_lPen.lopnWidth.x = 1;m_cFont = RGB(0,0,0);m_lFont.lfHeight = 30;m_lFont.lfWidth = 0;m_lFont.lfEscapement = 0;m_lFont.lfOrientation = 0;m_lFont.lfWeight = FW_NORMAL;m_lFont.lfItalic = FALSE;m_lFont.lfUnderline = FALSE;m_lFont.lfStrikeOut = FALSE;m_lFont.lfCharSet = GB2312_CHARSET;m_lFont.lfOutPrecision = OUT_STROKE_PRECIS;m_lFont.lfClipPrecision = CLIP_STROKE_PRECIS;m_lFont.lfQuality = DRAFT_QUALITY;m_lFont.lfPitchAndFamily = VARIABLE_PITCH|FF_MODERN;strcpy(m_lFont.lfFaceName,"楷体_GB2312");//无模式对话框的指针初始化pDlg = NULL;}//析构函数的内存释放CGDI_ExeView::~CGDI_ExeView(){m_mapMode.RemoveAll();m_mapPen.RemoveAll();m_mapBrush.RemoveAll();m_mapHBrush.RemoveAll();}二、DOC类中的图形数据项及数据管理函数的添加。
Windows程序设计实验指导书
《Windows程序设计》实验指导书李晓静目录实验一:类与对象实验 (03)实验二:继承与多态实验 (07)实验三:基本控件(一)实验 (12)实验四:基本控件(二)实验 (16)实验五:菜单程序实验 (19)实验六:对话框实验 (21)实验七:文件操作实验 (23)实验八:图形图像程序设计实验 (26)实验一:类与对象实验实验目的:(1)理解面向对象的的概念,掌握C#的定义类和创建对象方法;(2)区分类的不同数据成员,包括常量、字段和属性的定义方法,并学会控制其可访问性;(3)掌握类的方法成员的声明和调用,理解各种参数在方法中的意义及使用;(4)理解构造和析构函数的作用机制。
实验内容:使用C#定义Employee类、EmployeeManagement类。
Employee类的字段为姓名、性别、年龄、薪水;分别定义这四个字段对应的属性(Name、Sex、Age、Salary)。
EmployeeManagement类的字段为ArrayList类型的成员,用于保存员工对象;定义AddEmployee、DelEmployee、FindEmployee、List方法,在Main 方法中测试。
实验原理:(1)创建类的语法格式:访问修饰符 class 类名:基类或接口{字段成员:访问修饰符类型字段名;属性成员:访问修饰符类型属性名{get{……;return 类变量;}set{……;变量名=value;}}方法成员:访问修饰符返回值类型方法名(传递参数列表){方法体语句块;Return 变量;}}(2)构造函数和析构函数定义构造函数的语法格式:访问修饰符类名(参数列表){构造函数的主体;}构造函数具有以下特性:1)构造函数的命名必须和类名完全相同,一般访问修饰符为public类型。
2)构造函数的功能主要是创建类的实例时定义对象的初始化状态,因此它没有返回值,也不能用void修饰。
3)构造函数可以有参数,也可以无参数。
windows体系及编程实验指导书
《Windows体系及编程》实验指导书实验一进程管理实验实验名称:进程管理实验实验类型: 验证性实验学时: 4适用对象: 软件工程专业、网络工程专业、信息安全专业一、实验目的理解Windows编程环境下的进程管理机制,能创建一个完成特定功能的进程,并能对进程进行信息的获取、终止和保护。
二、实验要求1.编写一段程序,能够完成创建进程的功能,要求启动windows记事本程序(notepad.exe),同时打开一个文本文件,路径为:c:\system\user.log 。
并打印出新建进程ID。
2.获取当前系统进程信息,打印输出进程名称和ID号。
3.终止新创建的进程并获取退出代码。
三、实验原理(1)进程的创建进程的创建通过CreateProcess()函数来实现,CreateProcess()通过创建一个新的进程及在其地址空间内运行的主线程来启动并运行一个新的程序。
具体地,在执行CreateProcess()函数时,首先由操作系统负责创建一个进程内核对象,初始化计数为1,并立即为新进程创建一块虚拟地址空间。
随后将可执行文件或其他任何必要的动态链接库文件的代码和数据装载到该地址空间中。
在创建主线程时,也是首先由系统负责创建一个线程内核对象,并初始化为1。
最后启动主线程并执行进程的入口函数WinMain(),完成对进程和执行线程的创建。
CreateProcess()函数的原型声明如下:BOOL CreateProcess(LPCTSTR lpApplicationName, // 可执行模块名LPTSTR lpCommandLine, // 命令行字符串LPSECURITY_ATTRIBUTES lpProcessAttributes, // 进程的安全属性LPSECURITY_ATTRIBUTES lpThreadAttributes, // 线程的安全属性BOOL bInheritHandles, // 句柄继承标志DWORD dwCreationFlags, // 创建标志LPVOID lpEnvironment, // 指向新的环境块的指针LPCTSTR lpCurrentDirectory, // 指向当前目录名的指针LPSTARTUPINFO lpStartupInfo, // 指向启动信息结构的指针LPPROCESS_INFORMATION lpProcessInformation // 指向进程信息结构的指针);(2)进程的获取进程的定义是为执行程序指令的线程而保留的一系列资源的集合。
windows编程实验大纲
《windows编程A》(052030)实验教学大纲学科部(系):计算机学院计算机科学系执笔人:鞠传香审核人: 黄晶晶一、课程基本情况:1、课程教学计划总学时共40学时、教学计划实验学时16学时、实际可开出实验学时16学时、非独立设课2、课程类型为专业基础课,服务专业为计算机科学与技术专业本科层次。
3、本大纲修订时间:2007年3月23日二、实验教学目的和要求《windows编程》在计算机科学中是一门实践性的专业课,它是对面向对象程序设计的提高,。
实践性教学的设计是从提高编程能力和软件开发能力两个方面实施分层次教学。
通过实验可以让学生掌握Windows程序设计基础知识和基本理论。
要做到熟练应用常用各种控件,掌握框架窗口结构、文档视图结构、数据库程序设计。
巩固和掌握所学的内容。
三、学时分配及实验项目表本课程实验共安排16学时,其中16学时为必选实验,0学时为可选实验,教学计划要求学生完成实验学时数为16 学时。
四、实验课的考核实验课主要对学生上机完成任务的情况进行考查,根据学生上机表现和实验报告的质量进行考核. 考核成绩分为优秀、良好、中等、及格、不及格五等。
五、实验指导(参考)书和实验报告实验参考书:丁有和著《Visual C++教程》,机械工业出版社,2004.09 2004年实验报告要给出实验的目的和任务、程序清单、调试数据和运行结果。
六、实验项目信息:见“实验项目信息卡”。
七、实验项目名称:一个简单的windows应用程序设计实验项目代码:05203001填表人:鞠传香审核人:黄晶晶注:本表是实验教学大纲的内容之一,实验室应有单独的项目卡片注:本表是实验教学大纲的内容之一,实验室应有单独的项目卡片注:本表是实验教学大纲的内容之一,实验室应有单独的项目卡片注:本表是实验教学大纲的内容之一,实验室应有单独的项目卡片注:本表是实验教学大纲的内容之一,实验室应有单独的项目卡片注:本表是实验教学大纲的内容之一,实验室应有单独的项目卡片注:本表是实验教学大纲的内容之一,实验室应有单独的项目卡片。
WINDOWS程序设计实验指导书
Windows程序设计实验指导书耿建平编写2000年6月目录实验一Visual C++ 6.0 开发环境熟悉以及使用Windows SDK编写一个简单的Windows应用程序 (2)实验二一个简单的对话框程序 (3)实验三单文档界面程序 (4)实验四多文档界面程序 (6)实验五动态链接库程序 (7)实验六图形应用程序 (8)实验七字体应用程序 (9)实验八文件应用程序 (10)实验一Visual C++ 6.0 开发环境熟悉以及使用Windows SDK编写一个简单的Windows应用程序一、实验目的熟悉Visual C++ 6.0开发环境,掌握使用Windows SDK开发Windows应用程序的方法。
二、实验内容熟悉Visual C++ 6.0开发环境,如AppWizard、ClassWizard、工具栏、编译、运行Windows应用程序等,并能使用Windows SDK编写一个简单Windows应用程序。
熟悉Windows应用程序的运行过程。
三、实验要求自己找参考书,参照该书熟悉开发环境,并编写一个如下图所示的Windows应用程序。
四、思考题1、Windows应用程序与DOS程序有何不同?2、Windows应用程序与Windows控制台应用程序有何不同?实验二一个简单的对话框(Dialog based)程序一、实验目的通过编写一个简单的对话框程序,掌握使用Visual C++ 6.0中的MFC来编写对话框程序的方法。
二、实验内容编写如下所示的对话框程序:三、实验要求1、程序刚显示界面时,光标定位到“姓名”编辑框;2、“年龄”编辑框中只能输入无符号整数;3、“性别”下拉组合框中只有两相选项“男”和“女”,并且不能更改;4、按下“确定”按钮后,显示如下所示的提示框:5、按下“取消”按钮关闭对话框并退出程序。
四、思考题1、模态(Modal)和非模态(Modeless)对话框的创建、显示和关闭有何不同?2、对话框的基类是哪个类?如果要初始化对话框中的控件,应该重载哪个成员函数?3、访问对话框中的控件有几种方法?4、公用对话框如何调用?实验三单文档界面(SDI)程序一、实验目的通过编写一个单文档界面(Single Document Interface)程序,掌握使用Visual C++6.0中的MFC来编写单文档界面程序的方法,并熟悉文档/视图(Document/View)结构。
Windows编程_实验2指导
实验2 MFC 框架程序的分析认知与编程实践 (4学时)一、实验目的:熟悉在Visual C++ 6.0 IDE中编辑、编译、调试和运行一个MFC应用程序的基本思路;理解并掌握利用MFC开发应用程序的一般步骤和过程;加深对MFC框架程序的特性认识,掌握其应用用方法。
初步了解构件式的软件开发思想;提高实际动手编制WinApp的能力和分析问题、解决问题的能力。
二、实验内容:1、分析理解题:利用MFC AppWizard分别创建最基本的基于对话框的应用程序,单文档应用程序和多文档应用程序;并从类/文件/资源等视图角度分析比较它们各自所自动拥有的类(基类)/文件(主要是.cpp文件)/资源的异同,回答其后(即四所列)思考题;要求在实验报告中反应分析比较情况及你的认知理解点滴。
(必做)2、程序设计题:以MFC编程方式,编写并实现一个简易计算器功能的应用程序。
其界面架构形式和具体内容自我设计,原则:架构美观、布局合理,内容实用,具有可计算特性。
注意:在做第2题,由于此题是利用MFC方式进行可视化程序设计的第一个题目,要求在实验报告中,以较强的逻辑性描述其程序设计过程,培养良好的程序设计风格。
可按“建立项目(确定项目类型)->项目的可视化设计(界面布局设计和各控件的属性设置)->代码设计(为各控件绑定变量,建立消息映射、编辑相应代码等)”来组织。
3、以MFC编程方式,编写并实现一个SDI界面的“奥运五环”绘图应用程序。
(提高)提示:编写在窗口客户区上“绘制一张笑脸”的WinApp。
1)若用SDK API方式编程,则其WM_PAINT消息的响应代码为:case WM_PAINT:hdc=BeginPaint(hwnd,&ps);hPen=CreatePen(PS_SOLID,5,RGB(255,0,0));SelectObject(hdc,hPen);Ellipse(hdc,275,170,425,320);Arc(hdc,360,215,410,240,410,225,360,225);Arc(hdc,290,215,340,240,340,225,290,225);Arc(hdc,320,240,380,300,320,270,380,270);EndPaint(hwnd,&ps);return 0;2)若以MFC方式编程,则可利用MFC AppWizard建立一个SDI界面的应用程序框架,然后在其视类的OnDraw()中加入如下代码也可。
面向对象程序设计及WINDOWS编程实验指导书
将生产字节文件 JPrg.class。值得注意的是,和 Java 解释器不同,Javac 编译器期望它正 在编译的文件具有扩展名.java。 2. java 解释器 Java 解释器可用来直接解释执行 Java 字节代码,具体命令行格式如下: C:\>java options className arguments className 必须包括所有软件包信息。不仅有类名本身,还有 Java 解释器所期望的类名 (不是 Java 字节代码的文件名),所有在解释器环境下运行的类都必须包括解释器第一次调用 时所需的 main 成员函数,用以传递命令所带的变量。options 包括了 Java 解释器的所有选项, 如:-classpathpath 此选项重写 CLASSPATH 环境变量,告诉 Java 在哪里能找到类库。如果其中 用冒号分开,则可能包含多个目录等。 3. appletviewer 小应用程序浏览器 appletviewer 提供了一个 Java 运行环境,在其中可测试小应用程 Applet。appletviewer 读取包含小应用程序的 HTML 文件并在一个窗口中运行它们。 其他工具详见参考资料。 1.2 小型集成视窗环境 JCreator 介绍 JCreator 是一个 Java 程序开发工具,也是一个 Java 集成开发环境(IDE)。无论你是要开 发 Java 应用程序或者网页上的 Applet 元件都难不倒它。在功能上与 Sun 公司所公布的 JDK 等 文字模式开发工具相较之下来得容易,还允许使用者自订义操作窗口界面及无限 Undo/Redo 等 功能。 JCreator 为用户提供了相当强大的功能,例如项目管理功能,项目模板功能,可个性化设 置语法高亮属性、行数、类浏览器、标签文档、多功能编绎器,向导功能以及完全可自定义的用 户界面。通过 JCreator,我们不用激活主文档而直接编绎或运行我们的 JAVA 程序。 JCreator 能自动找到包含主函数的文件或包含 Applet 的 Html 文件, 然后它会运行适当的工 具。 在 JCreator 中, 我们可以通过一个批处理同时编绎多个项目。 JCreator 的设计接近 Windows 界面风格,用户对它的界面比较熟悉。其最大特点是与我们机器中所装的 JDK 完美结合,是其 它任何一款 IDE 所不能比拟的。它是一种初学者很容易上手的 Java 开发工具,缺点是只能进行 简单的程序开发,不能进行企业 J2EE 的开发应用。
《面向对象Windows编程技术》实验指导书 信息
Windows程序设计实验指导书(第二版)彭永康杨利华信息工程学院2008-09-10目录第一章 VC开发环境简介 (3)1.1 熟悉Visual C++实验环境 (3)1.2 VC++6.0的使用——控制台应用 (4)1.3 Windows应用 (10)1.4 编写简单的计算程序 (15)第二章实验内容安排 (18)第三章实验要求、评分标准 (19)第四章实验内容 (20)实验一 C/C++程序初步 (20)实验二面向对象编程实践 (22)实验三 MFC控件编程实践 (24)实验四文件的操作 (26)实验五 MFC综合编程 (29)第一章VC开发环境简介本章将简要介绍Visual C++开发环境的一些知识,并尝试实现一个简单的DOS程序和Windows程序。
通过本次实验,你可以了解用Visual C++开发C++应用程序的过程。
1.1 熟悉Visual C++实验环境[步骤](1) 启动Developer Studio,看看初始化界面由哪些部分组成(2) 查看各菜单项,看看都有哪些子菜单和命令(3) 将鼠标放置于各工具条图标上,系统会自动显示该图标代表的命令含义,了解一下都有哪些命令。
(4) 在任意工具条上单击鼠标右键,弹出式菜单上将显示所有可用的工具条,选择其中没有对号(√)的项,看看有什么效果,再选择有对号的项,又有什么效果?(5) 将鼠标移动到任意工具条上,将鼠标放到图标间隙,按下鼠标左键不放,移动鼠标到屏幕中间,有什么现象发生?再将它拖回到原来位置,有什么现象发生?(6) 将鼠标移动到左边的工作区窗口,按下鼠标左键不放,移动鼠标到屏幕中间,有什么现象发生?再将它拖回到原来位置,有什么现象发生?(7) 将鼠标移动到下边的输出窗口,按鼠标右键,弹出一个菜单,选择其中的菜单项"Hide",结果如何?要重新显示该窗口,选择菜单View|Output,窗口是不是又显示出来了?(8) 学习使用帮助系统。
【免费下载】Windows程序设计实验指导书完整
对全部高中资料试卷电气设备,在安装过程中以及安装结束后进行高中资料试卷调整试验;通电检查所有设备高中资料电试力卷保相护互装作置用调与试相技互术关,系电,力根通保据过护生管高产线中工敷资艺设料高技试中术卷资,配料不置试仅技卷可术要以是求解指,决机对吊组电顶在气层进设配行备置继进不电行规保空范护载高与中带资负料荷试下卷高问总中题体资,配料而置试且时卷可,调保需控障要试各在验类最;管大对路限设习度备题内进到来行位确调。保整在机使管组其路高在敷中正设资常过料工程试况中卷下,安与要全过加,度强并工看且作护尽下关可都于能可管地以路缩正高小常中故工资障作料高;试中对卷资于连料继接试电管卷保口破护处坏进理范行高围整中,核资或对料者定试对值卷某,弯些审扁异核度常与固高校定中对盒资图位料纸置试,.卷保编工护写况层复进防杂行腐设自跨备动接与处地装理线置,弯高尤曲中其半资要径料避标试免高卷错等调误,试高要方中求案资技,料术编试交写5、卷底重电保。要气护管设设装线备备置敷4高、调动设中电试作技资气高,术料课中并3中试、件资且包卷管中料拒含试路调试绝线验敷试卷动槽方设技作、案技术,管以术来架及避等系免多统不项启必方动要式方高,案中为;资解对料决整试高套卷中启突语动然文过停电程机气中。课高因件中此中资,管料电壁试力薄卷高、电中接气资口设料不备试严进卷等行保问调护题试装,工置合作调理并试利且技用进术管行,线过要敷关求设运电技行力术高保。中护线资装缆料置敷试做设卷到原技准则术确:指灵在导活分。。线对对盒于于处调差,试动当过保不程护同中装电高置压中高回资中路料资交试料叉卷试时技卷,术调应问试采题技用,术金作是属为指隔调发板试电进人机行员一隔,变开需压处要器理在组;事在同前发一掌生线握内槽图部内 纸故,资障强料时电、,回设需路备要须制进同造行时厂外切家部断出电习具源题高高电中中源资资,料料线试试缆卷卷敷试切设验除完报从毕告而,与采要相用进关高行技中检术资查资料和料试检,卷测并主处且要理了保。解护现装场置设。备高中资料试卷布置情况与有关高中资料试卷电气系统接线等情况,然后根据规范与规程规定,制定设备调试高中资料试卷方案。
《Windows程序设计》实验教学大纲【范本模板】
《Windows程序设计》实验教学大纲实验学时:32学时实验个数:11 实验学分:1课程性质:(必做)适用专业:计算机科学与技术、软件工程、网络工程教材及参考书:《Visual C++面向对象与可视化程序设计教程》(第三版)大纲执笔人:大纲审定人: 郭涛一、实验课的性质与任务本课程实验大纲是面向计算机相关专业学生开设的《Windows程序设计》(以VC++为开发环境)实验课计划指导大纲,是依据《Windows程序设计》课程教学计划指导大纲编制。
本课程主要讲述了利用Windows API函数和MFC进行简单的Windows程序开发的基本流程,结合该课程教学计划大纲的相应内容,设计了10个单项实验和综合实验,力求提高学生的动手能力,做到理论和实践相结合。
使学生在实验过程中掌握Windows程序设计的思想、原理,能使用SDK和MFC实现基于窗口的程序设计。
二、实验课程目的与要求1。
实验目的:Windows程序设计实验课的开设,是为了使学生更好地理解和掌握运用VC开发环境开发Windows程序设计的基本理论、基本方法和基本技术,强化程序设计能力。
2.实验要求:1)在实验中,要求学生个人独立思考,设计算法流程,编写出程序,完成上机调试,最后给出实验报告。
2)本课程的学习过程是复杂程序设计的训练过程,要求学生编写的程序结构清楚、正确易读,符合软件工程的规范;a)3) 在实验中更好地理解和掌握VC程序设计这门课程中所学的基本理论和方法,强化程序设计能力.四、实验内容安排:实验一Visual C++6。
0开发环境实验(验证性实验2学时)1、目的要求:了解Visual C++6.0的特点,熟悉Visual C++6。
0的开发环境.2、实验内容:了解和熟悉开发环境,对各种菜单功能,工程文件管理和MSDN帮助功能有完整的了解。
3、主要仪器设备及药品Windows 2000+VC 6.0+MSDN实验二Windows应用程序基本框架实验(验证性实验2学时)1、目的要求:编写第一个Windows程序,理解入口函数Winmain和窗口函数WinProc,掌握消息驱动机制。
windows编程实验报告
windows编程实验报告Windows编程实验报告一、实验目的本次实验旨在通过编写Windows程序,掌握Windows编程的基本原理和技巧,提高对Windows操作系统的理解和应用能力。
二、实验环境本次实验使用的开发环境为Visual Studio 2019,操作系统为Windows 10。
三、实验内容1. 界面设计在本次实验中,我选择了一个简单的计算器应用作为示例。
通过Windows编程,我设计了一个具有数字按钮、运算符按钮和结果显示框的计算器界面。
通过设置按钮的点击事件,实现了基本的加减乘除运算。
2. 窗口创建在Windows编程中,首先需要创建一个窗口,作为程序的主界面。
通过调用Windows API函数CreateWindowEx,我成功创建了一个窗口,并设置了窗口的标题、位置和大小等属性。
3. 控件创建在窗口中添加按钮和文本框等控件是Windows编程的关键步骤。
通过调用CreateWindowEx函数,我创建了多个按钮和一个文本框,并设置了它们的位置、大小和样式等属性。
同时,我还为按钮设置了点击事件的处理函数,以实现相应的功能。
4. 窗口消息处理在Windows编程中,窗口接收和处理消息是非常重要的一部分。
通过使用消息循环,我成功实现了窗口的消息处理功能。
例如,当用户点击按钮时,窗口会接收到WM_COMMAND消息,并根据不同的按钮ID执行相应的操作。
5. 基本运算功能实现为了实现计算器的基本功能,我为每个按钮设置了不同的ID,并在窗口消息处理函数中根据按钮的ID执行相应的运算操作。
例如,当用户点击加号按钮时,窗口会将当前的运算符设置为加号,并将输入的数字保存起来。
当用户点击等号按钮时,窗口会根据当前的运算符执行相应的运算,并将结果显示在文本框中。
四、实验结果通过以上的实验步骤,我成功实现了一个简单的计算器应用。
在程序运行时,用户可以通过点击按钮输入数字和运算符,并在文本框中实时显示计算结果。
作业指导书计算机编程实验指导
作业指导书计算机编程实验指导作业指导书——计算机编程实验指导本篇文章致力于为学生提供关于计算机编程实验的详细指导。
通过明确的结构和具体化的表达,本指导书旨在帮助学生更加轻松地完成计算机编程实验任务。
文章内容涵盖实验目的、实验步骤、实验要求和实验评估等要素,确保读者能够清晰地理解实验内容,并能够独立完成实验。
实验目的:通过本实验,学生将掌握计算机编程的基本概念和技巧,熟悉编程环境以及常用编程语言的使用。
同时,学生将锻炼问题分析和解决的能力,提高编程逻辑思维和代码调试的能力。
实验步骤:1. 环境准备:在开始实验之前,学生需要安装并配置计算机编程环境。
这包括选择适合的编程语言和集成开发环境(IDE),并进行安装和配置。
确保所选择的编程语言和IDE的版本适合实验要求。
2. 实验材料:学生需要准备实验所需的材料,包括实验指导书、实验代码模板、参考资料和相关软件。
3. 实验理论:在正式开始编程实验之前,学生应该理解实验的理论基础和背景知识。
这包括掌握计算机编程的基本原理、算法和数据结构等相关知识。
4. 实验设计:在进行编程实验之前,学生需要进行实验设计。
这包括分析问题需求,确定实验目标和任务,以及设计实验方案和算法。
5. 编程实现:根据实验设计和算法,学生需要开始编写代码实现。
在此过程中,学生应该注意编码规范和良好的代码风格,确保代码的可读性和可维护性。
6. 调试测试:在完成代码实现之后,学生需要进行调试测试。
这包括对实现的代码进行测试和调试,确保代码的正确性和健壮性。
7. 实验报告:在完成实验之后,学生需要按照要求编写实验报告。
实验报告应包括实验目的、实验步骤、实验结果和分析、遇到的问题以及解决方案等内容。
实验要求:学生在进行计算机编程实验时应满足以下要求:1. 严格遵守实验的规定和要求,确保实验过程的规范性和安全性。
2. 独立完成实验任务,不得抄袭和剽窃他人的代码和作品。
3. 准确记录实验过程和结果,包括问题分析和解决步骤。
《Windows程序设计S》实验指导书
《Windows程序设计S》实验指导书目录实验一、窗口与消息实验实验二、Windows绘图实验实验三、键盘、鼠标及计时器实验实验四、子窗口、控件实验实验五、对话框实验实验六、多线程实验实验七、动态链接库实验实验八、网络编程实验实验一、窗口与消息实验一、实验目的:1、使用Windows API开发程序,了解Windows API函数;2、了解Windows的消息(事件)驱动机制,了解Windows的发展史,Windows API的发展过程;二、实验原理:设计建立的每一个窗口都有相关的窗口消息处理程序。
这个窗口消息处理程序是一个函数,既可以在程序中,也可以在动态链接库中。
Windows通过呼叫窗口消息处理程序来给窗口发送消息。
窗口消息处理程序根据此消息进行处理,然后将控制传回给Windows。
了解一个Windows窗口有哪些标准的组成部分,使用VC6.0编制Windows应用程序的方法,利用窗口与消息的编程应用理解Windows 程序设计。
三、实验要求:掌握一个Windows窗口有哪些标准的组成部分,使用VC6.0编制Windows应用程序的方法,利用窗口与消息的编程应用理解Windows 程序设计。
四、实验内容:使用Windows API来开发程序,使用Windows函数建立窗口,在窗口中显示区域的中央显示“Hello,Windows 2000!”或者其他字样。
完成:1、注册一个窗口类别。
2、使用窗口消息处理程序来处理窗口消息。
3、在窗口显示区域的中央显示“Hello,Windows 2000!”或者其他字样。
4、编译、链接并运行程序,直至取得正确结果。
五、实验报告:在实验报告中详细描述你的程序的运行机制和运行结果。
六、思考题:1、“Windows给程序发送消息”这句话的含义有哪些?2、一个Windows窗口有哪些标准的组成部分?3、应用程序如何完成注册窗口类别,建立窗口,从消息队列中取出消息?4、Windows是如何处理消息的?实验二、Windows绘图实验一、实验目的:1、使用API函数编程序绘制图形;2、了解设备接口的各基本概念;二、实验原理:图形设备接口(GDI:Graphics Device Interface)是Windows的子系统,它负责在显示器和打印机上显示图形。
Windows程序设计实验指导书(完整)
《Windows程序设计》实验指导书2009-3-1目录实验一:VC++6.0开发环境熟悉 (1)实验二:API对话框应用程序设计 (3)实验三:API菜单使用 (6)实验四、API绘图程序 (12)实验五、MFC程序设计 (17)实验六:MFC对话框程序设计:计算器 (19)实验七:MFC文档(SDI)应用:绘图程序 (21)综合性设计实验 (22)实验一:VC++6.0开发环境熟悉一、实验目的熟悉Visual C++ 6.0开发环境,掌握VC6中建立、维护、运行工程项目的方法,掌握VC6中调试的方法。
二、实验内容熟悉Visual C++ 6.0开发环境,如AppWizard、ClassWizard、工具栏、编译、运行普通的C++应用程序等,并能编写一个简单C++应用程序。
熟悉调试过程。
三、实验要求1、按下图建立一个C++程序,实现菜单选择,可以实现两个整数的加减。
要求:[1]、建立工程;[2]、程序调试通过;[3]、菜单和功能用一个类来实现。
2、制作一个简单的公司职员的管理程序,这个程序要求涉及到类、结构、函数的基本使用。
同时,这个程序涉及到了对Visual Stuido集成开发环境的使用,有关这方面的详细内容,请参阅本书的第二单元“Visual C++编程基础”。
[1]、新建项目。
使用Visual C++的应用程序向导生成一个控制台应用程序Demo。
项目类型选择“Win32Console Application”,在向导的第一步中将程序类型设置成“A"Hello, World!" application”。
[2]、添加职员信息类。
在集成开发环境的中选择Insert|New Class菜单进入添加类的对话框,将新增的类名设置成workmate。
之后,分别修改workmate类的定义及实现文件。
[3]、使用职员信息类。
四、思考题1、如何实现两个复数的加减?附:一些小窍门1) 有时候,你可能在编译的时候,计算机突然非法关机了(可能某人不小心碰了电源或你的内存不稳定等原因)。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
《Windows编程》实验指导书Visual C++ 6.0 开发环境VC开发环境界面Windows编程是指在Windows操作系统上开发各种应用程序,开发工具是多种多样的,使用的计算机语言也是不同的,有C++、Pascal、Basic等,本门课程主要讲授使用C++语言开发Windows应用程序,开发工具使用的是微软公司的Visual C++ 6.0软件(以下简称VC)。
图0-1VC开发环境界面由标题栏、菜单栏、工具栏、项目工作区窗口、文档窗口、输出窗口以及状态栏组成,如图0-1所示。
标题栏上显示当前被操作的文档的文件名。
菜单栏包含了开发环境中几乎所有的命令,它为用户提供了文档操作、程序的编译、调试、窗口操作等一系列的功能。
菜单中的一些常用命令还被排列在相应的工具栏上,以便用户更好地操作。
项目工作区窗口位于开发环境的左边,它包含用户项目的一些信息,包括ClassView、FileView、ResourceView。
在项目工作区窗口中的任何标题或图标处单击鼠标右键,都会弹出相应的快捷菜单,该快捷菜单包含当前状态下的一些常用操作。
文档窗口一般位于开发环境的右边,它用于编辑各种程序的源代码,我们大部分时间都是和这个窗口打交道。
输出窗口一般出现在底部,它包括了编译、调试、查找文件等相关信处的输出。
这些输出信息以多页面标签的形式出现在输出窗口中,例如“编译”页面标签显示的是程序在编译和连接时的进度及错误信息。
状态栏一般位于最底部,它用于显示当前操作状态、注释、文本光标所在的行列号等信息。
开发的基本步骤虽然编程是一项创造性的工作,但仍然需要遵循一些章法,掌握这些基本方法是学习编程必不可少的步骤,无论要编写一个多么庞大的程序,都是从这些最简单的工作开始的。
下面我们就介绍一下要编写一个Windows应用程序的基本步骤。
1、创建工程。
选择“File―New…”菜单,或是使用快捷键“CTRL+N”,将会弹出创建工程界面(图0-2)。
图0-2在界面左侧,可以选择要创建的工程类型,VC中预置了十几种工程类型,我们只要从中选择一种我们需要的即可。
在学习C和C++语言课程时,大家可能使用的是Win32 Console Application类型的工程,如果要开发可视化应用程序,可以选择MFC AppWizard或Win32 Application等。
右侧的输入框用于指定工程名(Project name)和工程文件存放的硬盘路径(Location),这些都由程序员自己决定。
选择好后点击“OK”进入下一步的工程配置,此处我们暂以Win32 Console Application工程为例,取名为“MyFirstApp”,将为出现工程配置对话框(图0-3)。
直接点击“Finish”完成工程的创建。
图0-32、创建源文件。
此时的工程是空的,没有任何源文件,我们需要手工创建。
选择“File―New…”菜单,此时出现的界面(图0-4)和刚刚有所不同,其实仅仅是该对话框上方的选项卡变化所造成的,此时的选项卡是“File”,可以试着点击“Project”选项卡看看效果。
和新建工程一样,选择一种要创建的文件类型,这里我们选择C++ Source File,并在右侧取一个文件名,然后点击OK即可。
图0-43、编写、调试程序代码。
这是程序员创造性工作的部分,在文档窗口中完成代码的编写工作,并不断地做调试工作,最后编译并运行代码。
实验环境本课程所有的实验环境均为PC计算机、Windows2000操作系统以及VC++6.0软件。
实验一Win32程序框架设计实验一实验目的掌握Win32程序的基本原理和程序柜架编写方法;掌握鼠标消息结构,使用API编写一个简单的Windows窗口程序,能够捕获鼠标消息并打印出鼠标坐标。
二实验要求理解Windows程序的运行原理,并了解如何创建一个可视化的应用程序,了解使用Windows API完成各种功能,如打印文本等。
三实验内容创建一个最简单的Windows应用程序,包含一个主窗口,让程序捕获用户的鼠标动作,并且不停地在主窗口坐标(100,200)处打印鼠标当前位置的坐标值。
四实验步骤创建一个空的工程,参考代码如下:#include <windows.h>#include <stdio.h>LRESULT CALLBACK WinSunProc(HWND hwnd, // handle to windowUINT uMsg, // message identifierWPARAM wParam, // first message parameterLPARAM lParam // second message parameter);int WINAPI WinMain(HINSTANCE hInstance, // handle to current instanceHINSTANCE hPrevInstance, // handle to previous instanceLPSTR lpCmdLine, // command lineint nCmdShow // show state){WNDCLASS wndcls;wndcls.cbClsExtra=0;wndcls.cbWndExtra=0;wndcls.hbrBackground=(HBRUSH)GetStockObject(BLACK_BRUSH);wndcls.hCursor=LoadCursor(NULL,IDC_CROSS);wndcls.hIcon=LoadIcon(NULL,IDI_ERROR);wndcls.hInstance=hInstance;wndcls.lpfnWndProc=WinSunProc;wndcls.lpszClassName="sdut";wndcls.lpszMenuName=NULL;wndcls.style=CS_HREDRAW | CS_VREDRAW;RegisterClass(&wndcls);HWND hwnd;hwnd=CreateWindow("sdut","山东理工大学计算机学院",WS_OVERLAPPEDWINDOW/*&~WS_MAXIMIZEBOX*/,0,0,600,400,NULL,NULL,hInstance,NULL);ShowWindow(hwnd,SW_SHOWNORMAL);UpdateWindow(hwnd);MSG msg;while(GetMessage(&msg,NULL,0,0)){TranslateMessage(&msg);DispatchMessage(&msg);}return 0;}LRESULT CALLBACK WinSunProc(HWND hwnd, // handle to windowUINT uMsg, // message identifierWPARAM wParam, // first message parameterLPARAM lParam // second message parameter){switch(uMsg){case WM_CHAR:char szChar[20];sprintf(szChar,"char is %d",wParam);MessageBox(hwnd,szChar,"weixin",0);break;case WM_LBUTTONDOWN:MessageBox(hwnd,"mouse clicked","weixin",0);HDC hdc;hdc=GetDC(hwnd);TextOut(hdc,0,50,"计算机编程语言培训",strlen("计算机编程语言培训"));ReleaseDC(hwnd,hdc);break;case WM_PAINT:HDC hDC;PAINTSTRUCT ps;hDC=BeginPaint(hwnd,&ps);TextOut(hDC,0,0,"维新培训",strlen("维新培训"));EndPaint(hwnd,&ps);break;case WM_CLOSE:if(IDYES==MessageBox(hwnd,"是否真的结束?","weixin",MB_YESNO)){DestroyWindow(hwnd);}break;case WM_DESTROY:PostQuitMessage(0);break;default:return DefWindowProc(hwnd,uMsg,wParam,lParam);}return 0;}实验二文本输出程序一实验目的掌握MFC的单文档程序设计原理;掌握CDC的文字处理程序的编写,如何产生自定义字体和自定义插入符,熟悉对CString类的使用。
二实验要求掌握CDC的文字处理程序的编写,如何产生自定义字体和自定义插入符,熟悉对CString类的使用。
掌握定时器的使用和DrawText函数的巧妙运用。
掌握CDC的裁减功能。
三实验内容创建一个文本处理应用程序,包含一个主窗口,能产生自定义字体和自定义插入符,模拟卡拉OK字幕变色的功能。
四实验步骤1、生成一个单文档应用程序。
2、部分代码:void CTextView::OnChar(UINT nChar, UINT nRepCnt, UINT nFlags){// TODO: Add your message handler code here and/or call defaultCClientDC dc(this);CFont font;font.CreatePointFont(300,"华文行楷",NULL);CFont *pOldFont=dc.SelectObject(&font);TEXTMETRIC tm;dc.GetTextMetrics(&tm);if(0x0d==nChar){m_strLine.Empty();m_ptOrigin.y+=tm.tmHeight;}else if(0x08==nChar){COLORREF clr=dc.SetTextColor(dc.GetBkColor());dc.TextOut(m_ptOrigin.x,m_ptOrigin.y,m_strLine);m_strLine=m_strLine.Left(m_strLine.GetLength()-1);dc.SetTextColor(clr);}else{m_strLine+=nChar;}CSize sz=dc.GetTextExtent(m_strLine);CPoint pt;pt.x=m_ptOrigin.x+sz.cx;pt.y=m_ptOrigin.y;SetCaretPos(pt);dc.TextOut(m_ptOrigin.x,m_ptOrigin.y,m_strLine);dc.SelectObject(pOldFont);CView::OnChar(nChar, nRepCnt, nFlags);}void CTextView::OnLButtonDown(UINT nFlags, CPoint point){// TODO: Add your message handler code here and/or call default SetCaretPos(point);m_strLine.Empty();m_ptOrigin=point;CView::OnLButtonDown(nFlags, point);}void CTextView::OnTimer(UINT nIDEvent){// TODO: Add your message handler code here and/or call default m_nWidth+=5;CClientDC dc(this);TEXTMETRIC tm;dc.GetTextMetrics(&tm);CRect rect;rect.left=0;rect.top=200;rect.right=m_nWidth;rect.bottom=rect.top+tm.tmHeight;dc.SetTextColor(RGB(255,0,0));CString str;str.LoadString(IDS_WEIXIN);dc.DrawText(str,rect,DT_LEFT);rect.top=150;rect.bottom=rect.top+tm.tmHeight;dc.DrawText(str,rect,DT_RIGHT);CSize sz=dc.GetTextExtent(str);if(m_nWidth>sz.cx){m_nWidth=0;dc.SetTextColor(RGB(0,255,0));dc.TextOut(0,200,str);}CView::OnTimer(nIDEvent);}实验三菜单程序设计一实验目的掌握菜单的工作原理及编写应用,菜单命令消息在MFC框架程序的几个类中的传递顺序和处理过程。