论文部分内容阅读
摘要:任务驱动是一种有效的教学方法,在计算机程序设计类课程教学中具有广泛应用。本文将通过实例方式介绍任务驱动式教学法在Windows应用程序设计课程中的应用。论文首先提出随鼠标移动的动态多彩文字程序设计任务特性,以此为驱动介绍鼠标事件、鼠标位置、文字动态与彩色效果等Windows 程序实现机制及技巧,最终编程实现此任务。实际教学效果表明此法能有效提高学生的应用程序设计能力。
关键词:任务驱动教学法;Windows API函数;事件处理
中图分类号:TP311 文献标识码:A 文章编号:1009-3044(2018)17-0173-02
任务驱动教学法是一种开放式、互动式、目的性与针对性强的教学形式[1]。为实现相应任务,要求学生充分发挥个体主观能动性和创造性,使学生在主体认知和获取知识过程中自然融入教学主导者创立的教学环境中,从而达到知识的主动获取、理解与消化[2]。本文将从Windows应用程序设计课程教学为研究对象,探讨随鼠标移动的动态多彩文字程序设计任务的特性、教学知识点和难点。以此任务为驱动,介绍鼠标事件、鼠标位置、文字动态与彩色效果实现的Windows 程序实现机制及技巧。以期提高学生的应用程序设计能力。
1 动态多彩文字任务
本课任务是利用Windows API函数实现随鼠标移动的动态多彩文字,其效果如图1。程序设计任务要求在Windows Visual Studio集成开发环境中利用WIN 32项目来实现,其标题为动态多彩文字。主要效果为鼠标在Windows窗口中随意移动,文字也跟着移动,文字颜色要求动态变化。
2 主要知识点介绍
1)鼠标事件及鼠标位置。本任务中涉及使用鼠标,因而要求学生掌握鼠标事,主要包括WM_LBUTTONDOWN:产生单击鼠標左键的消息;WM_LBUTTONUP:放开鼠标左键时产生;WM_RBUTTONDOWN:单击鼠标右键时产生;WM_RBUTTONUP:放开鼠标右键时产生;WM_LBUTTONDBLCLK:双击鼠标左键时产生;WM_RBUTTONDBLCLK:双击鼠标右键时产生;WM_MOUSEMOVE:鼠标移动等。
其次,本程序的文字随鼠标移动而移动,因而必须确定鼠标位置。一种方法是利用鼠标事件,其中参数lParam低字节包含当前光标的X坐标值,用LOWORD(lParam)实现;高字节包含当前光标的Y坐标值,用HIWORD(lParam)编程。鼠标事件wParam包含整数值以标识鼠标键的按键状态,其中MK_LBUTTON为按下鼠标左键;MK_MBUTTON鼠标中键;MK_RBUTTON为鼠标右键。鼠标位置的第二种方法是利用Windows API函数BOOL GetCursorPos(LPPOINT lpPoint),其中lpPoint为包含X轴和Y轴坐标值的结构体指针。此函数获取光标的位置通常以屏幕坐标形式给出,但不受包含该光标所在窗口映射模式所造成的影响。
2)文字动态效果。这里需要定时器进行动态显示,因而课程教学需要讲解定时器程序设计基本方法,如图2所示。应用程序首先在WM_CREATE消息事件中利用Windows API函数UINT_PTR SetTimer(HWND hWnd, UINT_PTR nIDEvent, UINT nElapse, TIMERPROC lpTimerFunc)设置时间间隔为nElapse毫秒的定时器。如nElapse=200,即定时器每隔0.2秒发出一条WM_TIMER消息事件。WM_TIMER事件处理主要调用InvalidateRect API函数发出WM_PAINT消息事件,要求系统重新刷新用户区,从而实现文字的动态显示效果。
3)文字彩色效果。Windows应用程序使用宏RGB定义绘图颜色,其形式为RGB(nRed, nGreen,nBlue)。如蓝色值,RGB(0,0,255)。本程序为实现各种动态色彩,声明颜色数组int color[11],并使用文本前景色设置API函数COLORREF SetTextColor( _In_ HDC hdc,_In_ COLORREF crColor)。本程序具体多彩文字效果用SetTextColor(hdc,RGB(255-color[i],color[i],255))实现。
3 编程实现
本任务效果主要在WM_PAINT消息事件处理中实现。程序首先利用API函数GetCursorPos(
关键词:任务驱动教学法;Windows API函数;事件处理
中图分类号:TP311 文献标识码:A 文章编号:1009-3044(2018)17-0173-02
任务驱动教学法是一种开放式、互动式、目的性与针对性强的教学形式[1]。为实现相应任务,要求学生充分发挥个体主观能动性和创造性,使学生在主体认知和获取知识过程中自然融入教学主导者创立的教学环境中,从而达到知识的主动获取、理解与消化[2]。本文将从Windows应用程序设计课程教学为研究对象,探讨随鼠标移动的动态多彩文字程序设计任务的特性、教学知识点和难点。以此任务为驱动,介绍鼠标事件、鼠标位置、文字动态与彩色效果实现的Windows 程序实现机制及技巧。以期提高学生的应用程序设计能力。
1 动态多彩文字任务
本课任务是利用Windows API函数实现随鼠标移动的动态多彩文字,其效果如图1。程序设计任务要求在Windows Visual Studio集成开发环境中利用WIN 32项目来实现,其标题为动态多彩文字。主要效果为鼠标在Windows窗口中随意移动,文字也跟着移动,文字颜色要求动态变化。
2 主要知识点介绍
1)鼠标事件及鼠标位置。本任务中涉及使用鼠标,因而要求学生掌握鼠标事,主要包括WM_LBUTTONDOWN:产生单击鼠標左键的消息;WM_LBUTTONUP:放开鼠标左键时产生;WM_RBUTTONDOWN:单击鼠标右键时产生;WM_RBUTTONUP:放开鼠标右键时产生;WM_LBUTTONDBLCLK:双击鼠标左键时产生;WM_RBUTTONDBLCLK:双击鼠标右键时产生;WM_MOUSEMOVE:鼠标移动等。
其次,本程序的文字随鼠标移动而移动,因而必须确定鼠标位置。一种方法是利用鼠标事件,其中参数lParam低字节包含当前光标的X坐标值,用LOWORD(lParam)实现;高字节包含当前光标的Y坐标值,用HIWORD(lParam)编程。鼠标事件wParam包含整数值以标识鼠标键的按键状态,其中MK_LBUTTON为按下鼠标左键;MK_MBUTTON鼠标中键;MK_RBUTTON为鼠标右键。鼠标位置的第二种方法是利用Windows API函数BOOL GetCursorPos(LPPOINT lpPoint),其中lpPoint为包含X轴和Y轴坐标值的结构体指针。此函数获取光标的位置通常以屏幕坐标形式给出,但不受包含该光标所在窗口映射模式所造成的影响。
2)文字动态效果。这里需要定时器进行动态显示,因而课程教学需要讲解定时器程序设计基本方法,如图2所示。应用程序首先在WM_CREATE消息事件中利用Windows API函数UINT_PTR SetTimer(HWND hWnd, UINT_PTR nIDEvent, UINT nElapse, TIMERPROC lpTimerFunc)设置时间间隔为nElapse毫秒的定时器。如nElapse=200,即定时器每隔0.2秒发出一条WM_TIMER消息事件。WM_TIMER事件处理主要调用InvalidateRect API函数发出WM_PAINT消息事件,要求系统重新刷新用户区,从而实现文字的动态显示效果。
3)文字彩色效果。Windows应用程序使用宏RGB定义绘图颜色,其形式为RGB(nRed, nGreen,nBlue)。如蓝色值,RGB(0,0,255)。本程序为实现各种动态色彩,声明颜色数组int color[11],并使用文本前景色设置API函数COLORREF SetTextColor( _In_ HDC hdc,_In_ COLORREF crColor)。本程序具体多彩文字效果用SetTextColor(hdc,RGB(255-color[i],color[i],255))实现。
3 编程实现
本任务效果主要在WM_PAINT消息事件处理中实现。程序首先利用API函数GetCursorPos(