SOUI官方论坛

 找回密码
 立即注册
查看: 480|回复: 8

代码测试贴

[复制链接]
  • TA的每日心情
    开心
    1 小时前
  • 签到天数: 36 天

    [LV.5]常住居民I

    378

    主题

    838

    帖子

    8011

    积分

    管理员

    Rank: 9Rank: 9Rank: 9

    积分
    8011
    发表于 2019-8-14 21:19:44 | 显示全部楼层 |阅读模式
    1. void CMainDlg::CreateSlicesWnd(int sliceNum)//创建分屏
    2. {
    3.         SLOG_INFO("CMainDlg::CreateSlicesWnd()");
    4.         printf(SStringA().Format("CreateSlicesWnd num:%d -------------------- beg ***ke \n", sliceNum));

    5.         if (sliceNum > SLICE_WINDOWS)//如果大于最大分屏数则退出 用此方法有***问题
    6.                 return;
    7.         SWindow *video_wnd = FindChildByName("video");
    8.         if (video_wnd)
    9.         {
    10.                 CRect rect = video_wnd->GetWindowRect();
    11.                 int dx = 100 / (int)sqrt((double)sliceNum);
    12.                 int dy = 100 / (int)sqrt((double)sliceNum);
    13.                 int left = 0;
    14.                 int right = 0;
    15.                 int top = 0;
    16.                 int buttom = 0;
    17.                 int nNum = 0;

    18.                 SStringT strDlg;
    19.                 stringstream sTemp;
    20.                 std::string str("");
    21.                 std::string strLeft("");
    22.                 std::string strtop("");
    23.                
    24.                 for (int i = 1; i <= (int)sqrt((double)sliceNum); i++)
    25.                 {
    26.                         strLeft = "0,";
    27.                         strtop = "[1,%";

    28.                         for (int j = 1; j <= (int)sqrt((double)sliceNum); j++)
    29.                         {
    30.                                 strDlg.Format(_T("%d"), nNum);

    31.                                 left = (j - 1)*dx;
    32.                                 right = j*dx;
    33.                                 top = (i - 1)*dy;
    34.                                 buttom = i*dy;

    35.                                 if (j != 1)
    36.                                 {
    37.                                         strLeft = "[1,";
    38.                                         strtop = "{0,%";
    39.                                 }

    40.                                 str += "<window pos="";
    41.                                 str += strLeft;
    42.                                 str += strtop;

    43.                                 sTemp << right;
    44.                                 str += sTemp.str();
    45.                                 str += ",%";

    46.                                 sTemp.str("");
    47.                                 sTemp << buttom;
    48.                                 str += sTemp.str();
    49.                                 str += "" colorBkgnd = "RGB(0, 0, 0)" name = "video_show";

    50.                                 sTemp.str("");
    51.                                 sTemp << nNum;
    52.                                 str += sTemp.str();
    53.                                 str += ""><realwnd pos = "3, 3, -3, -3" name = "vlcwnd";
    54.                                 str += sTemp.str();
    55.                                 str += "" wndclass = "videoforms" show="1"><realwnd pos = "0,0,-0,-0" name = "videodlg";
    56.                                 str += sTemp.str();
    57.                                 str += "" wndclass = "videoforms"></realwnd></realwnd></window>";//cache = "1"
    58.                                 nNum++;
    59.                         }
    60.                 }
    61.                 video_wnd->CreateChildren(S_CA2W(str.c_str()));

    62.                 video_wnd->Invalidate();

    63.                 printf(SStringA().Format("CreateSlicesWnd num:%d -------------------- end ***ke \n", sliceNum));
    64.         }
    65. }
    复制代码


  • TA的每日心情
    开心
    1 小时前
  • 签到天数: 36 天

    [LV.5]常住居民I

    378

    主题

    838

    帖子

    8011

    积分

    管理员

    Rank: 9Rank: 9Rank: 9

    积分
    8011
     楼主| 发表于 2019-8-14 21:53:14 | 显示全部楼层
    1. void CMainDlg::CreateSlicesWnd(int sliceNum)//创建分屏
    2. {
    3.         SLOG_INFO("CMainDlg::CreateSlicesWnd()");
    4.         printf(SStringA().Format("CreateSlicesWnd num:%d -------------------- beg ***ke \n", sliceNum));

    5.         if (sliceNum > SLICE_WINDOWS)//如果大于最大分屏数则退出 用此方法有***问题
    6.                 return;
    7.         SWindow *video_wnd = FindChildByName("video");
    8.         if (video_wnd)
    9.         {
    10.                 CRect rect = video_wnd->GetWindowRect();
    11.                 int dx = 100 / (int)sqrt((double)sliceNum);
    12.                 int dy = 100 / (int)sqrt((double)sliceNum);
    13.                 int left = 0;
    14.                 int right = 0;
    15.                 int top = 0;
    16.                 int buttom = 0;
    17.                 int nNum = 0;

    18.                 SStringT strDlg;
    19.                 stringstream sTemp;
    20.                 std::string str("");
    21.                 std::string strLeft("");
    22.                 std::string strtop("");
    23.                
    24.                 for (int i = 1; i <= (int)sqrt((double)sliceNum); i++)
    25.                 {
    26.                         strLeft = "0,";
    27.                         strtop = "[1,%";

    28.                         for (int j = 1; j <= (int)sqrt((double)sliceNum); j++)
    29.                         {
    30.                                 strDlg.Format(_T("%d"), nNum);

    31.                                 left = (j - 1)*dx;
    32.                                 right = j*dx;
    33.                                 top = (i - 1)*dy;
    34.                                 buttom = i*dy;

    35.                                 if (j != 1)
    36.                                 {
    37.                                         strLeft = "[1,";
    38.                                         strtop = "{0,%";
    39.                                 }

    40.                                 str += "<window pos="";
    41.                                 str += strLeft;
    42.                                 str += strtop;

    43.                                 sTemp << right;
    44.                                 str += sTemp.str();
    45.                                 str += ",%";

    46.                                 sTemp.str("");
    47.                                 sTemp << buttom;
    48.                                 str += sTemp.str();
    49.                                 str += "" colorBkgnd = "RGB(0, 0, 0)" name = "video_show";

    50.                                 sTemp.str("");
    51.                                 sTemp << nNum;
    52.                                 str += sTemp.str();
    53.                                 str += ""><realwnd pos = "3, 3, -3, -3" name = "vlcwnd";
    54.                                 str += sTemp.str();
    55.                                 str += "" wndclass = "videoforms" show="1"><realwnd pos = "0,0,-0,-0" name = "videodlg";
    56.                                 str += sTemp.str();
    57.                                 str += "" wndclass = "videoforms"></realwnd></realwnd></window>";//cache = "1"
    58.                                 nNum++;
    59.                         }
    60.                 }
    61.                 video_wnd->CreateChildren(S_CA2W(str.c_str()));

    62.                 video_wnd->Invalidate();

    63.                 printf(SStringA().Format("CreateSlicesWnd num:%d -------------------- end ***ke \n", sliceNum));
    64.         }
    65. }
    复制代码


  • TA的每日心情
    开心
    1 小时前
  • 签到天数: 36 天

    [LV.5]常住居民I

    378

    主题

    838

    帖子

    8011

    积分

    管理员

    Rank: 9Rank: 9Rank: 9

    积分
    8011
     楼主| 发表于 2019-8-14 22:54:57 | 显示全部楼层
    [code=cpp]void CMainDlg::CreateSlicesWnd(int sliceNum)//创建分屏
    {
            SLOG_INFO("CMainDlg::CreateSlicesWnd()");
            printf(SStringA().Format("CreateSlicesWnd num:%d -------------------- beg ***ke \n", sliceNum));

            if (sliceNum > SLICE_WINDOWS)//如果大于最大分屏数则退出 用此方法有***问题
                    return;
            SWindow *video_wnd = FindChildByName("video");
            if (video_wnd)
            {
                    CRect rect = video_wnd->GetWindowRect();
                    int dx = 100 / (int)sqrt((double)sliceNum);
                    int dy = 100 / (int)sqrt((double)sliceNum);
                    int left = 0;
                    int right = 0;
                    int top = 0;
                    int buttom = 0;
                    int nNum = 0;

                    SStringT strDlg;
                    stringstream sTemp;
                    std::string str("");
                    std::string strLeft("");
                    std::string strtop("");
                   
                    for (int i = 1; i <= (int)sqrt((double)sliceNum); i++)
                    {
                            strLeft = "0,";
                            strtop = "[1,%";

                            for (int j = 1; j <= (int)sqrt((double)sliceNum); j++)
                            {
                                    strDlg.Format(_T("%d"), nNum);

                                    left = (j - 1)*dx;
                                    right = j*dx;
                                    top = (i - 1)*dy;
                                    buttom = i*dy;

                                    if (j != 1)
                                    {
                                            strLeft = "[1,";
                                            strtop = "{0,%";
                                    }

                                    str += "<window pos="";
                                    str += strLeft;
                                    str += strtop;

                                    sTemp << right;
                                    str += sTemp.str();
                                    str += ",%";

                                    sTemp.str("");
                                    sTemp << buttom;
                                    str += sTemp.str();
                                    str += "" colorBkgnd = "RGB(0, 0, 0)" name = "video_show";

                                    sTemp.str("");
                                    sTemp << nNum;
                                    str += sTemp.str();
                                    str += ""><realwnd pos = "3, 3, -3, -3" name = "vlcwnd";
                                    str += sTemp.str();
                                    str += "" wndclass = "videoforms" show="1"><realwnd pos = "0,0,-0,-0" name = "videodlg";
                                    str += sTemp.str();
                                    str += "" wndclass = "videoforms"></realwnd></realwnd></window>";//cache = "1"
                                    nNum++;
                            }
                    }
                    video_wnd->CreateChildren(S_CA2W(str.c_str()));

                    video_wnd->Invalidate();

                    printf(SStringA().Format("CreateSlicesWnd num:%d -------------------- end ***ke \n", sliceNum));
            }
    }[/code]
    回复

    使用道具 举报

  • TA的每日心情
    开心
    1 小时前
  • 签到天数: 36 天

    [LV.5]常住居民I

    378

    主题

    838

    帖子

    8011

    积分

    管理员

    Rank: 9Rank: 9Rank: 9

    积分
    8011
     楼主| 发表于 2019-8-14 22:55:08 | 显示全部楼层
    1. void CMainDlg::CreateSlicesWnd(int sliceNum)//创建分屏
    2. {
    3.         SLOG_INFO("CMainDlg::CreateSlicesWnd()");
    4.         printf(SStringA().Format("CreateSlicesWnd num:%d -------------------- beg ***ke \n", sliceNum));

    5.         if (sliceNum > SLICE_WINDOWS)//如果大于最大分屏数则退出 用此方法有***问题
    6.                 return;
    7.         SWindow *video_wnd = FindChildByName("video");
    8.         if (video_wnd)
    9.         {
    10.                 CRect rect = video_wnd->GetWindowRect();
    11.                 int dx = 100 / (int)sqrt((double)sliceNum);
    12.                 int dy = 100 / (int)sqrt((double)sliceNum);
    13.                 int left = 0;
    14.                 int right = 0;
    15.                 int top = 0;
    16.                 int buttom = 0;
    17.                 int nNum = 0;

    18.                 SStringT strDlg;
    19.                 stringstream sTemp;
    20.                 std::string str("");
    21.                 std::string strLeft("");
    22.                 std::string strtop("");
    23.                
    24.                 for (int i = 1; i <= (int)sqrt((double)sliceNum); i++)
    25.                 {
    26.                         strLeft = "0,";
    27.                         strtop = "[1,%";

    28.                         for (int j = 1; j <= (int)sqrt((double)sliceNum); j++)
    29.                         {
    30.                                 strDlg.Format(_T("%d"), nNum);

    31.                                 left = (j - 1)*dx;
    32.                                 right = j*dx;
    33.                                 top = (i - 1)*dy;
    34.                                 buttom = i*dy;

    35.                                 if (j != 1)
    36.                                 {
    37.                                         strLeft = "[1,";
    38.                                         strtop = "{0,%";
    39.                                 }

    40.                                 str += "<window pos="";
    41.                                 str += strLeft;
    42.                                 str += strtop;

    43.                                 sTemp << right;
    44.                                 str += sTemp.str();
    45.                                 str += ",%";

    46.                                 sTemp.str("");
    47.                                 sTemp << buttom;
    48.                                 str += sTemp.str();
    49.                                 str += "" colorBkgnd = "RGB(0, 0, 0)" name = "video_show";

    50.                                 sTemp.str("");
    51.                                 sTemp << nNum;
    52.                                 str += sTemp.str();
    53.                                 str += ""><realwnd pos = "3, 3, -3, -3" name = "vlcwnd";
    54.                                 str += sTemp.str();
    55.                                 str += "" wndclass = "videoforms" show="1"><realwnd pos = "0,0,-0,-0" name = "videodlg";
    56.                                 str += sTemp.str();
    57.                                 str += "" wndclass = "videoforms"></realwnd></realwnd></window>";//cache = "1"
    58.                                 nNum++;
    59.                         }
    60.                 }
    61.                 video_wnd->CreateChildren(S_CA2W(str.c_str()));

    62.                 video_wnd->Invalidate();

    63.                 printf(SStringA().Format("CreateSlicesWnd num:%d -------------------- end ***ke \n", sliceNum));
    64.         }
    65. }
    复制代码


  • TA的每日心情
    开心
    1 小时前
  • 签到天数: 36 天

    [LV.5]常住居民I

    378

    主题

    838

    帖子

    8011

    积分

    管理员

    Rank: 9Rank: 9Rank: 9

    积分
    8011
     楼主| 发表于 2019-8-14 22:56:04 | 显示全部楼层
    [code=cpp]void CMainDlg::CreateSlicesWnd(int sliceNum)//创建分屏
    {
            SLOG_INFO("CMainDlg::CreateSlicesWnd()");
            printf(SStringA().Format("CreateSlicesWnd num:%d -------------------- beg ***ke \n", sliceNum));

            if (sliceNum > SLICE_WINDOWS)//如果大于最大分屏数则退出 用此方法有***问题
                    return;
            SWindow *video_wnd = FindChildByName("video");
            if (video_wnd)
            {
                    CRect rect = video_wnd->GetWindowRect();
                    int dx = 100 / (int)sqrt((double)sliceNum);
                    int dy = 100 / (int)sqrt((double)sliceNum);
                    int left = 0;
                    int right = 0;
                    int top = 0;
                    int buttom = 0;
                    int nNum = 0;

                    SStringT strDlg;
                    stringstream sTemp;
                    std::string str("");
                    std::string strLeft("");
                    std::string strtop("");
                   
                    for (int i = 1; i <= (int)sqrt((double)sliceNum); i++)
                    {
                            strLeft = "0,";
                            strtop = "[1,%";

                            for (int j = 1; j <= (int)sqrt((double)sliceNum); j++)
                            {
                                    strDlg.Format(_T("%d"), nNum);

                                    left = (j - 1)*dx;
                                    right = j*dx;
                                    top = (i - 1)*dy;
                                    buttom = i*dy;

                                    if (j != 1)
                                    {
                                            strLeft = "[1,";
                                            strtop = "{0,%";
                                    }

                                    str += "<window pos="";
                                    str += strLeft;
                                    str += strtop;

                                    sTemp << right;
                                    str += sTemp.str();
                                    str += ",%";

                                    sTemp.str("");
                                    sTemp << buttom;
                                    str += sTemp.str();
                                    str += "" colorBkgnd = "RGB(0, 0, 0)" name = "video_show";

                                    sTemp.str("");
                                    sTemp << nNum;
                                    str += sTemp.str();
                                    str += ""><realwnd pos = "3, 3, -3, -3" name = "vlcwnd";
                                    str += sTemp.str();
                                    str += "" wndclass = "videoforms" show="1"><realwnd pos = "0,0,-0,-0" name = "videodlg";
                                    str += sTemp.str();
                                    str += "" wndclass = "videoforms"></realwnd></realwnd></window>";//cache = "1"
                                    nNum++;
                            }
                    }
                    video_wnd->CreateChildren(S_CA2W(str.c_str()));

                    video_wnd->Invalidate();

                    printf(SStringA().Format("CreateSlicesWnd num:%d -------------------- end ***ke \n", sliceNum));
            }
    }[/code]
    回复

    使用道具 举报

  • TA的每日心情
    开心
    1 小时前
  • 签到天数: 36 天

    [LV.5]常住居民I

    378

    主题

    838

    帖子

    8011

    积分

    管理员

    Rank: 9Rank: 9Rank: 9

    积分
    8011
     楼主| 发表于 2019-8-14 22:56:17 | 显示全部楼层
    1. void CMainDlg::CreateSlicesWnd(int sliceNum)//创建分屏
    2. {
    3.         SLOG_INFO("CMainDlg::CreateSlicesWnd()");
    4.         printf(SStringA().Format("CreateSlicesWnd num:%d -------------------- beg ***ke \n", sliceNum));

    5.         if (sliceNum > SLICE_WINDOWS)//如果大于最大分屏数则退出 用此方法有***问题
    6.                 return;
    7.         SWindow *video_wnd = FindChildByName("video");
    8.         if (video_wnd)
    9.         {
    10.                 CRect rect = video_wnd->GetWindowRect();
    11.                 int dx = 100 / (int)sqrt((double)sliceNum);
    12.                 int dy = 100 / (int)sqrt((double)sliceNum);
    13.                 int left = 0;
    14.                 int right = 0;
    15.                 int top = 0;
    16.                 int buttom = 0;
    17.                 int nNum = 0;

    18.                 SStringT strDlg;
    19.                 stringstream sTemp;
    20.                 std::string str("");
    21.                 std::string strLeft("");
    22.                 std::string strtop("");
    23.                
    24.                 for (int i = 1; i <= (int)sqrt((double)sliceNum); i++)
    25.                 {
    26.                         strLeft = "0,";
    27.                         strtop = "[1,%";

    28.                         for (int j = 1; j <= (int)sqrt((double)sliceNum); j++)
    29.                         {
    30.                                 strDlg.Format(_T("%d"), nNum);

    31.                                 left = (j - 1)*dx;
    32.                                 right = j*dx;
    33.                                 top = (i - 1)*dy;
    34.                                 buttom = i*dy;

    35.                                 if (j != 1)
    36.                                 {
    37.                                         strLeft = "[1,";
    38.                                         strtop = "{0,%";
    39.                                 }

    40.                                 str += "<window pos="";
    41.                                 str += strLeft;
    42.                                 str += strtop;

    43.                                 sTemp << right;
    44.                                 str += sTemp.str();
    45.                                 str += ",%";

    46.                                 sTemp.str("");
    47.                                 sTemp << buttom;
    48.                                 str += sTemp.str();
    49.                                 str += "" colorBkgnd = "RGB(0, 0, 0)" name = "video_show";

    50.                                 sTemp.str("");
    51.                                 sTemp << nNum;
    52.                                 str += sTemp.str();
    53.                                 str += ""><realwnd pos = "3, 3, -3, -3" name = "vlcwnd";
    54.                                 str += sTemp.str();
    55.                                 str += "" wndclass = "videoforms" show="1"><realwnd pos = "0,0,-0,-0" name = "videodlg";
    56.                                 str += sTemp.str();
    57.                                 str += "" wndclass = "videoforms"></realwnd></realwnd></window>";//cache = "1"
    58.                                 nNum++;
    59.                         }
    60.                 }
    61.                 video_wnd->CreateChildren(S_CA2W(str.c_str()));

    62.                 video_wnd->Invalidate();

    63.                 printf(SStringA().Format("CreateSlicesWnd num:%d -------------------- end ***ke \n", sliceNum));
    64.         }
    65. }
    复制代码


  • TA的每日心情
    开心
    1 小时前
  • 签到天数: 36 天

    [LV.5]常住居民I

    378

    主题

    838

    帖子

    8011

    积分

    管理员

    Rank: 9Rank: 9Rank: 9

    积分
    8011
     楼主| 发表于 2019-8-14 22:56:57 | 显示全部楼层
    1. void CMainDlg::CreateSlicesWnd(int sliceNum)//创建分屏
    2. {
    3.         SLOG_INFO("CMainDlg::CreateSlicesWnd()");
    4.         printf(SStringA().Format("CreateSlicesWnd num:%d -------------------- beg ***ke \n", sliceNum));

    5.         if (sliceNum > SLICE_WINDOWS)//如果大于最大分屏数则退出 用此方法有***问题
    6.                 return;
    7.         SWindow *video_wnd = FindChildByName("video");
    8.         if (video_wnd)
    9.         {
    10.                 CRect rect = video_wnd->GetWindowRect();
    11.                 int dx = 100 / (int)sqrt((double)sliceNum);
    12.                 int dy = 100 / (int)sqrt((double)sliceNum);
    13.                 int left = 0;
    14.                 int right = 0;
    15.                 int top = 0;
    16.                 int buttom = 0;
    17.                 int nNum = 0;

    18.                 SStringT strDlg;
    19.                 stringstream sTemp;
    20.                 std::string str("");
    21.                 std::string strLeft("");
    22.                 std::string strtop("");
    23.                
    24.                 for (int i = 1; i <= (int)sqrt((double)sliceNum); i++)
    25.                 {
    26.                         strLeft = "0,";
    27.                         strtop = "[1,%";

    28.                         for (int j = 1; j <= (int)sqrt((double)sliceNum); j++)
    29.                         {
    30.                                 strDlg.Format(_T("%d"), nNum);

    31.                                 left = (j - 1)*dx;
    32.                                 right = j*dx;
    33.                                 top = (i - 1)*dy;
    34.                                 buttom = i*dy;

    35.                                 if (j != 1)
    36.                                 {
    37.                                         strLeft = "[1,";
    38.                                         strtop = "{0,%";
    39.                                 }

    40.                                 str += "<window pos="";
    41.                                 str += strLeft;
    42.                                 str += strtop;

    43.                                 sTemp << right;
    44.                                 str += sTemp.str();
    45.                                 str += ",%";

    46.                                 sTemp.str("");
    47.                                 sTemp << buttom;
    48.                                 str += sTemp.str();
    49.                                 str += "" colorBkgnd = "RGB(0, 0, 0)" name = "video_show";

    50.                                 sTemp.str("");
    51.                                 sTemp << nNum;
    52.                                 str += sTemp.str();
    53.                                 str += ""><realwnd pos = "3, 3, -3, -3" name = "vlcwnd";
    54.                                 str += sTemp.str();
    55.                                 str += "" wndclass = "videoforms" show="1"><realwnd pos = "0,0,-0,-0" name = "videodlg";
    56.                                 str += sTemp.str();
    57.                                 str += "" wndclass = "videoforms"></realwnd></realwnd></window>";//cache = "1"
    58.                                 nNum++;
    59.                         }
    60.                 }
    61.                 video_wnd->CreateChildren(S_CA2W(str.c_str()));

    62.                 video_wnd->Invalidate();

    63.                 printf(SStringA().Format("CreateSlicesWnd num:%d -------------------- end ***ke \n", sliceNum));
    64.         }
    65. }
    复制代码


    该用户从未签到

    4

    主题

    58

    帖子

    594

    积分

    04:00化神期

    Rank: 4

    积分
    594
    发表于 2019-9-9 17:39:38 | 显示全部楼层
    没看懂,顶一个

    该用户从未签到

    4

    主题

    67

    帖子

    1388

    积分

    06:00合体期

    Rank: 6Rank: 6

    积分
    1388
    发表于 2019-9-12 15:37:41 | 显示全部楼层
    看不懂,水一个
    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    QQ|Archiver|手机版|小黑屋|SOUI官方论坛 ( 粤ICP备18103663号-2 )

    GMT+8, 2020-2-24 10:17

    Powered by Discuz! X3.4

    Copyright © 2001-2020, Tencent Cloud.

    快速回复 返回顶部 返回列表