结对编程-带UI的小初高数学学习软件-分析总结
Posted mekaku
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了结对编程-带UI的小初高数学学习软件-分析总结相关的知识,希望对你有一定的参考价值。
开发环境选择的是VS2015,使用Win32 API进行开发。我主要负责软件UI的设计和实现,队友负责算式的计算,最后一起实现短信验证码的发送功能,再进行整合。
代码复用的主要部分是生成题目的部分。
UI界面的实现:
并没有使用 已经将已经将Windows界面程序的创建过程完全封装的Qt或者MFC进行实现,而是比较底层的使用Win32 API 手动创建窗口以及各种需要用到的窗口控件和手写消息处理函数。怎样做的坏处很明显,就是会导致巨大的代码量以及长久的开发周期,但对于理解Windows窗口程序的底层实现原理会相当有帮助。
整个程序只创建了一个窗口,采用Dialog控件作为子窗体,将Edit,Button,等控件布局在Dialog上,组装成为一个类,用来表示一个界面,在进行界面切换时只需要对不同的类的实体进行新建和删除操作就行了。
每一个界面可能涉及到的操作和逻辑全部放到Dialog控件的消息处理函数里面实现,使程序结构更加分明。
短信验证码:
采用curl和OpeSSL实现发送短信验证码功能,因为软件下载和环境搭建过程相当繁琐。。。
经验与总结:
MSDN是个好东西。
加深了对Windows窗口程序运行机制的了解。
认识到了WM_COMMAND消息与WM_NOTIFY的区别。WM_NOTIFY与WM_COMMAND消息的相同之处在于都携带两个参数wParam和lParam,wParam存放的是事件种类和控件的ID,不同之处在于WM_COMMAND的lParam只存放了控件的句柄,而WM_NOTIFY存放的是一个NMHDR指针。不同的控件可以按照规则对NMHDR进行扩充,因此WM_NOTIFY消息传送的信息量可以相当的大。
个人觉得一个比较好的实现代码复用的方法是做好封装,设计好函数的IO接口和实现的功能,在再次需要实现同样的功能时能够直接进行调用。
结对编程还让我明白了代码规范和注释的重要性。
以上是关于结对编程-带UI的小初高数学学习软件-分析总结的主要内容,如果未能解决你的问题,请参考以下文章