精华内容
下载资源
问答
  • MDI

    2008-03-17 14:07:00
    1、引言 MDI就是所谓的多文档界面,他是微软公司从Windows 2.0下的Microsoft Excel电子表格程序开始引入的,Excel电子表格用户有时需要同时操作多份表格,MDI正好为这种操作多表格提供了很大的方便,于是就产生了...
     1、引言
    
        MDI就是所谓的多文档界面,他是微软公司从Windows 2.0下的Microsoft Excel电子表格程序开始引入的,Excel电子表格用户有时需要同时操作多份表格,MDI正好为这种操作多表格提供了很大的方便,于是就产生了MDI程序。
        Visual C#是微软公司推出的下一代主流程序开发语言,他也是一种功能十分强大的程序设计语言,正在受到越来越多的编程人员的喜欢。在Visual C#中,提供了为实现MDI程序设计的很多功能。本文就是通过一个具体的例子来详细的介绍在Visual C#中的MDI编程。 2、 程序设计及运行的环境
       (1)Windows 2000 Advanced Server    (2)Visual Studio .Net 2003 中文版
    3、 程序设计的思路
       (1)MDI编程主要是生成框架主窗口
       (2)在主窗口中创建若干新的MDI子窗口
       (3)对主窗口中的MDI子窗口进行排列控制
       (4)将主窗口中已有的MDI子窗口自动添加到指定菜单项中
       (5)菜单项合并设置
    4、程序设计及其实现
       (1)首先要将主窗体设定为一个MDI窗体的容器,因为只有如此才能够在此主窗体上面添加MDI子窗体,从而实现对MDI编程,具体实现语句如下:
        this.IsMdiContainer = true ; //设置主窗体的IsMdiContainer属性为true,可设计时设置也可运行时设置。
       (2)在主窗体中新建一个MDI窗体。
         通常情况下,新建一个MDI子窗体的命令是通过触发一个菜单的事件来实现的(比如,新建... ,打开...)。在处理新建一个MDI子窗体事件中,关键是要设定此MDI子窗体的父窗体。其实MDI窗体和别的窗体没有什么不同,不同点就在MDI窗体有上一级窗体,即父窗体,而其他窗体是没有的,具体实现语句(单击新建菜单项触发的事件)如下:
    private void New_Click ( object sender , EventArgs e )//这是一个菜单的事件 {
    Form frmTemp = new Form ( ) ; //新建一个窗体对象,可根据需要新建自己设计的窗体
    frmTemp.MdiParent = this ; //设置窗口的MdiParent属性为当前主窗口,成为MDI子窗体
    frmTemp.Text = "窗体0" + FormCount.ToString ( ) ; //设定MDI窗体的标题
    FormCount++ ; //FormCount是定义在主程序中的一个变量来记录产生的子窗口个数
    frmTemp.Show ( ) ; //把此MDI窗体显示出来
    }   (3)对MDI子窗体的排列
        在主窗体中实现对MDI子窗体的排列操作,可以在主程序中通过主窗口的方法LayoutMdi来实现,他所带的参数是由枚举型MdiLayout所列举的几种排列类型,包括层叠Cascade 水平平铺 TileHorizoatal 垂直平铺 TileVertical 重新排列 ReArrange。
    具体实现语句如下:
    private void Cascade_Click ( object sender , EventArgs e ) // MDI窗体的层叠操作
    {
       this.LayoutMdi ( MdiLayout.Cascade ) ;
    }
    private void TileH_Click ( object sender , EventArgs e ) // MDI窗体的水平平铺操作
    {
    this.LayoutMdi ( MdiLayout.TileHorizontal ) ;
    } private void TileV_Click ( object sender , EventArgs e ) // MDI窗体的垂直平铺操作
    {
    this.LayoutMdi ( MdiLayout.TileVertical ) ;
    }
    private void ArrangeIcon_Click ( object sender , EventArgs e ) // MDI窗体排列图标操作
    {
    this.LayoutMdi ( MdiLayout.ArrangeIcon ) ;
    }
      (4)在菜单项中列出MDI子窗口的名称。
        在有些MDI程序,当新建一个MDI窗体以后,往往会在某些菜单项的下面生产一个以此MDI窗体的名称为名称的子菜单项。在Visual C#中实现此种功能,就显得比较简单的,只有在要加入的主菜单项下加入下面一句程序或者对设置该主菜单项的MdiList属性就可以了:WindowMenu.MdiList = true ; 本程序中,是在"窗口"主菜单项下面加入MDI窗体的子菜单项的,主窗口内的子窗体在“窗口”菜单中被跟踪。
       (5)子窗口菜单与主窗口菜单合并
        如果 MDI 子窗体有一个 MainMenu 组件(其菜单结构通常为包含菜单项的菜单结构),并且该子窗体是在一个拥有 MainMenu 组件(其菜单结构通常为包含菜单项的菜单结构)的 MDI 父窗体中打开的,那么在设置了 MergeType 属性(作为可选项,还可以设置 MergeOrder 属性)之后,这两个菜单项会自动合并。
    5. 总结本文主要是介绍如何用Visual C#来实现对MDI窗体的编程。即:新建MDI窗体、MDI窗体层叠、MDI窗体水平平铺、MDI窗体的垂直平铺。通过上述介绍,可见,在Visual C#中处理MDI还是相当比较简单的
    展开全文
  • MDI Digipot 100_MDI_源码

    2021-09-28 21:14:49
    MDI Digipot 100 - Manual Complete
  • MDI MDI-X

    2021-01-28 14:59:34
    MDI MDIX网上很多说是交叉直连的状态, 我亲自测试了, 这个应该不是交叉直连线的原因 应该是TX+ TX- 正负的原因。我把TX RX差分线对交换过后, 这个MDIX状态是不会改变的, 但是我把TX+ TX- 正负交换之后,这个...

    这2天在调一个交换机芯片ksz8795,看到个寄存器,比较有意思

    MDI  MDIX网上很多说是交叉直连的状态,  我亲自测试了, 这个应该不是交叉直连线的原因

    应该是TX+ TX-  正负的原因。我把TX RX差分线对交换过后, 这个MDIX状态是不会改变的, 但是我把TX+ TX- 正负交换之后,这个MDIX状态位是会改变的。

    展开全文
  • 多文档程序 MDI MDI

    2010-05-25 10:55:19
    C# MDI C# MDI C# MDI C# MDI 仿文本文档
  • 易语言MDI窗口源码

    2020-07-22 10:39:46
    易语言MDI窗口源码,MDI窗口,MDI窗口函数回调子程序,子窗口函数回调子程序,取当前活动窗口句柄子程序,执行整数型子程序,执行逻辑型型子程序,创建MDI客户区,创建MDI子窗口,设置为子窗口,MDI客户区移动,取MDI客户区尺寸...
  • MDI1-源码

    2021-02-07 16:00:49
    MDI1
  • Mdi多文档实例Mdi多文档实例Mdi多文档实例Mdi多文档实例Mdi多文档实例Mdi多文档实例Mdi多文档实例Mdi多文档实例
  • MDIMDI_X

    千次阅读 2017-07-01 13:38:41
    MDIMDI-X只在级连是用的,如果口子是MDI则你需要用一根交叉线来连接2台交换机,如果是MDI-X则不需要用交叉线了,直通即可! 说白了 MDI--MDI交叉线MDI---MDI_X 直通线 路由器的以太网接口、主机的NIC (Network ...

    现在的设备已经可以自适应了。

     

    MDI和MDI-X只在级连是用的,如果口子是MDI则你需要用一根交叉线来连接2台交换机,如果是MDI-X则不需要用交叉线了,直通即可! 

    说白了  MDI--MDI交叉线   MDI---MDI_X 直通线

    路由器的以太网接口、主机的NIC (Network Interface Card)的接口类型MDI

    Hub(集线器)的接口类型MDI_X

    交换机的接口类型可以为MDI和MDI_X


        之前交换机设备上会有一个MDI/MDIX按钮,不过有的路由器也拥有此按钮,我们可以通过按该按钮在MDI和MDIX工作模式之间进行切换。从而实现了同样两个设备可以使用不同线序的网线来连接,正线和反线连接设备只需要通过MDI/MDIX按钮来切换就可以满足需求。当然在实际连接时我们可以先在MDI模式工作,如果网络有问题或者端口不激活再切换到MDIX模式即可。
       有的设备可以通过内部命令来完成端口在MDI和MDIX之间的切换工作。

        具体命令如下——[Quidway-Ethernet0/1]mdi{across|normal|auto}
        输入“mdiauto”就是启用Auto MDI/MDIX自适应功能,输入mdi across就是使用mdix连接模式,输入mdinormal就是使用常规的mdi连接模式。

     

    展开全文
  • mdi:Qt示例MDI应用程序启动器,易于克隆
  • QT MDI

    2020-02-22 16:31:41
    传统的应用程序设计中有多文档界面(Multi-document Interface,MDI)应用程序,Qt 为设计 MDI 应用程序提供了支持。 本节的实例 samp6_4 是一个 MDI 应用程序,程序运行效果如图 1 所示。 图 1 MDI 应用程序实例 ...

    传统的应用程序设计中有多文档界面(Multi-document Interface,MDI)应用程序,Qt 为设计 MDI 应用程序提供了支持。

    本节的实例 samp6_4 是一个 MDI 应用程序,程序运行效果如图 1 所示。


    MDI 应用程序实例 samp6_4 的运行时界面
    图 1 MDI 应用程序实例 samp6_4 的运行时界面


    MDI 应用程序就是在主窗口里创建多个同类型的 MDI 子窗口,这些 MDI 子窗口在主窗口里显示,并共享主窗口上的工具栏和菜单等操作功能,主窗口上的操作都针对当前活动的 MDI 子窗口进行。

    设计 MDI 应用程序需要在主窗口工作区放置一个 QMdiArea 作为子窗体的容器。实例 samp6_4 主窗口的工作区使用一个 QMdiArea 组件,实例的子窗口类是 QFormDoc,是一个使用 QPlainTextEdit 进行简单文本显示和编辑的窗体。

    创建的 QFormDoc 窗体对象作为一个子窗口加入到 mdiArea 组件中。QMdiArea 组件类似于实例 samp6_3 中主窗口上的 tabWidget 组件,只是 QMdiArea 提供更加完备的功能。更改 MDI 的显示模式,可以得到与实例 samp6_3 相似的以多页组件管理的 MDI 界面效果。

    文档窗口类QFormDoc的设计

    以可视化方式创建一个基于 QWidget 的类 QFormDoc,设计可视化界面时,只放置一个 QPlainTextEdit 组件,并以水平布局填充满整个窗口。这里不再用可视化的方式设计 Action,因为 QFormDoc 窗口不需要创建自己的工具栏,而是使用主窗口上的工具栏按钮对 QFormDoc 窗体上的 QPlainTextEdit 组件进行操作。

    为 QFormDoc 添加一些用于文件打开和编辑操作的接口函数,QFormDoc 类的完整定义如下:

     
    1. class QFormDoc : public QWidget
    2. {
    3. Q_OBJECT
    4. private:
    5. QString mCurrentFile; //当前文件
    6. bool mFileOpened=false; //文件已打开
    7. public:
    8. explicit QFormDoc(QWidget *parent = 0);
    9. ~QFormDoc();
    10. void loadFromFile(QString& aFileName); //打开文件
    11. QString currentFileName();//返回当前文件名
    12. bool isFileOpened();//文件已经打开
    13. void setEditFont();//设置字体
    14. void textCut(); //cut
    15. void textCopy(); //copy
    16. void textPaste(); //paste
    17. private:
    18. Ui::QFormDoc *ui;
    19. };

    这些接口函数是为了在主窗口里调用,实现对 MDI 子窗口的操作。实现代码如下:

     
    1. QFormDoc::QFormDoc(QWidget *parent) :
    2. QWidget(parent),
    3. ui(new Ui::QFormDoc)
    4. {
    5. ui->setupUi(this);
    6.  
    7. this->setWindowTitle("New Doc"); //窗口标题
    8. this->setAttribute(Qt::WA_DeleteOnClose); //关闭时自动删除
    9. }
    10.  
    11. QFormDoc::~QFormDoc()
    12. {
    13. //QMessageBox::information(this,"信息","文档窗口被释放");
    14. delete ui;
    15. }
    16.  
    17. void QFormDoc::loadFromFile(QString &aFileName)
    18. {//打开文件
    19. QFile aFile(aFileName); //以文件方式读出
    20. if (aFile.open(QIODevice::ReadOnly | QIODevice::Text)) //以只读文本方式打开文件
    21. {
    22. QTextStream aStream(&aFile); //用文本流读取文件
    23. ui->plainTextEdit->clear();//清空
    24. ui->plainTextEdit->setPlainText(aStream.readAll()); //读取文本文件
    25. aFile.close();//关闭文件
    26. mCurrentFile=aFileName;//保存当前文件名
    27. QFileInfo fileInfo(aFileName); //文件信息
    28. QString str=fileInfo.fileName(); //去除路径后的文件名
    29. this->setWindowTitle(str);
    30. mFileOpened=true;
    31. }
    32. }
    33.  
    34. QString QFormDoc::currentFileName()
    35. {
    36. return mCurrentFile;
    37. }
    38.  
    39. bool QFormDoc::isFileOpened()
    40. { //文件是否已打开
    41. return mFileOpened;
    42. }
    43.  
    44. void QFormDoc::setEditFont()
    45. {
    46. QFont font;
    47. font=ui->plainTextEdit->font();
    48.  
    49. bool ok;
    50. font=QFontDialog::getFont(&ok,font);
    51. ui->plainTextEdit->setFont(font);
    52. }
    53.  
    54. void QFormDoc::textCut()
    55. {
    56. ui->plainTextEdit->cut();
    57. }
    58.  
    59. void QFormDoc::textCopy()
    60. {
    61. ui->plainTextEdit->copy();
    62. }
    63.  
    64. void QFormDoc::textPaste()
    65. {
    66. ui->plainTextEdit->paste();
    67. }

    注意作为 MDI 子窗口,不管其是否设置为关闭时删除,在主窗口里关闭一个 MDI 子窗口时,都会删除子窗口对象。

    MDI 主窗口设计与子窗口的使用

    主窗口界面设计

    要在主窗口实现 MDI 功能,只需在主窗口的工作区放置一个 QMdiArea 组件。图 2 是设计好的主窗口界面。


    设计时的主窗口
    图 2 设计时的主窗口


    在 UI 设计器里创建 Action,并应用 Action 设计主工具栏。在主窗口的工作区放置一个 QMdiArea 组件,然后在主窗口的构造函数里设置 mdiArea 填充满工作区。

     
    1. QWMainWindow::QWMainWindow(QWidget *parent) : QMainWindow(parent), ui(new Ui::QWMainWindow)
    2. {
    3. ui->setupUi(this);
    4. this->setCentralWidget(ui->mdiArea);
    5. this->setWindowState(Qt::WindowMaximized);
    6. ui->mainToolBar->setToolButtonStyle(Qt::ToolButtonTextUnderlcon);
    7. }

    MDI 子窗口的创建与加入

    下面是主窗口上“新建文档”按钮的响应代码:

     
    1. void QWMainWindow::on_actDoc_New_triggered()
    2. { //新建文档
    3. QFormDoc *formDoc = new QFormDoc(this);
    4. ui->mdiArea->addSubWindow (formDoc) ; //文档窗口添力口到 MDI formDoc->show();
    5. }

    代码功能是新建一个 QFormDoc 类的窗口 formDoc,构造函数中传入了主窗口指针,所以主窗口是 formDoc 的父窗口,然后使用 QMdiArea 的 addSubWindow() 函数将 formDoc 加入到 mdiArea。

    下面是主窗口上“打开文档”按钮的响应代码:

     
    1. void QWMainWindow::on_actDoc_Open_triggered()
    2. {//打开文件
    3. //必须先获取当前MDI子窗口,再使用打开文件对话框,否则无法获得活动的子窗口
    4. bool needNew=false;// 是否需要新建子窗口
    5.  
    6. QFormDoc *formDoc;
    7. if (ui->mdiArea->subWindowList().count()>0) //如果有打开的主窗口,获取活动窗口
    8. {
    9. formDoc=(QFormDoc*)ui->mdiArea->activeSubWindow()->widget();
    10. needNew=formDoc->isFileOpened();//文件已经打开,需要新建窗口
    11. }
    12. else
    13. needNew=true;
    14.  
    15. QString curPath=QDir::currentPath();
    16. QString aFileName=QFileDialog::getOpenFileName(this,tr("打开一个文件"),curPath,
    17. "C程序文件(*.h *cpp);;文本文件(*.txt);;所有文件(*.*)");
    18. if (aFileName.isEmpty())
    19. return; //如果未选择文件,退出
    20.  
    21. if (needNew) //需要新建子窗口
    22. {
    23. formDoc = new QFormDoc(this);//指定父窗口,必须在父窗口为Widget窗口提供一个显示区域
    24. ui->mdiArea->addSubWindow(formDoc);
    25. }
    26.  
    27. formDoc->loadFromFile(aFileName); //打开文件
    28. formDoc->show();
    29.  
    30. ui->actCut->setEnabled(true);
    31. ui->actCopy->setEnabled(true);
    32. ui->actPaste->setEnabled(true);
    33. ui->actFont->setEnabled(true);
    34. }

    通过 QMdiArea::subWindowList() 可以获得子窗口对象列表,从而可以判断子窗口的个数。如果没有一个MDI子窗口,就创建一个新的窗口并打开文件。

    如果有 MDI 子窗口,则总有一个活动窗口,通过 QMdiArea::activeSubWindow() 可以获得此活动的子窗口,通过子窗口的 isFileOpened() 函数判断是否打开了文件,如果没有打开过文件,就在这个活动窗口里打开文件,否则新建窗口打开文件。

    注意一定要先获取 MDI 子窗口,再使用 QFileDialog 选择需要打开的文件。如果顺序更换了,则无法获得正确的 MDI 活动子窗口。

    QMdiArea常用功能函数

    QMdiArea 提供了一些成员函数,可以进行一些操作,工具栏上的“关闭全部”、“MDI模式”、“级联展开”、“平铺展开”等按钮都是调用 QMdiArea 类的成员函数实现的。

    下面是这几个按钮功能的实现代码:

     
    1. void QWMainWindow::on_actCascade_triggered()
    2. { //窗口级联展开
    3. ui->mdiArea->cascadeSubWindows();
    4. }
    5.  
    6. void QWMainWindow::on_actTile_triggered()
    7. {//平铺展开
    8. ui->mdiArea->tileSubWindows();
    9. }
    10.  
    11. void QWMainWindow::on_actCloseALL_triggered()
    12. {//关闭全部子窗口
    13. ui->mdiArea->closeAllSubWindows();
    14. }
    15. void QWMainWindow::on_actViewMode_triggered(bool checked)
    16. {//MDI 显示模式
    17. if (checked) //Tab多页显示模式
    18. {
    19. ui->mdiArea->setViewMode(QMdiArea::TabbedView); //Tab多页显示模式
    20. ui->mdiArea->setTabsClosable(true); //页面可关闭
    21. ui->actCascade->setEnabled(false);
    22. ui->actTile->setEnabled(false);
    23. }
    24. else 子窗口模式
    25. {
    26. ui->mdiArea->setViewMode(QMdiArea::SubWindowView); //子窗口模式
    27. ui->actCascade->setEnabled(true); //
    28. ui->actTile->setEnabled(true); //
    29. }
    30. }

    其中,设置 MDI 视图模式用 setViewMode() 函数,有两种模式可以选择:

    1. QMdiArea::Sub Window View 是传统的子窗口模式,显不效果如图 1 所示。
    2. QMdiArea::TabbedView 是多页的显示模式,显示效果如图 3 所示。


    多页模式下 MDI 界面
    图 3 多页模式下 MDI 界面

    MDI的信号

    QMdiArea 有一个信号 subWindowActivated(QMdiSubWindow *argl),在当前活动窗口切换时发射,利用此信号可以在活动窗口切换时进行一些处理,例如,在状态栏里显示活动 MDI 子窗口的文件名,在没有 MDI 子窗口时,将工具栏上的编辑功能按钮设置为禁用。

    下面是该信号的槽函数代码:

     
    1. void QWMainWindow::on_mdiArea_subWindowActivated(QMdiSubWindow *arg1)
    2. {//当前活动子窗口切换时
    3. if (ui->mdiArea->subWindowList().count()==0)
    4. { //若子窗口个数为零
    5. ui->actCut->setEnabled(false);
    6. ui->actCopy->setEnabled(false);
    7. ui->actPaste->setEnabled(false);
    8. ui->actFont->setEnabled(false);
    9. ui->statusBar->clearMessage();
    10. }
    11. else
    12. {
    13. QFormDoc *formDoc=static_cast<QFormDoc*>(ui->mdiArea->activeSubWindow()->widget());
    14. ui->statusBar->showMessage(formDoc->currentFileName()); //显示主窗口的文件名
    15. }
    16. }

    主窗口工具栏上的“剪切”、“复制”、“粘贴”、“字体设置”等按钮都是调用当前子窗口的相应函数,关键是获取当前 MDI 子窗体对象。

    例如,“剪切”和“字体设置”按钮的代码如下:

    纯文本复制
     
    1. void QWMainWindow::on_actCut_triggered()
    2. { //cut
    3. QFormDoc* formDoc=(QFormDoc*)ui->mdiArea->activeSubWindow()->widget();
    4. formDoc->textCut();
    5. }
    6. void QWMainWindow::on_actFont_triggered()
    7. {//设置字体
    8. QFormDoc* formDoc=(QFormDoc*)ui->mdiArea->activeSubWindow()->widget();
    9. formDoc->setEditFont();
    10. }
    展开全文
  • MDI窗体

    热门讨论 2019-11-21 21:06:00
    MDI是多文档界面,由一个父窗体和多个子窗体组成,窗体与窗体之间存在父子或兄弟关系,父窗体可以统一控制子窗体的外观和行为,而且一个工程中只能有一个MDI窗体,它可以包括多个子窗体。因此,在MDI中调用的窗体都...
  • MDI Converter 4.7

    2015-11-18 10:45:49
    MDI Converter 也叫做MDI查看器,这是一个用于查看或转MDI文件或其他图像格式的文档转换软件。使用MDI Converter,用户可以转换MDI文件成一个单一的PDF文档,文本文件或图像格式如JPG,BMP,TIF和PNG。它也可以用作...
  • 易语言mdi类模块源码

    2020-08-16 01:37:42
    易语言mdi类模块源码 系统结构:创建MDI客户区,创建MDI子窗口,设置为子窗口,MDI客户区移动,取MDI客户区尺寸,排列图标,最大化活动子窗口,最小化活动子窗口,取子窗口数量,恢复活动子窗口
  • MDI窗口案例

    2018-07-27 12:49:51
    本程序使用了MDI窗口,通过简单的例子可以使PB初学者快速学会MID窗体的使用,另外里面涉及了自定义按钮的案例,窗口居中的案例
  • 项目Windows窗体MDI父级 Windows窗体Csharp MDI
  • 易语言MDI支持库源码

    2020-07-20 10:16:21
    易语言MDI支持库源码,MDI支持库,加入窗口
  • MDI Application.zip

    2020-11-28 11:30:47
    MDI Application例子,fsMDIForm父窗口fsMDIChild和子窗口的例子,经典的例子。
  • Tk::MDI 是 perl/Tk 的多文档界面。 对于不熟悉 MDI 的 X11 爱好者来说,它实际上是一个“假”窗口管理器。 Windows 仅限于 Tk 框架。 功能包括最小化、最大化、关闭、级联和平铺。
  • 易语言仿MDI窗口源码

    2020-07-23 21:53:21
    易语言仿MDI窗口源码,仿MDI窗口,初始化,新建子窗口,SetWindowLongA,SetWindowTextA
  • 易语言MDI支持库.rar

    2020-02-23 12:46:20
    易语言MDI支持库.rar 易语言MDI支持库.rar 易语言MDI支持库.rar 易语言MDI支持库.rar 易语言MDI支持库.rar 易语言MDI支持库.rar
  • 易语言创建MDI窗口

    2018-01-31 18:50:21
    易语言创建MDI窗口,便于在制作SHE内存皮肤时验证在MDI创建下得到的皮肤效果
  • MDI支持库-易语言

    2021-06-13 16:02:30
    MDI支持库
  • MDI产业链梳理:供需格局如何?如何判断后期MDI价格?.pdf
  • 基础化工周报:万华MDI挂牌价环比不变,看好MDI景气持续.pdf
  • 化工行业周报:万华MDI挂牌价环比上调,看好MDI景气回升.pdf
  • 易语言MDI操作类模块源码 系统结构:创建MDI客户区,创建MDI子窗口,设置为子窗口,MDI客户区移动,取MDI客户区尺寸,排列图标,最大化活动子窗口,最小化活动子窗口,取子窗口数量,恢复活动子
  • MDI窗体代码

    2015-11-04 23:12:41
    winfrom开发代码,MDI资源,喜欢的可以看看。

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 25,258
精华内容 10,103
关键字:

mdi