SOUI官方论坛

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 98|回复: 8

代码测试贴

[复制链接]

180

主题

421

帖子

3683

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
3683
发表于 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. }
复制代码


180

主题

421

帖子

3683

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
3683
 楼主| 发表于 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. }
复制代码


180

主题

421

帖子

3683

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
3683
 楼主| 发表于 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]
回复

使用道具 举报

180

主题

421

帖子

3683

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
3683
 楼主| 发表于 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. }
复制代码


180

主题

421

帖子

3683

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
3683
 楼主| 发表于 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]
回复

使用道具 举报

180

主题

421

帖子

3683

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
3683
 楼主| 发表于 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. }
复制代码


180

主题

421

帖子

3683

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
3683
 楼主| 发表于 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. }
复制代码


3

主题

44

帖子

442

积分

02:00元婴期

Rank: 3Rank: 3

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

1

主题

41

帖子

571

积分

04:00化神期

Rank: 4

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

本版积分规则

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

GMT+8, 2019-9-21 23:50

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

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