首页 > 代码库 > Lesson19循环语句作业

Lesson19循环语句作业

#include <windows.h>#include <math.h>#define WINMAXIMUM 100HWND g_hwnds[WINMAXIMUM] = { 0 };int g_winnum = 0;BOOL CALLBACK EnumWindowsProc(    _In_ HWND   hwnd,    _In_ LPARAM lParam) {    char classname[MAXBYTE] = { 0 };    GetClassNameA(hwnd, classname, MAXBYTE);    if (strcmp("Notepad", classname) == 0)    {        g_hwnds[g_winnum] = hwnd;        g_winnum++;    }    return TRUE;}int main(){    EnumWindows(EnumWindowsProc, NULL);    //完成代码如下:////////////////////////////////////////////////////////    //每排3个窗口分4列排列    /*int i = 0;    int line = 0;    int num = 0;        for (int line=0,  y =0; line<4&&y<1080; line++,y+=230)        {            for (int x = 0,num=0 ; num<3 && x < 1920; num++,x += 230)            {            MoveWindow(g_hwnds[i],x+230, y, 230, 230, TRUE);            i++;        }    }*/    //完成,代码如下://///////////////////////////////////////////////////////////////    //让所有窗口依次从左向右飞过    //for (int i=0; i<WINMAXIMUM;i++)    //{    //    for (int y=0; y<1080;y+=230)    //    {    //        for (int x=0;x<1920;x+=10 )    //        {    //            MoveWindow(g_hwnds[i], x , y, 230, 230, TRUE);    //            Sleep(10);    //        }    //            //    }    //        //}    //代码完成,如下:///////////////////////////////////////////////////////////////////////////////////////////    //让所有窗口依次挨个从左向右飞过    //for (int y = 0; y < 1080 - 230; y += 230)    //{    //    for (int x = 0; x < 1920; x += 5)    //    {    //        for (int i = 0; i < WINMAXIMUM; i++)    //        {    //            MoveWindow(g_hwnds[i], x - 80 * i, y, 230, 230, TRUE);    //            Sleep(5);    //        }    //    }    //}        //完成,代码如下://////////////////////////////////////////////////////////////////////////////////////////    //让窗口排列成    //*    //**    //***    //**    //*    //int i = 0;    //for (int line=-2,  y =0; line<=2; line++,y+=200)    //{    //    for (int x = 0,num=0 ; num<3-abs(line) ; num++,x += 210)    //    {    //        MoveWindow(g_hwnds[i],x, y, 200, 200, TRUE);    //        i++;    //    }    //}    //完成代码如下://////////////////////////////////////////////////////////    //让窗口排列成    //                *    //               **    //              ***    //               **    //                *    //int i = 0;    //for (int line = -2, y = 0; line <= 2; line++, y += 200)    //{    //    for (int x = 1700, num = 0; num < 3 - abs(line); num++, x -= 210)    //    {    //        MoveWindow(g_hwnds[i], x, y, 200, 200, TRUE);    //        i++;    //    }    //}    /////////////////////////////////////////////////////////////    //让窗口分3行,每次每行飞入一个    /*for (int i = 0; i < WINMAXIMUM; i++)    {                for (int x = 0; x < 1920; x += 230)            {                            for (int y = 0; y < 1080 - 230; y +=10)                {                MoveWindow(g_hwnds[i], x - 80 * i, y, 230, 230, TRUE);                Sleep(5);                }            }    }*/////////反弹效果不符合要求,存疑。///////////////////////////////////////////////////////////////////////////////////    //模拟窗口反弹for (int i=0;i<WINMAXIMUM;i++){    int y = 0;    int num = 0;    for (int x=0,n=1;x<1920-210;n++,x+=50)    {                if (n%2==0)        {                        for (int y = num; y <870; y += 10)            {                                MoveWindow(g_hwnds[i], x, y + (870 - y) / (2 * n), 210, 210, TRUE);                                Sleep(5);                            }        }         else        {            for (int y =870; y >0; y -=10)            {                MoveWindow(g_hwnds[i], x, y + (870 - y) /(2*n), 210, 210, TRUE);                Sleep(5);                            }            //y=y+( 870 - y) / 2;        }                    }    }                                            //将数组中奇数下标的窗口从下往上飞,偶数下标的窗口从上往下飞。每次都需要反弹效果//1,遍历数组//for (int i=0;i<WINMAXIMUM;i++)//{//    //2,判断下标奇偶//    if (i%2==1)//    {//        //3,奇数下标,向下飞//        for (int x =0;x<1920;x+=50)//        {////            for (int y = 0; y <870; y += 20)//            {////                //反弹效果?//////                MoveWindow(g_hwnds[i], x, y, 210, 210, TRUE);//                Sleep(5);//            }//        }////    } //    else//    {//        //4,偶数下标,往上飞//        for (int x = 0; x < 1920; x += 50)//        {//            //            for (int y = 870; y>0; y -= 20)//            {////                //反弹效果?////                MoveWindow(g_hwnds[i], x, y, 210, 210, TRUE);//                Sleep(5);//            }//        }//    }//}return 0;}

最后两题做得不符合要求。

Lesson19循环语句作业