zoukankan      html  css  js  c++  java
  • vc有用的命令

                            一、改变视图背景色:
                               在CView的OnDraw函数中添写如下一段程序代码:
                               void CFileNameView::OnDraw(CDC* pDC)
                               {
                            CFileNameDoc* pDoc = GetDocument();
                            ASSERT_VALID(pDoc);
                            CRect rectClient;
                            CBrush brushBkColor;
                            GetClientRect(rectClient);
                            brushBkColor.CreateSolidBrush(RGB(255,0,0)); //颜色设置
                            pDC->DPtoLP(rectClient);
                            pDC->FillRect(rectClient,&brushBkColor);
                            …
                               }
                            二、往基于对话框的程序添加菜单:
                            [1] 先添加菜单(IDR_MENU1)资源,并加上需要的菜单项。
                            [2]
                            编辑对话框资源IDD_DLGMENUTOOLBAR_DIALOG的属性,在属性对话框中选择IDR_MENU1即可。

                              
                            [3] 假如您不希望在对话框属性中直接设置菜单,而通过代码在程序中动态生成可以采用如下方法:
                            在CFileNameDlg类声名中添加成员变量CMenu
                            m_menu,再在CFileNameDlg::OnInitDialog() 中添加如下代码:
                            //加载菜单
                            m_menu.LoadMenu(IDR_MENU1);
                            //设置当前菜单
                            SetMenu(&m_menu);
                            //当你不需要菜单时可以用 SetMenu(NULL);来取消当前菜单
                            三、往基于Dialog的程序添加工具栏:
                            [1] 先添加工具栏(IDR_TOOLBAR1)资源,并画好各个按钮。
                            [2] 在CFileNameDlg类声名中添加成员变量 CToolBar m_wndtoolbar;
                            [3] 在CFileNameDlg::OnInitDialog() 中添加如下代码
                            //添加一个平面工具条
                            if (!m_wndtoolbar.CreateEx( this,TBSTYLE_FLAT , 
                            WS_CHILD | WS_VISIBLE | CBRS_ALIGN_TOP | CBRS_GRIPPER |
                            CBRS_TOOLTIPS, CRect(4,4,0,0)) ||
                            !m_wndtoolbar.LoadToolBar(IDR_TOOLBAR1) )
                            {
                            TRACE0("failed to create toolbar\n");
                            return FALSE;
                            }
                            m_wndtoolbar.ShowWindow(SW_SHOW);
                            RepositionBars(AFX_IDW_CONTROLBAR_FIRST,
                            AFX_IDW_CONTROLBAR_LAST, 0);


                            四、改变对话框背景色:
                            在CDlgMenuToolbarDlg::OnPaint()中修改代码实现Dialog 填充颜色:
                            CPaintDC dc(this);
                            CRect rect;
                            GetClientRect(rect);
                            dc.FillSolidRect(rect, RGB(60,110,170));
                            方法二、在InitInstance()(不是OnInitDialog())中加入:
                            SetDialogBkColor(RGB(255,0,0),RGB(0,255,0));
                            注意:要放在InitInstance函数的最前面!
                            五、为dialog的工具栏添加工具提示:
                            [1] 在CFileNameDlg类定义中手工添加消息映射函数的定义,如下黑体部分
                              //{{AFX_MSG(CFileNameDlg)
                            virtual BOOL OnInitDialog();
                            afx_msg void OnPaint();
                            afx_msg BOOL OnToolTipText(UINT, NMHDR* pNMHDR, LRESULT*
                            pResult);
                            //}}AFX_MSG
                            DECLARE_MESSAGE_MAP()
                            [2] 在CFileNameDlg.cpp添加函数的实现代码
                            //工具栏提示
                            BOOL CFileNameDlg::OnToolTipText(UINT, NMHDR* pNMHDR,
                            LRESULT* pResult)
                            {
                            ASSERT(pNMHDR->code == TTN_NEEDTEXTA || pNMHDR->code ==
                            TTN_NEEDTEXTW);  
                            // UNICODE消息
                            TOOLTIPTEXTA* pTTTA = (TOOLTIPTEXTA*)pNMHDR;
                            TOOLTIPTEXTW* pTTTW = (TOOLTIPTEXTW*)pNMHDR;
                            //TCHAR szFullText[512];
                            CString strTipText;
                            UINT nID = pNMHDR->idFrom;
                             
                            if (pNMHDR->code == TTN_NEEDTEXTA && (pTTTA->uFlags &
                            TTF_IDISHWND) ||
                             pNMHDR->code == TTN_NEEDTEXTW && (pTTTW->uFlags &
                            TTF_IDISHWND))
                            {
                             // idFrom为工具条的HWND
                             nID = ::GetDlgCtrlID((HWND)nID);
                            }
                             
                            if (nID != 0) //不为分隔符
                            {
                             strTipText.LoadString(nID);
                             strTipText = strTipText.Mid(strTipText.Find(’\n’,0)+1);

                              
                            #ifndef _UNICODE
                             if (pNMHDR->code == TTN_NEEDTEXTA)
                             {
                              lstrcpyn(pTTTA->szText, strTipText,
                            sizeof(pTTTA->szText));
                             }
                             else
                             {
                              _mbstowcsz(pTTTW->szText, strTipText,
                            sizeof(pTTTW->szText));
                             }
                            #else
                             if (pNMHDR->code == TTN_NEEDTEXTA)
                             {
                              _wcstombsz(pTTTA->szText,
                            strTipText,sizeof(pTTTA->szText));
                             }
                             else
                             {
                              lstrcpyn(pTTTW->szText, strTipText,
                            sizeof(pTTTW->szText));
                             }
                            #endif   
                             *pResult = 0;   
                             // 使工具条提示窗口在最上面
                             ::SetWindowPos(pNMHDR->hwndFrom, HWND_TOP, 0, 0, 0,
                            0,SWP_NOACTIVATE|
                              SWP_NOSIZE|SWP_NOMOVE|SWP_NOOWNERZORDER);
                             return TRUE;
                            }
                            return TRUE;
                            }
                            [3] 在CFileNameDlg.cpp中添加消息映射,请看如下代码中的黑体部分
                            BEGIN_MESSAGE_MAP(CFileNameDlg, CDialog)
                            //{{AFX_MSG_MAP(CFileNameDlg)
                            ON_WM_PAINT()
                            ON_NOTIFY_EX( TTN_NEEDTEXT, 0, OnToolTipText )
                            //}}AFX_MSG_MAP
                            END_MESSAGE_MAP()
                            [4] 在CFileNameDlg.h中添加声明:
                            BOOL CFileNameDlg::OnToolTipText(UINT, NMHDR* pNMHDR,
                            LRESULT* pResult);
                            六、给没有工具栏的窗口添加工具栏:
                            在资源管理器中编辑工具栏,并将其属性改为IDR_MAINFRAME,然后在MainFrm.h中声明:
                            CToolBar m_wndToolBar;
                            在MainFrm.cpp中添加:
                            int CMainFrame::OnCreate(LPCREATESTRUCT lpCreateStruct)
                            {
                            m_wndToolBar.Create(this);
                            m_wndToolBar.LoadToolBar(IDR_MAINFRAME);
                            ……;
                            }
                            停靠工具栏:在刚才添加的后面加入下面代码:
                            m_wndToolBar.SetBarStyle(m_wndToolBar.GetBarStyle()|CBRS_TOOLTIPS|CBRS_SIZE_DYNAMIC);

                            m_wndToolBar.EnableDocking(CBRS_ALIGN_ANY);
                            EnableDocking(CBRS_ALIGN_ANY);
                            DockControlBar(&m_wndToolBar);//控制是否开启任意停靠
                            完善一下功能:
                            在菜单中添加一项“工具栏”,ID设为ID_VIEW_TOOLBAR,一切OK,试试吧!
                            七、创建分隔窗口:
                            只有框架类可以创建分隔,分隔可以嵌套。
                            在.h文件中声明 CSplitterWnd
                            m_wndSplitter;并且包含COneView.h(新建视图类)和CWinFrame.h(新建框架类)文件;

                            然后在.cpp文件中加入:
                            BOOL CMainFrame::OnCreateClient(LPCREATESTRUCT lpcs,
                            CCreateContext* pContext)
                            {
                            if(!m_wndSplitter.CreateStatic(this,1,2))
                               return FALSE;
                            if(!m_wndSplitter.CreateView(0,0,RUNTIME_CLASS(COneView),CSize(240,420),pContext))

                               return FALSE;
                            if(!m_wndSplitter.CreateView(0,1,RUNTIME_CLASS(CWinFrame),CSize(300,500),pContext))

                               return FALSE;
                            return TRUE;
                            }
                            当用户创建好分割窗口后,有时并不希望通过拖动切分条来调节窗口的大小。这时就必须锁定切分条。锁定切分条的最简单的方法莫过于不让CSplitterWnd来处理WM_LBUTTONDOWN,WM_MOUSEMOVE,WM_SETCURSOR消息,而是将这些消息交给CWnd窗口进行处理,从而屏蔽掉这些消息。拿WM_LBUTTONDOWN处理过程来说。修改为如下:

                            void CXXSplitterWnd::OnLButtonDown(UINT nFlags,CPoint
                            point)
                            {
                             CWnd::OnLButtonDown(nFlags,point);
                            }
                            其余的处理方法类似。
                            八、“打开”按钮的设置:
                               用类向导创建该按钮的click函数,选择默认值OnOpen,加入以下代码:
                            void CYourDlg::OnOpen()
                            {
                            char szFileFilter[]=
                                  "BIN File(*.bin)|*.bin|"
                                  "All File(*.*)|*.*||";//文件类型过滤
                            CFileDialog
                            dlg(TRUE,NULL,NULL,OFN_HIDEREADONLY,szFileFilter);
                            /* CFileDialog dlg(FALSE);
                              dlg.m_ofn .lpstrFilter
                            =_T("文本文件(*.txt)*.txt所有文件(*.*)*.*");
                              dlg.m_ofn.lpstrDefExt=_T("txt"); */
                            if(dlg.DoModal()==IDOK)
                            {
                             m_path =
                            dlg.GetPathName();//将显示路径的Edit控件命名为m_path,并增加CString变量m_path

                             UpdateData(FALSE);  
                            }  
                            }
                            九、窗口居中:
                            在初始化(OnInit)函数中增加:CenterWindow();即可
                            十、对话框加状态条:
                               UINT
                            indicators[]={ID_INITMESSAGE,ID_SEPARATOR,ID_TIMEMESSAGE,ID_PROGRESS};

                               m_statusbar.CreateEx(this,0,WS_CHILD | WS_VISIBLE |
                            CBRS_BOTTOM);
                               m_statusbar.SetIndicators(indicators,4);
                               m_statusbar.ShowWindow (SW_SHOW);
                               RepositionBars(AFX_IDW_CONTROLBAR_FIRST,
                            AFX_IDW_CONTROLBAR_LAST, 0);
                            十一、设置初始窗口状态:
                            BOOL CObjectNameApp::InitInstance()
                            {
                            m_pMainWnd->SetWindowText(""); //设置初始窗口标题文本
                            m_pMainWnd->ShowWindow(SW_SHOWMAXIMIZED);//设置初始窗口为最大化
                            m_pMainWnd->UpdateWindow();
                            }
                            对于MDI函数SetWindowText无效,主窗口的标题只能在资源列表中修改,子窗口标题在**doc.cpp中重载OnNewDocument(),调用SetTitle("LGdownload中文版");来修改。

                            设置初始窗口最大化的另一优化方法:
                            void CMainFrame::ActivateFrame(int nCmdShow)
                            {
                               // TODO: Add your specialized code here and/or call
                            the base class
                               nCmdShow=SW_MAXIMIZE;
                               CFrameWnd::ActivateFrame(nCmdShow);
                            }
                            十二、对话框透明特效:
                            在OnInitDialog()中加入以下代码:
                            //加入WS_EX_LAYERED扩展属性
                            SetWindowLong(this->GetSafeHwnd(),GWL_EXSTYLE,
                            GetWindowLong(this->GetSafeHwnd(),GWL_EXSTYLE)^0x80000);

                            HINSTANCE hInst = LoadLibrary("User32.DLL");
                            if(hInst)
                            {
                            typedef BOOL (WINAPI *MYFUNC)(HWND,COLORREF,BYTE,DWORD);

                            MYFUNC fun = NULL;
                            //取得SetLayeredWindowAttributes函数指针
                            fun=(MYFUNC)GetProcAddress(hInst,
                            "SetLayeredWindowAttributes");
                            if(fun)fun(this->GetSafeHwnd(),0,128,2);
                            FreeLibrary(hInst);
                            }
                            注意:fun的参数128不能太小,否则就完全透明了!
                            十三、设置对话框里的STATIC控件颜色属性:
                            在该对话框增加WM_CTLCOLOR事件,加入以下代码:
                            if( nCtlColor==CTLCOLOR_STATIC )
                            {
                               pDC->SetTextColor(RGB(255,255,255));
                               pDC->SetBkColor(RGB(91,145,244));
                             pDC->SetBkMode(TRANSPARENT); //设置透明
                            }
                            设置STATIC控件背景透明:
                            if( nCtlColor==CTLCOLOR_STATIC )
                            {
                            pDC->SetBkMode(TRANSPARENT); //设置透明
                            return (HBRUSH)::GetStockObject(NULL_BRUSH);
                            }
                            十四、使窗口的最大化和最小化按钮消失:
                            在PreCreateWindow函数中添加以下代码即可:
                               int xSize = ::GetSystemMetrics( SM_CXSCREEN );
                               int ySize = ::GetSystemMetrics( SM_CYSCREEN );
                               cs.cx = xSize * 6 / 10;
                               cs.cy = ySize * 6 / 10;
                               cs.x = ( xSize - cs.cx ) / 2;
                               cs.y = ( ySize - cs.cy ) / 2;
                               cs.style &= ~WS_THICKFRAME;
                               cs.style &= ~( WS_MAXIMIZEBOX | WS_MINIMIZEBOX );
                               cs.dwExStyle |= WS_EX_TOOLWINDOW;
                            十五、设置控件字体颜色:(例如STATIC控件)
                            在OnCtlColor函数中添加如下代码:(可能需要选择STATIC的简单属性)
                            if(nCtlColor==CTLCOLOR_STATIC)   
                            {  pDC->SetTextColor(RGB(255,0,0));
                              pDC->SetBkColor(RGB(128,128,128));//设置文本背景色
                            pDC->SetBkMode(TRANSPARENT);//设置背景透明
                            }
                            其他控件的宏定义为:
                             .CTLCOLOR_BTN       按钮控件
                             .CTLCOLOR_DLG       对话框
                             .CTLCOLOR_EDIT      编辑框
                             .CTLCOLOR_LISTBOX   列表控件
                             .CTLCOLOR_MSGBOX    消息控件
                             .CTLCOLOR_SCROLLBAR 滚动条控件
                             .CTLCOLOR_STATIC    静态控件   
                            十六、将字符转换为数字:
                            int i = atoi("12345"); 或 sscanf("12345","%d",&i);   
                            十七、调用外部应用程序可使用的函数:
                             CreateProcess、WinExec、ShellExecute。
                            例:ShellExecute(pWnd->m_wnd, "open", "my.exe", NULL,
                            NULL, SW_NORMAL)
                            一、父窗体句柄,二、命令"open",三、文件路径,四、参数,五、运行路径,六、显示方式
                            十八、经典安装程序制作软件:InstallShield for Microsoft Visual C++6.0
                            release 方式是在build菜单中的Set Active configuration中改
                            在project菜单里面,选Add to Project的component and
                            control来加入ocx控件
                            十九、控件的注册:
                            1.注册
                            regsvr32 x:\xxx\demo.ocx 不一定非得在 Windows 系统目录
                            2.卸载
                            regsvr32 /u x:\xxx\demo.ocx
                            二十、获取当前时间:
                            CTime m_time=CTime::GetCurrentTime();
                            char szText[100];
                            memset(szText,0,100);
                            sprintf(szText,"%d_%d_%d",m_time.GetHour(),m_time.GetMinite(),m_time.GetSecond());

                             // 如何得到当前时间日期
                               CTime time = CTime::GetCurrentTime();   
                               CString m_strTime = time.Format("%Y-%m-%d %H:%M:%S");

                               // 方法二
                               SYSTEMTIME ti;
                               GetSystemTime(&ti); // 如何得到当前时间日期
                               ti.wMilliseconds; // 得到毫秒时间
                            SYSTEMTIME time;
                            CString str;
                            GetLocalTime( &time );
                            str.Format(
                            "%04d:%02d:%02d",time.wYear,time.wMonth.....);
                            二一、修改单文档程序的标题:
                            OnCreat()中加入  SetWindowText("weichao");
                            CMainFrame::PreCreateWindow(CREATESTRUCT& cs)中加入 
                            cs.style =WS_OVERLAPPEDWINDOW;
                            二二、隐藏程序在任务栏的图标:
                            对话框程序放OnInitDialog()函数:
                            SetWindowLong(this->m_hWnd,GWL_EXSTYLE,WS_EX_TOOLWINDOW);//隐藏任务拦按钮

                            二三、读取编辑框内容:
                               GetDlgItemText(IDC_EDIT_TXDATA,m_strTXData);
                            二四、自绘菜单宽度不对,高度是对的,解决办法:
                            在ClassWizard中的ClassName下,选CMianFrame,在Messages下选WM_CONTEXTMENU并生成相应的函数,如下:

                            void CMainFrame::OnContextMenu(CWnd* pWnd, CPoint point)

                            {
                             CMenu menu;
                                menu.LoadMenu(IDR_MENU1);//IDR_MENU1是你要弹出菜单的ID号.
                                CMenu *popup=menu.GetSubMenu(0);
                               
                            popup->TrackPopupMenu(TPM_LEFTALIGN,point.x,point.y,this);

                            }
                            二五、重启计算机:
                            调用一个API函数ExitWindowsEx就可以了,
                            两个参数:UFlag,标记,可以选择EWX_REBOOT,EWX_SHUTDOWN,EWX_POWEROFF再或上EWX_FORCE第二个参数就是0了

                            二六、无title对话框的移动:
                            void CScreenSnapDlg::OnLButtonDown(UINT nFlags, CPoint
                            point)
                            {
                               //实现窗体无标题移动
                              
                            PostMessage(WM_NCLBUTTONDOWN,HTCAPTION,MAKELPARAM(point.x,point.y));

                                
                               CDialog::OnLButtonDown(nFlags, point);
                            }
                            二七、获取操作系统版本:
                            OSVERSIONINFO OsVersionInfo;//包含操作系统版本信息的数据结构
                            OsVersionInfo.dwOSVersionInfoSize=
                            sizeof(OSVERSIONINFO);
                            GetVersionEx(&OsVersionInfo);//获取操作系统版本信息
                            二八、设置对话框为最顶层:(在OnInitDialog中添加)
                            SetWindowPos(&wndTopMost,0,0,0,0,SWP_NOMOVE|SWP_NOSIZE);

                            二九、对话框程序不在任务栏显示:(在OnInitDialog中添加)
                            ModifyStyleEx(WS_EX_APPWINDOW,WS_EX_TOOLWINDOW);
                            三十、向对话框窗口添加右键菜单:
                            CMenu  menu,*pmenu;   
                            menu.LoadMenu(IDR_MENU1);   
                            pmenu=menu.GetSubMenu(0);   
                             
                            CPoint  ptScreen(point);   
                            ClientToScreen(&ptScreen);   
                             
                            pmenu->TrackPopupMenu(TPM_RIGHTBUTTON,ptScreen.x,ptScreen.y,this);
                              
                            三一、文件查找:(例查找连续的换行符)
                            FILE *fp,*fp1;
                            int flag=0;
                            int ch;
                            fp=fopen("c:\test.txt","r");
                            fp1=fopen("c:\wrttest.txt","w");
                            while(!feof(fp))
                            {
                             ch=fgetc(fp);
                             if(feof(fp))
                              break;
                             if(ch==’\n’&&flag==1)
                              continue;
                             else if(ch==’\n’&&flag==0)
                              flag=1;
                             else
                              flag=0;
                             fputc(ch,fp1);
                            }
                            fclose(fp1);
                            fclose(fp);
                            三二、托盘菜单不点击不能消失的解决办法:
                            在菜单之后使用下述代码:
                                   CPoint pt;
                                   GetCursorPos(&pt);
                                    
                                   SetForegroundWindow();
                                  
                            NotifyMenu.TrackPopupMenu(TPM_RIGHTBUTTON,pt.x,pt.y,this);

                                   PostMessage(WM_NULL,0,0);
                            三三、对话框由小到大显示的动画效果:
                            在InitDialog中增加:
                            ShowWindow(SW_HIDE);
                            CRect dlgRect;
                            GetClientRect(&dlgRect);
                            CPoint centerPoint;
                            centerPoint.x=dlgRect.Width()/2;
                            centerPoint.y=dlgRect.Height()/2;//得到对话框的中点坐标
                            CRgn testrgn;
                            this->ShowWindow(SW_HIDE);   
                            int m=GetSystemMetrics(SM_CYSIZEFRAME);
                             
                            //以下代码实现对话框的动态弹出
                             
                            for (int i=10;i<dlgRect.Width()/2+m;i+=1)
                            {    
                            
                            testrgn.CreateRectRgn(centerPoint.x-i,centerPoint.y-i,centerPoint.x+i,centerPoint.y+i);

                             SetWindowRgn((HRGN) testrgn,TRUE);
                             ShowWindow(SW_SHOW);
                             CenterWindow();
                             testrgn.DeleteObject();
                            }
                            三四、按行读出文本文件:
                            下面的例子演示了一行一行取,直到取完。
                            CStdioFile myFile;
                              CString ReadFileString;
                            if(myFile.Open("C:\Readme.txt", Cfile::modeRead) ==
                            TRUE)
                            {
                             while(myFile.ReadString(ReadFileString) != FALSE)
                             {
                                                 //... 处理代码
                                              }
                                      }
                            三五、使用IDC_HAND时提示未定义,加入以下代码:
                            #if(WINVER >= 0x0500)
                            #define IDC_HAND            MAKEINTRESOURCE(32649)
                            #endif /* WINVER >= 0x0500 */
                            三六、使应用程序启动时不自动创建新文档
                            在默认情况下,用AppWizard开发的SDI/MDI应用程序在启动时创建一个新的文档。如果要使应用程序在启动时不创建新文档,只需在应用类CmyApp::InitInstance()函数的ProcessShellCommand调用前加上下面的语句就可以了:

                            cmdInfo.m_nShellCommand = CComandLineInfo::FileNothing;
                            三七、播放mp3:
                               CFileDialog file(true);
                               if(file.DoModal()==IDOK)
                               {
                                   CString filename=file.GetFileName();
                                   if(hwnd!=NULL)
                                   {
                                       MCIWndDestroy(hwnd);
                                   }
                                  
                            hwnd=MCIWndCreate(this->m_hWnd,NULL,MCIWNDF_NOPLAYBAR,filename);

                                   ::ShowWindow(hwnd,SW_HIDE);
                                   MCIWndSetVolume(hwnd,1000);
                                   MCIWndPlay(hwnd);
                               }
                            三八、获取屏幕RGB值:OnTimer中添加
                            CPoint pos;
                            GetCursorPos(&pos);//获取鼠标坐标
                            HDC hDC = ::GetDC(NULL);
                            COLORREF clr = ::GetPixel(hDC, pos.x, pos.y);
                                
                            CString ClrText;
                            ClrText.Format("R:%d G:%d
                            B:%d",GetRValue(clr),GetGValue(clr),GetBValue(clr));

                            三九、打开一个网址:
                            打开http://www.sina.com.cn这个站点如下:
                            ShellExecute(NULL, "open",
                            "http://www.sina.com.cn",NULL, NULL, SW_MAXIMIZE );
                            此命令将以默认浏览器打开http://www.sina.com.cn,并将加开后的窗口最大化。
                            又例:
                            ShellExecute(NULL, "open", "IEXPLORE.exe
                            http://www.sina.com.cn",NULL, NULL, SW_MAXIMIZE );
                            此命令将直接用IE打开一个sina的站点。不过将开一个新的窗口。
                            四十、位图按钮:
                            CButton *pRadio = (CButton*)GetDlgItem(IDC_RADIO);
                            pRadio->SetBitmap(::LoadBitmap(AfxGetInstanceHandle(),
                            MAKEINTRESOURCE(IDB_BITMAP)));


                         

  • 相关阅读:
    Comparison of Performance Testing Tools
    软件测试两年总结
    利用FSO生成QTP测试报告
    Web 2.0 再思考(三)「搭讪」是需要理由的
    脑子里想的是A,嘴巴上说的是B,实际上做的是C,幻想前景远大的是D,可真正赚钱的恰恰却是E
    东莞镇区实力排名榜
    狂籌資計畫
    转载:日剧和韩剧的区别
    Web 2.0 再思考(一)「关系」才是重点
    炒股
  • 原文地址:https://www.cnblogs.com/ahuo/p/594436.html
Copyright © 2011-2022 走看看