答案及评分标准
试卷 A 答案及评分标准
1、通过 MFC 手动编写一个完整的 Windows 应用程序的主要步骤是什么?( 分) 、 应用程序的主要步骤是什么?(10 ?( 答、 (1)在 VC6.0 下选择 File/New 菜单命令,打开 New 对话框,选择 Project 标签,从
列表中选择 Win32 Application 选项,并输入工程名称,创建一个空的工程。 (2)通过 File/New 菜单命令,新建一个 C++ Source File。 (3)编写源文件,主要内容如下: 1)头文件中必须要包含
2 ) 定 义 当 前 实 例 HINSTANCE 句 柄 和 主 窗 口 句 柄 HWND , 声 明 回 调 函 数 LRESULT CALLBACK WndProc(HWND,UINT,WPARAM,LPARAM) 3 ) 编 写 主 函 数 int WINAPI WinMain(HINSTANCE hInst,HINSTANCE hPrevInst,LPSTR lpszCmdLIne,int nCmdShow)。 4)在主函数中定义消息 MSG 和窗口类 WNDCLASS,设计窗口类。 5)在主函数中使用 RegisterClass 函数注册窗口 6)在主函数中使用 CreateWindow()函数创建窗口,然后通过 ShowWindow()函数和 UpdateWindow() 函数显示和更新窗口 7)在主函数中定义消息循环,主要函数为 GetMessage(), TranslateMessage()和 DispatchMessage()函数。 (4) 定义窗口处理函数 WndProc, 并在该函数中完成消息的映射处理, 程序的返回值为 DefWindowProc(), 默认消息处理函数。 应用程序的消息处理机制( 二、简述 Windows 应用程序的消息处理机制(8 分) 答:(1)操作系统接收到应用程序的窗口信息,将消息投递到该应用程序的消息队列中。 (2)应用程序在消息循环中调用 GetMessage 函数从消息队列中取出消息。 (3)应用程序调用 DispatchMessage 将消息回传给操作系统。 消息结构体中包含了接收消息的窗口的句柄。 (4)系统利用 WNDCLASS 结构体的 lpfnWndProc 成员保存的窗口过程函数的指针调用窗口过程,对消息进行 处理。 3、如果通过编程的方法创建工具栏?( 分) 如果通过编程的方法创建工具栏?( 如果通过编程的方法创建工具栏?(8 答: (1)构造 CToolBar 对象 (2)调用 CreateEx 或 Create 函数创建工具栏并使之与 CToolBar 对象关联; (3)调用 LoadBitmap 函数加载含有工具栏按钮图像的位图 (4)调用 SetButtons()函数设置按钮样式并把工具栏上的一个按钮与位图中的图像关联。 4、简述无模式对话框的创建与使用步骤。 简述无模式对话框的创建与使用步骤。 (12 简述无模式对话框的创建与使用步骤 ( 分) 答: (1)增加 CDialog 模板 (2)创建对话框类 (3)定义消息处理函数,重载相关的虚函数,如 IDOK,IDCANCEL,PostNcDestroy 等 (4)在视类中定义对话框指针指向创建的对话框类 (5)在视类中增加调用对话框的菜单项 (6)在对话框类中增加对话框成员变量接收视类指针 (7)定
义相关的头文件,需要在视类中添加对话框类、对话框类中添加视类的头文件 (8)实现视类中的菜单消息处理函数 (9)实现对话框类的成员函数,主要用来删除无模式对话框类的指针。 5、列举控件和应用程序之间进行相互访问的主要函数(包括消息处理函数)(8 分) 列举控件和应用程序之间进行相互访问的主要函数(包括消息处理函数)( 。 列举控件和应用程序之间进行相互访问的主要函数 答: (1)控件向应用程序发送消息的函数有: 响应各种控件的消息处理函数,如 ON_BN_CLICKED (2)应用程序向控件发送消息的函数有:
1
LRESULT SendMessage(HWND hWnd, UINT Msg, WPARAM wParam, LPARAM lParam)应用程序向特定的子窗 口发送消息(控件本事就是一种子窗口)。 LONG SendDlgItemMessage(HWND hDlg,int nIDDlgItem,UINT Msg,WPARAM wParam,LPARAM lParam) 通过该函数应用程序向指定的对话框控件发送消息。 GetWindowText()应用程序获取窗口的标题或控件中的文本 GetWindowTextLength()获取应用程序的标题或控件中的文本的