C++第六次作业
前言
拿到作业的时候,整个人都不好了,虽然之前和同学说以后一起写游戏,画界面,然而现在的自己对界面的知识一窍不通,虽然同学分享了一些资料,但是通过这次作业,发现自己火候还是不够……
问题描述及仓库地址
参考资料
MFC键值表
虚拟键码VK值大全
虚拟键码
tab控件
MFC简单教程
注:由于VK值网上写的都不一样,便都整合到这里;
开门见山
1.此次作业要求画出计算器界面,于是弱弱的模仿了微软的计算器,勉强画出了第一个界面,但是题目要求还要批量处理,便无脑的想把批量处理画在旁边,但是这又影响了美观,但是又不懂怎么搞,虽然借了本visualC++2010开发权威指南,但好像并没有什么卵用,网上百度了多界面切换的方法,讲道理,看得不是很懂,最后还是问了资深人士,才懂得用tab控件实现多窗口;
2.在键盘输入方面,由于数字键(不是小键盘)及字母键无对应VK值,故采用
/*
* VK_0 - VK_9 are the same as ASCII '0' - '9' (0x30 - 0x39)
* 0x40 : unassigned
* VK_A - VK_Z are the same as ASCII 'A' - 'Z' (0x41 - 0x5A)
*/
以上方式定义相应的按键。
3.部分代码:
键盘输入:
BOOL Cpage1::PreTranslateMessage(MSG* pMsg)
{
//判断是否为键盘消息
if (WM_KEYFIRST <= pMsg->message && pMsg->message <= WM_KEYLAST)
{
if (pMsg->message == WM_KEYDOWN)
{
switch (pMsg->wParam)
{
/*VK_NUMPAD0-VK_NUMPAD9分别对应小键盘0-9*/
/*VK_0-VK_9分别对应数字键盘0-9*/
case VK_NUMPAD0:
OnBnClickedButton20(); break;
//此case 判断 是否按下0键 进行相应操作;
………………
}
4.界面截图
个人感受
第一次做界面,虽然遇到各种不懂,也经常熬夜爆肝,但是过程是艰辛的,成果却是值得自豪的,虽然只是一个小计算器,但是对于之前对界面毫无所知的我却是一种极大的鼓励,前方道路还很崎岖,既然选择了这条路,就应该朝前走,一直走下去……
2016/6/4 1:00 第一个“儿子”诞生~~待完善
To be continue!
你打开前面那扇门的时候,身后的退路就会消失,自始至终,你都只有一条路走——Distance