Windows高级编程a.doc_第1页
Windows高级编程a.doc_第2页
Windows高级编程a.doc_第3页
Windows高级编程a.doc_第4页
Windows高级编程a.doc_第5页
已阅读5页,还剩3页未读 继续免费阅读

下载本文档

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

文档简介

江西师范大学20102011学年第一学期期末考试课程名称: Windows 高级编程 A卷 120 分钟 题号一二三四五六七合计满分20303020100实得分班级- 学号- 姓名- 评阅人 得分 一、名词解释(共20分,每题2分) 1、 窗口 2、 MSDN 3、 消息 4、 ACTIVEX控件 5、 SDK6、 句柄7、 API8、 RTTI9、 MFC10、 GDI命题教师(签字)试做教师(签字)系、室主任(签字)评阅人 得分二、简答(共30分,每题10分)1、 Microsoft将对话框分成了哪两类?其区别在哪里?1、 什么是动态链接库,它有什么优点?2、 请说明MFC程序的运行过程。评阅人 得分三、分析题(共30分,每小题10分)下面是一个简单的Windows程序,该程序会生成一个Windows窗口,所生成的窗口会在客户区内显示字符串“Windows”,并能够响应鼠标左键单击事件。如果用户按下鼠标左键,单击窗口的客户区,将会弹出一个消息框。该消息框的标题为“Hello”,消息内容为“World”,并且只有一个确定按钮。请先阅读该程序代码,然后回答相关问题。#include LRESULT CALLBACKWndProc(HWND, UINT, WPARAM, LPARAM);int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow)HWND hWnd;MSG msg;char lpszClassName=Windows;char szTitle=Hello;WNDCLASS wc;wc.style= CS_HREDRAW | CS_VREDRAW;wc.lpfnWndProc= (WNDPROC)WndProc;wc.cbClsExtra= 0;wc.cbWndExtra= 0;wc.hInstance= hInstance;wc.hIcon= LoadIcon(hInstance, NULL);wc.hCursor= LoadCursor(NULL, IDC_ARROW);wc.hbrBackground= (HBRUSH)(COLOR_WINDOW+1);wc.lpszMenuName=NULL;wc.lpszClassName= lpszClassName;RegisterClass(&wc);hWnd = CreateWindow(lpszClassName, szTitle, WS_OVERLAPPEDWINDOW,CW_USEDEFAULT, 0, CW_USEDEFAULT, 0, NULL, NULL, hInstance, NULL);ShowWindow(hWnd, nCmdShow);UpdateWindow(hWnd);while (GetMessage(&msg, NULL, 0, 0) if (GetMessage(&msg, NULL, 0, 0) TranslateMessage(&msg);DispatchMessage(&msg);return msg.wParam;LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)char szHello=Windows;HDC hdc;PAINTSTRUCT ps;RECT rt;switch (message) case WM_DESTROY:PostQuitMessage(0);break;default:return DefWindowProc(hWnd, message, wParam, lParam);return 0;(1) 这是一个Windows程序,请详细解释这个程序的工作过程。(10分)(2) 按照题目要求将省略号处的代码补充完整。(10分)(3) 解释程序中出现的下列标识符的含义。(10分)DefWindowProc CALLBACK HDC WM_DESTROY RECT评阅人 得分四、编程题(共20分)1、 下图是一个MFC的应用程序,窗口菜单项(ID_APP_ABOUT)的caption值为“计算”;如果单击该菜单项,将弹出一个模式Dialog,其上有三个编辑框(从左至右依次为:IDC_EDIT1、IDC_EDIT2、IDC_EDIT3)和一个“结果”按钮(IDC_BUTTON1),程序将直接计算两个编辑框(IDC_EDIT1、IDC_EDIT2)中加数的和,并在最后一个编辑框(IDC_EDIT3)中显示结果;两个编辑框都只允许输入100以内的整数;如果数据校验未通过,将不会进行计算。已知MFC窗口程序包含的应用程序类为:CMyApp,窗口类为CMyWnd,该对话框的类名叫做CAboutDlg。其中CMyApp类中关于消息的相关代码如下:BEGIN_MESSAGE_MAP(CMyWnd,CFrameWnd)ON_COMMAND(ID_APP_ABOUT,OnAbout)END_MESSAGE_MAP()下面是CMyWnd类和CAboutDlg类的头文件以及C+文件的部分内容,请根据给出的代码将指定的函数补充完整:/CMyWnd类的头文件以及C+文件的部分内容class CMyWnd : public CFrameWndpublic: CMyWnd();protected: afx_msg void OnAbout(); DECLARE_MESSAGE_MAP();CMyWnd:CMyWnd() .void CMyWnd:OnAbout()/ 请在此补充相关的代码(4分)CreateDlg();/CAboutDlg类的头文件以及C+文件的部分内容class CAboutDlg: public CDialog/ 与DDX/DDV(对话数据交换、对话数据验证)相关的信息enum IDD = IDD_DIALOG1 ;intm_add1;intm_add2;CStringm_result;protected: virtual void DoDataExchange(CDataExchange* pDX); protected: afx_msg void OnButtonadd(); DECLARE_MESSAGE_MAP();void CExamDlg:DoDataExchange(CDataExchange* pDX)CDialog:DoDataExchange(pDX);/与DDX/DDV相关的代码。DDX_Text(pDX, IDC_EDIT1, m_add1);DDV_MinMaxInt(pDX, m_add1, 1, 100);DDX_Text(pDX, IDC_EDIT2, m_add2);DDV_MinMaxInt(pDX, m_add2, 1, 100);DDX_Text(pDX, IDC_ED

温馨提示

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

评论

0/150

提交评论