资源描述
目的
通过编写三国杀护卫游戏让自己加深对基于对话框的MFC学习 这款界面的设计在背景颜色 布局 角色的创建等,加深对于复选按钮 静态文本 按钮 定时器延时等的操作
设计所需的控件
1:CBUTTON:(按钮):本例中对其身份编制 比如主公:
CMFCButton *button3=new CMFCButton;//创建新的按钮
button3->Create("主公",WS_VISIBLE,CRect(141,2,167,18),this,IDC_BUTTON3);
button3->SetWindowText("主公");
button3->SetTextColor(RGB(255,200,0));//设置文本颜色
button3->MoveWindow(250,2,55,30);//设置与框架最左边的x,y,width,length,在之后设置的是与父窗口间的布局
button3->SetTextHotColor(RGB(255,0,0));
button3->SetMouseCursorHand();
CMFCButton*BS_button3=new CMFCButton;
Movewindow在本编码中为最重要信息
movewindow:函数功能:改变指定窗口的位置和大小.对顶窗口来说,位置和大小取决于屏幕的左上角;对子窗口来说,位置和大小取决于父窗口客户区的左上角.对于Owned窗口,位置和大小取决于屏幕左上角.
函数原型:BOOL MoveWindow( HWND hWnd, int X, int Y, int nWidth, int nHeight, BOOL bRepaint )
2:STATIC :():CStatic类提供了一个Windows静态控件的性能。一个静态控件用来显示一个文本字符串,框,矩形,图标,光标,位图,或增强的图元文件。它可以被用来作为标签,框,或用来分隔其它的控件。一个静态控件不接收输入,也不提供输出;本例用于座次
void CsanguoshahuweiDlg::OnClickedNumber4()
{
// TODO: 在此添加控件通知处理程序代码
CString str4;
if (GetDlgItem(IDC_NUMBER4)->GetWindowText(str4),str4=="NUMBER4")
{
GetDlgItem(IDC_NUMBER4)->SetWindowText("出牌");
}
else
{
GetDlgItem(IDC_NUMBER4)->SetWindowText("NUMBER4");
}
}
//实现出牌 翻牌的技能。
3:checkbox:复选框 只是完成对某事物(本例为血量)的勾选
GetDlgItem(IDC_CHECK_TEST3)->SetWindowText(str),str==true;
4:对话框颜色设置: CRect rect;
CPaintDC dc(this);
GetClientRect(&rect);
dc.FillSolidRect(rect,RGB(0,255,255));
5定时器:计算时间
设计思路
三国杀起源于纸牌游戏 是以血量值 武将技能 主公杀死敌对势力或者被杀而结束 在本实验中 由于编者水平有限 根据自己大一下学期时的裁判法则定出一个“三人
卫战”以主公阵亡或者丞相阵亡而结束
后期思考
对游戏的改进
1:棋牌 棋牌出牌顺序 棋牌的顺序 特别参考斗地主等
2:针对每个武将的出场服装造型技能进行编写
对MFC的深入学习
1:继续学习visualc++工具运用
2:学习雷达知识 掌握对其轨迹 航迹 落点等的认识 再次基础上再次看代码
3:继续编写自己的代码 使其加深对于visual c++的应用
自己的教训
1:狂妄自大 以经验派的认为自己也可以像大学一样自主学习就妄想凭自己之力就短时间学会 不问师兄师姐导师 导致连.exe .rc.dll等搞不明白的情况下就开始功利性的作报告,现在也开始已经走出自己的狂妄 向不同的人交流
2:心情浮躁
C++
MFC
不同点
相同点
代码都是其中最重要的部分,类和函数是其中重要的元素
MFC更注重其框架 尤其再以对话框形式编程(本次设计即是),是资源与代码的结合
都是可以以控制台出结果
C++是建立在控制台的基础上
MFC更具多样性 具有VIEW
DIALOG 和DOCUMENT三种设计模式
展开阅读全文