ImageVerifierCode 换一换
格式:DOCX , 页数:80 ,大小:1.90MB ,
资源ID:4758896      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/4758896.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(《Windows程序设计》实验教学大纲.docx)为本站会员(b****5)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

《Windows程序设计》实验教学大纲.docx

1、Windows程序设计实验教学大纲Windows程序设计实验教学大纲Windows程序设计实验教学大纲实验学时:32学时 实验个数:11 实验学分: 1课程性质:(必做) 适用专业: 计算机科学与技术、软件工程、网络工程教材及参考书: Visual C+面向对象与可视化程序设计教程(第三版) 大纲执笔人: 大纲审定人: 郭涛一、实验课的性质与任务本课程实验大纲是面向计算机相关专业学生开设的Windows程序设计(以VC+为开发环境)实验课计划指导大纲,是依据Windows程序设计课程教学计划指导大纲编制。本课程主要讲述了利用Windows API函数和MFC进行简单的Windows程序开发的基

2、本流程,结合该课程教学计划大纲的相应内容,设计了10个单项实验和综合实验,力求提高学生的动手能力,做到理论和实践相结合。使学生在实验过程中掌握Windows程序设计的思想、原理,能使用SDK和MFC实现基于窗口的程序设计。二、实验课程目的与要求1.实验目的:Windows程序设计实验课的开设,是为了使学生更好地理解和掌握运用VC开发环境开发Windows程序设计的基本理论、基本方法和基本技术,强化程序设计能力。2.实验要求:1)在实验中,要求学生个人独立思考,设计算法流程,编写出程序,完成上机调试,最后给出实验报告。2)本课程的学习过程是复杂程序设计的训练过程,要求学生编写的程序结构清楚、正确

3、易读,符合软件工程的规范;a)3) 在实验中更好地理解和掌握VC程序设计这门课程中所学的基本理论和方法,强化程序设计能力。三、实验项目及内容提要Windows程序设计实验课程(1106844037)序号实验项目编号实验名称学时必做选做学分数实验类型内容提要基本操作验证综合设计11Visual C+ 6.0开发环境实验2熟悉Visual C+ 6.0开发环境22Windows应用程序基本框架实验2Windows框架程序设计33Windows绘图试验4GDI绘图44文本的输出方法与字体设置实验2GDI文字输出55键盘消息的响应实验2基本键盘消息响应66鼠标消息的响应实验2基本鼠标消息响应77资源在

4、Windows编程中的应用实验4资源编程88控件API编程4控件编程99在MFC中创建应用程序资源2利用MFC创建资源1010单文档与多文档2文档编程1111综合性实验6数据库编程四、实验内容安排:实验一 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、目的要求:编

5、写第一个Windows程序,理解入口函数Winmain和窗口函数WinProc,掌握消息驱动机制。2、实验内容: 使用Win32 Application模板建立一个Win32工程,编写一个包含WinMain, WinProc的基本Windows程序,并编译、运行,观察结果。3、主要仪器设备及药品Windows 2000+VC 6.0+MSDN实验三 Windows绘图试验(验证性实验 4学时)1、目的要求:理解DC概念,掌握坐标映射的设置方法,熟悉Windows绘图的基本方法和函数。2、实验内容:运用Windows提供的GDI函数,完成窗口图形输出功能。1)将窗口划分为5个区域,并用白色到黑色

6、线性变化的颜色填充这5个区域,画一条斜线穿过这5个区域;源代码:#include#include#includelong WINAPI WndProc(HWND hWnd, UINT iMessage, UINT wParam, LONG lParam);BOOL InitWindowsClass(HINSTANCE hInstance);BOOL InitWindows(HINSTANCE hInstance, int nCmdShow);/主函数int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lp

7、CmdLine, int nCmdShow) MSG Message; if (!InitWindowsClass(hInstance) return FALSE; if (!InitWindows(hInstance, nCmdShow) return FALSE; while (GetMessage(&Message, 0, 0, 0) /消息循环 TranslateMessage(&Message); DispatchMessage(&Message); return Message.wParam;long WINAPI WndProc(HWND hWnd, UINT iMessage,

8、 UINT wParam, LONG lParam) HDC hDC; /定义设备环境句柄 HBRUSH hBrush; /定义画刷的句柄 HPEN hPen; /定义画笔的句柄 PAINTSTRUCT PtStr; /定义指向包含绘图信息的结构体变量 switch (iMessage) /处理消息 case WM_PAINT: /处理绘图消息 MoveWindow(hWnd, 0, 0, 500,400, NULL);/初始化窗口大小 hDC = BeginPaint(hWnd, &PtStr); hPen = (HPEN)GetStockObject(NULL_PEN); /获取系统定义的

9、空画笔 SelectObject(hDC, hPen); /选择画笔 hBrush = (HBRUSH)GetStockObject(BLACK_BRUSH); /获取系统定义的画刷 hPen = CreatePen(PS_SOLID, 2, RGB(255, 0, 0); /创建画笔 SelectObject(hDC, hPen); /选择画笔 /MoveToEx(hDC, 0, 150, NULL); LineTo(hDC, 750,150 ); hBrush = (HBRUSH)GetStockObject(WHITE_BRUSH); SelectObject(hDC,hBrush);

10、Rectangle(hDC,0,0,100,400); hBrush = (HBRUSH)GetStockObject(LTGRAY_BRUSH); SelectObject(hDC, hBrush); Rectangle(hDC, 100,0,200, 400); hBrush = (HBRUSH)GetStockObject(GRAY_BRUSH); SelectObject(hDC, hBrush); Rectangle(hDC,200,0,300, 400); hBrush = (HBRUSH)GetStockObject(DKGRAY_BRUSH); SelectObject(hDC

11、, hBrush); Rectangle(hDC, 300,0,400, 400); hBrush = (HBRUSH)GetStockObject(BLACK_BRUSH); SelectObject(hDC, hBrush); Rectangle(hDC, 400,0,500, 400); hPen = CreatePen(PS_SOLID, 2, RGB(255, 0, 0); /创建画笔 SelectObject(hDC, hPen); /选择画笔 MoveToEx(hDC, 0, 0, NULL); LineTo(hDC, 500,400); DeleteObject(hPen);

12、/删除画笔 DeleteObject(hBrush); /删除画刷 EndPaint(hWnd, &PtStr); /结束绘图 return 0; case WM_DESTROY: /结束应用程序 PostQuitMessage(0); return 0; default:/其他消息处理程序 return(DefWindowProc(hWnd, iMessage, wParam, lParam); BOOL InitWindows(HINSTANCE hInstance, int nCmdShow) /初始化窗口 HWND hWnd; hWnd = CreateWindow(WinFill,

13、/生成窗口 填充示例程序, WS_OVERLAPPEDWINDOW, CW_USEDEFAULT, 0, CW_USEDEFAULT, 0, NULL, NULL, hInstance, NULL); if (!hWnd) return FALSE; ShowWindow(hWnd, nCmdShow); /显示窗口 UpdateWindow(hWnd); return TRUE;BOOL InitWindowsClass(HINSTANCE hInstance) /定义窗口类 WNDCLASS WndClass; WndClass.cbClsExtra = 0; WndClass.cbWnd

14、Extra = 0; WndClass.hbrBackground = (HBRUSH)(GetStockObject(WHITE_BRUSH); WndClass.hCursor = LoadCursor(NULL, IDC_ARROW); WndClass.hIcon = LoadIcon(NULL, END); WndClass.hInstance = hInstance; WndClass.lpfnWndProc = WndProc; WndClass.lpszClassName = WinFill; WndClass.lpszMenuName = NULL; WndClass.sty

15、le = CS_HREDRAW | CS_VREDRAW; return RegisterClass(&WndClass);截图:2)编写一个程序,在屏幕上出现一个圆心沿正弦曲线轨迹移动的实心圆,而且,每隔四分之一周期,圆的填充色和圆的周边颜色都发生变化,同时,圆的半径在四分之一周期之内由正弦曲线幅值的0.2倍至0.6倍线性增长。源代码:#include #include #include #include #define Pi 3.1415926long WINAPI WndProc(HWND hWnd, UINT iMessage, UINT wParam, LONG lParam);do

16、uble dfTheta = 0, dfRange = 100.0; /正弦曲线的角度变量.long i = 0, j = 0;long lCentreX = 0, lCentreY = 0, lRadious = (long)(0.2*dfRange);/定义圆心坐标和圆半径.POINT lpSin100; /定义正弦曲线的点坐标.int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow) / 填写窗口类属性 HWND hWnd; MSG Message; WN

17、DCLASS WndClass; WndClass.style = 0;/填写属性 WndClass.lpfnWndProc = WndProc; WndClass.cbClsExtra = 0; WndClass.cbWndExtra = 0; WndClass.hInstance = hInstance; WndClass.hCursor = LoadCursor(NULL, IDC_ARROW); WndClass.hbrBackground = (HBRUSH)GetStockObject(WHITE_BRUSH); WndClass.lpszMenuName = NULL; WndC

18、lass.lpszClassName = SIN; WndClass.hIcon = LoadIcon(NULL, END); if (!RegisterClass(&WndClass) /注册窗口. MessageBeep(0); return FALSE; hWnd = CreateWindow (SIN, /窗口类名. 4_6, /标题名. WS_OVERLAPPEDWINDOW, /带标题栏,最大/小按钮的窗口 CW_USEDEFAULT, /窗口左上角坐标. 0, CW_USEDEFAULT, /采用缺省的宽度和高度. 0, NULL, /无父窗口. NULL, /无主菜单. hIn

19、stance, /当前实例句柄. NULL); ShowWindow(hWnd, nCmdShow); /显示窗口. UpdateWindow(hWnd); /更新并绘制用户区. for (int j = 0; j100; j+) /生成正弦曲线的点坐标. lpSinj.x = (long)(j * 2 * Pi / 100 * 60); lpSinj.y = (long)(dfRange*sin(j * 2 * Pi / 100); while (GetMessage(&Message, 0, 0, 0) TranslateMessage(&Message); /消息循环. Dispatch

20、Message(&Message); return Message.wParam;long WINAPI WndProc(HWND hWnd, UINT iMessage, UINT wParam, LONG lParam) HDC hDC; /定义设备环境句柄. HBRUSH hBrush; /定义画刷句柄 HPEN hPen; /定义画笔句柄 PAINTSTRUCT PtStr;/定义包含绘图信息的结构体变量 switch (iMessage) case WM_PAINT: /处理绘图消息 hDC = BeginPaint(hWnd, &PtStr); /获得设备环境指针 SetWindo

21、wOrgEx(hDC, -200, -200, NULL);/设置原点坐标 hPen = CreatePen(PS_DASH, 1, RGB(255, 0, 0); /建新画笔 SelectObject(hDC, hPen); /选入画笔 Polyline(hDC, lpSin, 100); /绘制正弦曲线 if (i = 25) /第一个1/4周期. hPen = CreatePen(PS_DASH, 1, RGB(255, 0, 0); hBrush = CreateHatchBrush(HS_BDIAGONAL, RGB(255, 0, 0); lRadious = (long)(dfR

22、ange*0.2 + i % 25 * dfRange*0.4 / 25); /计算半径 else if (i = 50)/第二个1/4周期. hPen = CreatePen(PS_DASH, 1, RGB(0, 255, 0); hBrush = CreateHatchBrush(HS_DIAGCROSS, RGB(0, 255, 0); lRadious = (long)(dfRange*0.2 + i % 25 * dfRange*0.4 / 25); else if (i = 75)/第三个周期. hPen = CreatePen(PS_DASH, 1, RGB(0, 0, 255)

23、; hBrush = CreateHatchBrush(HS_CROSS, RGB(0, 0, 255); lRadious = (long)(dfRange*0.2 + i % 25 * dfRange*0.4 / 25); else/第四个周期. hPen = CreatePen(PS_DASH, 1, RGB(255, 255, 0); hBrush = CreateHatchBrush(HS_VERTICAL, RGB(255, 255, 0); lRadious = (long)(dfRange*0.2 + i % 25 * dfRange*0.4 / 25); SelectObje

24、ct(hDC, hBrush); /选入画刷. SelectObject(hDC, hPen); /选入画笔. lCentreX = lpSini.x; /圆心x坐标. lCentreY = lpSini.y; /圆心y坐标. Ellipse(hDC, lCentreX - lRadious, lCentreY - lRadious, lCentreX + lRadious, lCentreY + lRadious); /画圆 i+; DeleteObject(hPen); /删除画笔 DeleteObject(hBrush); /删除画刷 EndPaint(hWnd, &PtStr); /删

25、除设备环境指针 Sleep(100); /停0.1秒 if (i100) InvalidateRect(hWnd, NULL, 1); /刷新用户区 return 0; case WM_DESTROY: /关闭窗口. PostQuitMessage(0); return 0; default return(DefWindowProc(hWnd, iMessage, wParam, lParam); return 0;截图:3、主要仪器设备及药品Windows 2000+VC 6.0+MSDN实验四 文本的输出方法与字体设置(验证性实验 2学时)1、目的要求:理解字体句柄的念,熟悉Windows

26、文字输出的基本方法和函数,学习字体格式的控制。2、实验内容:(选做1个)1)在窗口中显示出26个英文字母,从左向右字母依次位置提高10个像素单位,并且颜色变为红色,然后回到正常位置;当到达最右端后改变方向从右向左依次变成红色并位置提高10个像素单位。在窗口的第二行显示26个字母,字体从正常到斜体,颜色从黑色到天蓝色不断变换。源代码:#include#include#include#includeLRESULT CALLBACK WndProc(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam);BOOL InitWindowsClass

27、(HINSTANCE hInstance);BOOL InitWindows(HINSTANCE hInstance, int nCmdShow);/主函数int WINAPI WinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow) MSG Message; if (!InitWindowsClass(hInstance) return FALSE; if (!InitWindows(hInstance, nCmdShow)return FALSE; while (GetMess

28、age(&Message, 0, 0, 0)/消息循环 TranslateMessage(&Message); DispatchMessage(&Message); return Message.wParam;/消息处理函数LRESULT CALLBACK WndProc(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam) HDC hDC; /设备句柄 PAINTSTRUCT ps; /画刷结构 int X = 0, Y = 0, i = 0, nCharlen = 26; static int nChar = 0; char lpsz_1 = abcdefghijklmnopqrstuvwxyz; char lpsz_2 = abcdefghijklmnopqrstuvwxyz; static BOOL bLeft = FALSE, bR

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1