MFC扫雷完善(适合新手上路)(原左右键同时按的功能)

    本人主要学的是JAVA,现在在自学C++的MFC,在CSDN上下了一个适合新手的教程,现在对其部分进行完善。

教程地址:http://download.csdn.net/download/erwenyisheng/6201315    

(不想花费的可以参考http://blog.csdn.net/yingchunhua365/article/details/16940385)

    该教程中的扫雷游戏缺失扫雷游戏中鼠标左右键同时按的效果,下面是简化的完善。

    由于初学并没有查到左右键同时按的事件,在此将其改为左键触发。

(CT3为自定的名称,原文为2_1)

在t3View.h中添加

int closelei;

int closeflag;

(以上在

“public:

int leftnum;//剩下雷数”

处添加)


在void CT3View::OnLButtonDown(UINT nFlags, CPoint point)中添加以下内容

if(lei[a][b].weitu==0)//这个if是原文就有的,我们添加的是else if
        {
   if(lei[a][b].shumu==-1)
{
jieshu=1; 
KillTimer(1);
Invalidate();
}
            else 
{
lei[a][b].weitu=1;
CRect rect;
rect.left=a*15+10;
rect.right=a*15+25;
rect.top=b*15+50;
rect.bottom=b*15+65;
InvalidateRect(&rect);
}
}else if(lei[a][b].weitu==1){
//双键同按
closelei=0;
closeflag=0;
for(int c=a-1;c for(int d=b-1;d if(c>=0&&c=0&&d {
if((lei[c][d].weitu==2)&&(lei[c][d].shumu!=-1))
{
jieshu=1; 
KillTimer(1);
Invalidate();
}
if(lei[c][d].shumu==-1)
closelei++;
if(lei[c][d].weitu==2)
closeflag++;
}
if (closeflag==closelei)
{
CRect rect;
for(int c=a-1;c for(int d=b-1;d if(c>=0&&c=0&&d {
if(lei[c][d].shumu!=-1)
{
lei[c][d].weitu=1;
rect.left=c*15+10;
rect.right=c*15+25;
rect.top=d*15+50;
rect.bottom=d*15+65;
InvalidateRect(&rect);
}
}
}
}

你可能感兴趣的:(MFC扫雷完善(适合新手上路)(原左右键同时按的功能))