可视化实验二实现Windows应用程序对键盘与鼠标的响应.doc

上传人:豆**** 文档编号:34435516 上传时间:2022-08-16 格式:DOC 页数:6 大小:61.50KB
返回 下载 相关 举报
可视化实验二实现Windows应用程序对键盘与鼠标的响应.doc_第1页
第1页 / 共6页
可视化实验二实现Windows应用程序对键盘与鼠标的响应.doc_第2页
第2页 / 共6页
点击查看更多>>
资源描述

《可视化实验二实现Windows应用程序对键盘与鼠标的响应.doc》由会员分享,可在线阅读,更多相关《可视化实验二实现Windows应用程序对键盘与鼠标的响应.doc(6页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、如有侵权,请联系网站删除,仅供学习与交流可视化实验二实现Windows应用程序对键盘与鼠标的响应。【精品文档】第 6 页Visual C+面向对象与可视化程序设计实验二实验报告一、实验目的1、使用API函数编制包含各种资源的Windows应用程序; 2、实现Windows应用程序对键盘与鼠标的响应。二、实验内容1、问题描述:(1)创建一个菜单,其中有三个菜单项,分别为“文件”、“计算”和“帮助”,其中,“文件”菜单项包含“打开”、“保存”、“画图”、“退出”等菜单选项;“计算”菜单包含“总和”、“方差”、“均方根”等菜单选项;“帮助”菜单项包含“计算总和帮助”、“计算方差帮助”和“计算均方根帮

2、助”以及“关于”等项 。(2)若单击“画图”菜单项,则绘出P103图形。若在用户区内按下鼠标左键,则动态创建一个包括“删除计算总和”、“添加计算平均值”和“修改计算均方差”三个菜单项的弹出式菜单,由此菜单控制“计算”菜单中菜单项删除、添加与修改。(要求新的弹出式菜单开始时不可用,按下右键后变为可用。) 单击“修改计算均方差”菜单项后,“计算”菜单下的“计算均方差”项改为“线性拟合”,单击“添加计算平均值”菜单项后,“计算”菜单中添加上了“计算平均值”菜单项 。 (3)将光标设定为自己名字中的某个字、图标设定为自己名字中的另一个字。 2、应用程序中所用到的资源、消息,简介主要函数的功能;3、程序

3、实现 4、操作结果三、程序代码#includewindows.h#includeE08700212叶孙晓.hHMENU hmenu,haddmenu;LRESULT CALLBACK WndProc(HWND,UINT,WPARAM,LPARAM);int WINAPI WinMain(HINSTANCE hInstance,HINSTANCE hPrevInst,LPSTR lpszCmdLine,int nCmdShow) HWND hwnd; MSG Msg; HACCEL hAccel; WNDCLASS wndclass; char lpszMenuName=Menu; char l

4、pszClassName=菜单; char lpszTitle=E08700212叶孙晓二; wndclass.style=0; wndclass.lpfnWndProc=WndProc; wndclass.cbClsExtra=0; wndclass.cbWndExtra=0; wndclass.hInstance=hInstance; wndclass.hbrBackground=(HBRUSH)GetStockObject(WHITE_BRUSH); wndclass.lpszMenuName=lpszMenuName; wndclass.lpszClassName=lpszClassN

5、ame; if(!RegisterClass(&wndclass) MessageBeep(0); return FALSE; hwnd=CreateWindow( lpszClassName, lpszTitle, WS_OVERLAPPEDWINDOW, CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, NULL, NULL, hInstance, NULL ShowWindow(hwnd,nCmdShow); UpdateWindow(hwnd); hAccel=LoadAccelerators(hInstance,l

6、pszMenuName); while(GetMessage(&Msg,NULL,0,0) if(!TranslateAccelerator(hwnd,hAccel,&Msg) TranslateMessage(&Msg); DispatchMessage(&Msg); return Msg.wParam;LRESULT CALLBACK WndProc(HWND hwnd,UINT message,WPARAM wParam,LPARAM lParam) static bool draw = false; static bool pingjunzhiadd = true; static bo

7、ol left = true; HDC hdc; PAINTSTRUCT ps; HPEN hp; HBRUSH hb; switch(message) case WM_COMMAND: switch(LOWORD(wParam) case IDM_EXIT: SendMessage(hwnd,WM_DESTROY,0,0); break; case IDM_fangchamodify: ModifyMenu(hmenu,IDM_fangcha,MF_BYCOMMAND,IDM_nihe,线性拟合); DrawMenuBar(hwnd); break; case IDM_pingjunzhia

8、dd: if(pingjunzhiadd) InsertMenu(hmenu,IDM_junfanggen,MF_BYCOMMAND|MF_ENABLED,IDM_pingjunzhi,平均值); DrawMenuBar(hwnd); pingjunzhiadd = false; break; case IDM_DRAW: hmenu = GetMenu(hwnd); draw = true; break; break; case WM_LBUTTONDOWN: if(left) hmenu=GetMenu(hwnd); haddmenu=CreateMenu(); AppendMenu(ha

9、ddmenu,MF_GRAYED,IDM_zonghedelete,删除计算总和); AppendMenu(haddmenu,MF_GRAYED,IDM_fangchamodify,修改计算方差); AppendMenu(haddmenu,MF_GRAYED,IDM_pingjunzhiadd,添加计算平均值); InsertMenu(hmenu,3,MF_POPUP|MF_BYPOSITION,(UINT)haddmenu,修改菜单); DrawMenuBar(hwnd); left = false; break; case WM_RBUTTONDOWN: EnableMenuItem(ha

10、ddmenu,IDM_zonghedelete,MF_ENABLED); EnableMenuItem(haddmenu,IDM_fangchamodify,MF_ENABLED); EnableMenuItem(haddmenu,IDM_pingjunzhiadd,MF_ENABLED); DrawMenuBar(hwnd); break; case WM_PAINT: if(draw) hdc = BeginPaint (hwnd, &ps); SetMapMode(hdc,MM_TEXT); Rectangle(hdc,130,60,270,200); hb=CreateHatchBru

11、sh(HS_CROSS,RGB(255,0,0); SelectObject(hdc,hb); Ellipse(hdc,130,70,270,190); hp=CreatePen(PS_DASHDOT,1,RGB(0,255,0); SelectObject(hdc,hp); MoveToEx(hdc,100,130,NULL); LineTo(hdc,300,130); MoveToEx(hdc,200,30,NULL); LineTo(hdc,200,230); EndPaint(hwnd,&ps); DeleteObject(hp); DeleteObject(hb); break; c

12、ase WM_DESTROY: PostQuitMessage(0); break; default: return DefWindowProc(hwnd,message,wParam,lParam); return 0;头文件#define IDM_ADDMENU 14#define IDM_DELMENU 16#define IDM_OPEN 11#define IDM_SAVE 13#define IDM_lcw 17#define IDM_DRAW 12#define IDM_EXIT 15 #define IDM_zonghe 18 #define IDM_fangcha 19 #d

13、efine IDM_junfanggen 21 #define IDM_zonghehelp 22 #define IDM_fangchahelp 23 #define IDM_junfanggenhelp 24 #define IDM_ABOUT 20#define IDM_zonghedelete 30#define IDM_fangchamodify 31#define IDM_pingjunzhiadd 32#define IDM_nihe 33#define IDM_pingjunzhi 34资源文件/Microsoft Developer Studio generated reso

14、urce script.#include resource.h#define APSTUDIO_READONLY_SYMBOLS/ Generated from the TEXTINCLUDE 2 resource.#include afxres.h#includewindows.h#includeE08700212叶孙晓.hE08700212 ICON D:E08700212二E08700212.ICOE08700212 CURSOR D:E08700212二E08700212.CURMenu MENU DISCARDABLE POPUP文件(&F) MENUITEM打开(&O)tCtrl+

15、O, IDM_OPEN MENUITEM画图(&G), IDM_DRAW MENUITEM保存(&S), IDM_SAVE MENUITEM另存为(&A), IDM_lcw MENUITEM SEPARATOR MENUITEM退出(&X), IDM_EXIT POPUP计算(&C) MENUITEM计算总和(&S), IDM_zonghe MENUITEM计算方差(&D), IDM_fangcha MENUITEM线性拟合, IDM_junfanggen POPUP帮助(&H) MENUITEM计算总和的帮助, IDM_zonghehelp MENUITEM计算方差的帮助, IDM_fang

16、chahelp MENUITEM计算均方根的帮助, IDM_junfanggenhelp MENUITEM SEPARATOR MENUITEM关于(&A), IDM_ABOUT#undef APSTUDIO_READONLY_SYMBOLS/ Chinese (中国) resources#if !defined(AFX_RESOURCE_DLL) | defined(AFX_TARG_CHS)#ifdef _WIN32LANGUAGE LANG_CHINESE, SUBLANG_CHINESE_SIMPLIFIED#pragma code_page(936)#endif /_WIN32#if

17、def APSTUDIO_INVOKED/ TEXTINCLUDE1 TEXTINCLUDE DISCARDABLE BEGIN resource.h0END2 TEXTINCLUDE DISCARDABLE BEGIN #include afxres.hrn #includewindows.hrn #includeE08700212叶孙晓.hrn E08700212 ICON D:E08700212二E08700212.ICOrn E08700212 CURSOR D:E08700212二E08700212.CURrn Menu MENU DISCARDABLErn rn POPUP文件(&

18、F)rn rn MENUITEM打开(&O)tCtrl+O, IDM_OPEN rn MENUITEM画图(&G), IDM_DRAW rn MENUITEM保存(&S), IDM_SAVE MENUITEM另存为(&A), IDM_lcw MENUITEM SEPARATORrn MENUITEM退出(&X), IDM_EXITrn rn rn POPUP计算(&C)rn rn MENUITEM计算总和(&S), IDM_zonghe rn MENUITEM计算方差(&D), IDM_fangcharn MENUITEM线性拟合, IDM_junfanggenrn rn rn POPUP帮助

19、(&H)rn rn MENUITEM计算总和的帮助, IDM_zonghehelprn MENUITEM计算方差的帮助, IDM_fangchahelprn MENUITEM计算均方根的帮助, IDM_junfanggenhelprn MENUITEM SEPARATORrn MENUITEM关于(&A), IDM_ABOUTrn 0END3 TEXTINCLUDE DISCARDABLE BEGIN rn 0END#endif / APSTUDIO_INVOKED#endif / Chinese (中国) resources#ifndef APSTUDIO_INVOKED/ Generated from the TEXTINCLUDE 3 resource.#endif 五、实验心得通过这次实验学会了使用API函数编制包含各种资源的Windows应用程序,在实验过程中,光标的设置,课本上对这块阐述的很简短,很多都需要自己去理解。调用自己命名光标这个函数。wndclass.hCursor=LoadCursor(GetModuleHandle(NULL),E08700211); /窗口采用光标

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 高考资料

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁