您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 项目/工程管理 > 《Windows程序设计》
《Windows程序设计》实验教学大纲实验学时:32学时实验个数:11实验学分:1课程性质:(必做)适用专业:计算机科学与技术、软件工程、网络工程教材及参考书:《VisualC++面向对象与可视化程序设计教程》(第三版)大纲执笔人:冯朝胜大纲审定人:郭涛一、实验课的性质与任务本课程实验大纲是面向计算机相关专业学生开设的《Windows程序设计》(以VC++为开发环境)实验课计划指导大纲,是依据《Windows程序设计》课程教学计划指导大纲编制。本课程主要讲述了利用WindowsAPI函数和MFC进行简单的Windows程序开发的基本流程,结合该课程教学计划大纲的相应内容,设计了10个单项实验和综合实验,力求提高学生的动手能力,做到理论和实践相结合。使学生在实验过程中掌握Windows程序设计的思想、原理,能使用SDK和MFC实现基于窗口的程序设计。二、实验课程目的与要求1.实验目的:Windows程序设计实验课的开设,是为了使学生更好地理解和掌握运用VC开发环境开发Windows程序设计的基本理论、基本方法和基本技术,强化程序设计能力。2.实验要求:1)在实验中,要求学生个人独立思考,设计算法流程,编写出程序,完成上机调试,最后给出实验报告。2)本课程的学习过程是复杂程序设计的训练过程,要求学生编写的程序结构清楚、正确易读,符合软件工程的规范;a)3)在实验中更好地理解和掌握VC程序设计这门课程中所学的基本理论和方法,强化程序设计能力。三、实验项目及内容提要《Windows程序设计》实验课程(1106844037)序号实验项目编号实验名称学时必做选做学分数实验类型内容提要基本操作验证综合设计11VisualC++6.0开发环境实验2√√熟悉VisualC++6.0开发环境22Windows应用程序基本框架实验2√√Windows框架程序设计33Windows绘图试验4√√GDI绘图44文本的输出方法与字体设置实验2√√GDI文字输出55键盘消息的响应实验2√√基本键盘消息响应66鼠标消息的响应实验2√√基本鼠标消息响应77资源在Windows编程中的应用实验4√√资源编程88控件API编程4√√控件编程99在MFC中创建应用程序资源2√√利用MFC创建资源1010单文档与多文档2√√文档编程1111综合性实验6√√√数据库编程四、实验内容安排:实验一VisualC++6.0开发环境实验(验证性实验2学时)1、目的要求:了解VisualC++6.0的特点,熟悉VisualC++6.0的开发环境。2、实验内容:了解和熟悉开发环境,对各种菜单功能,工程文件管理和MSDN帮助功能有完整的了解。3、主要仪器设备及药品Windows2000+VC6.0+MSDN实验二Windows应用程序基本框架实验(验证性实验2学时)1、目的要求:编写第一个Windows程序,理解入口函数Winmain和窗口函数WinProc,掌握消息驱动机制。2、实验内容:使用Win32Application模板建立一个Win32工程,编写一个包含WinMain,WinProc的基本Windows程序,并编译、运行,观察结果。#includestdafx.h#includeresource.h#defineMAX_LOADSTRING100//GlobalVariables:HINSTANCEhInst;//currentinstanceTCHARszTitle[MAX_LOADSTRING];//ThetitlebartextTCHARszWindowClass[MAX_LOADSTRING];//Thetitlebartext//Fowarddeclarationsoffunctionsincludedinthiscodemodule:ATOMMyRegisterClass(HINSTANCEhInstance);BOOLInitInstance(HINSTANCE,int);LRESULTCALLBACKWndProc(HWND,UINT,WPARAM,LPARAM);LRESULTCALLBACKAbout(HWND,UINT,WPARAM,LPARAM);intAPIENTRYWinMain(HINSTANCEhInstance,HINSTANCEhPrevInstance,LPSTRlpCmdLine,intnCmdShow){//TODO:Placecodehere.MSGmsg;HACCELhAccelTable;//InitializeglobalstringsLoadString(hInstance,IDS_APP_TITLE,szTitle,MAX_LOADSTRING);LoadString(hInstance,IDC_SDK,szWindowClass,MAX_LOADSTRING);MyRegisterClass(hInstance);//Performapplicationinitialization:if(!InitInstance(hInstance,nCmdShow)){returnFALSE;}hAccelTable=LoadAccelerators(hInstance,(LPCTSTR)IDC_SDK);//Mainmessageloop:while(GetMessage(&msg,NULL,0,0)){if(!TranslateAccelerator(msg.hwnd,hAccelTable,&msg)){TranslateMessage(&msg);DispatchMessage(&msg);}}returnmsg.wParam;}ATOMMyRegisterClass(HINSTANCEhInstance){WNDCLASSEXwcex;wcex.cbSize=sizeof(WNDCLASSEX);wcex.style=CS_HREDRAW|CS_VREDRAW;wcex.lpfnWndProc=(WNDPROC)WndProc;wcex.cbClsExtra=0;wcex.cbWndExtra=0;wcex.hInstance=hInstance;wcex.hIcon=LoadIcon(hInstance,(LPCTSTR)IDI_SDK);wcex.hCursor=LoadCursor(NULL,IDC_ARROW);wcex.hbrBackground=(HBRUSH)(COLOR_WINDOW+1);wcex.lpszMenuName=(LPCSTR)IDC_SDK;wcex.lpszClassName=szWindowClass;wcex.hIconSm=LoadIcon(wcex.hInstance,(LPCTSTR)IDI_SMALL);returnRegisterClassEx(&wcex);}////FUNCTION:InitInstance(HANDLE,int)////PURPOSE:Savesinstancehandleandcreatesmainwindow////COMMENTS:////Inthisfunction,wesavetheinstancehandleinaglobalvariableand//createanddisplaythemainprogramwindow.//BOOLInitInstance(HINSTANCEhInstance,intnCmdShow){HWNDhWnd;hInst=hInstance;//StoreinstancehandleinourglobalvariablehWnd=CreateWindow(szWindowClass,szTitle,WS_OVERLAPPEDWINDOW,CW_USEDEFAULT,0,CW_USEDEFAULT,0,NULL,NULL,hInstance,NULL);if(!hWnd){returnFALSE;}ShowWindow(hWnd,nCmdShow);UpdateWindow(hWnd);returnTRUE;}LRESULTCALLBACKWndProc(HWNDhWnd,UINTmessage,WPARAMwParam,LPARAMlParam){intwmId,wmEvent;PAINTSTRUCTps;HDChdc;TCHARszHello[MAX_LOADSTRING];LoadString(hInst,IDS_HELLO,szHello,MAX_LOADSTRING);switch(message){caseWM_COMMAND:wmId=LOWORD(wParam);wmEvent=HIWORD(wParam);//Parsethemenuselections:switch(wmId){caseIDM_ABOUT:DialogBox(hInst,(LPCTSTR)IDD_ABOUTBOX,hWnd,(DLGPROC)About);break;caseIDM_EXIT:DestroyWindow(hWnd);break;default:returnDefWindowProc(hWnd,message,wParam,lParam);}break;caseWM_PAINT:hdc=BeginPaint(hWnd,&ps);RECTrt;GetClientRect(hWnd,&rt);DrawText(hdc,你好,strlen(你好),&rt,DT_CENTER);EndPaint(hWnd,&ps);break;caseWM_DESTROY:PostQuitMessage(0);break;default:returnDefWindowProc(hWnd,message,wParam,lParam);}return0;}//Mesagehandlerforaboutbox.LRESULTCALLBACKAbout(HWNDhDlg,UINTmessage,WPARAMwParam,LPARAMlParam){switch(message){caseWM_INITDIALOG:returnTRUE;caseWM_COMMAND:if(LOWORD(wParam)==IDOK||LOWORD(wParam)==IDCANCEL){EndDialog(hDlg,LOWORD(wParam));returnTRUE;}break;}returnFALSE;}3、主要仪器设备及药品Windows2000+VC6.0+MSDN实验三Windows绘图试验(验证性实验4学时)1、目的要求:理解DC概念,掌握坐标映射的设置方法,熟悉Windows绘图的基本方法和函数。2、实验内容:运用Windows提供的GDI函数,完成窗口图形输出功能。1)将窗口划分为5个区域,并用白色到黑色线性变化的颜色填充这5个区域,画一条斜线穿过这5个区域;#includewindows.h#includestring.h#includestdlib.h#includestdio.hLRESULTCALLBACKWndProc(HWND,UINT,WPARAM,LPARAM);intWINAPIWinMain(HINSTANCEhInstance,HINSTANCEhPrevInst,LPSTRlpszCmdLine,intnCmdShow){HWNDhwnd;MSGMsg;WNDCLASSwndclass;charlpszClassName[]=qwer;charlpszTitle[]=My_Drawing;wndclass.style=0;wndclass.lpfnWndProc=WndProc;wndclass.cbClsExtra=0;wndclass.cbWndExtra=0;wndclass.hInstance=hInstance;wndclass.hIcon=LoadIcon(NULL,IDI_
本文标题:《Windows程序设计》
链接地址:https://www.777doc.com/doc-6007013 .html