科技行者

行者学院 转型私董会 科技行者专题报道 网红大战科技行者

知识库

知识库 安全导航

至顶网软件频道基础软件托管C++程序开发—Win表单文档程序设计(下)

托管C++程序开发—Win表单文档程序设计(下)

  • 扫一扫
    分享文章到微信

  • 扫一扫
    关注官方公众号
    至顶头条

MFC的“文档/视图”机制最大的好处是可以很容易实现“一档多视”。但其内部机制是非常复杂

作者:Adding 来源:YESKY 2007年11月16日

关键字:

  • 评论
  • 分享微博
  • 分享邮件
运行后,结果如图1所示。需要说明的是,由于.NET的切分需要正确的控件Z次序,否则不会出现预期的结果,通常Splitter在TreeView之前。上述切分是将两个控件分隔,若要切分三个或三个以上时需要使用Panel控件来作为其他控件的容器,例如下列的代码,其结果如图2所示。

...
__gc class WinForm: public Form
{
private:
TreeView *m_pTreeDirs;
ListView *m_pListFiles;
TextBox *m_pTextBox;
Splitter *m_pSplitter1;
Splitter *m_pSplitter2;
Panel *m_pPanel;

public:
...
void InitForm()
{

Text = S"切分窗口的应用示例";
ClientSize = Drawing::Size(600, 400);

// 所有的控件进行实例化
m_pTreeDirs = new TreeView();
m_pListFiles = new ListView();
m_pTextBox = new TextBox();
m_pSplitter1 = new Splitter();
m_pSplitter2 = new Splitter();
m_pPanel = new Panel();

// 先将m_pSplitter2、m_pTextBox和m_pListFiles加入m_pPanel中
m_pSplitter2->TabStop = false;
m_pSplitter2->BorderStyle = BorderStyle::Fixed3D;
m_pSplitter2->Dock = DockStyle::Top;
m_pSplitter2->Size = Drawing::Size(300,2);

m_pTextBox->Multiline = true;
m_pTextBox->Dock = DockStyle::Top;
m_pTextBox->Size = Drawing::Size(300,200);
m_pTextBox->Text = S"这是一个编辑框";

m_pListFiles->Dock = DockStyle::Fill;

m_pPanel->Controls->Add(m_pListFiles);
m_pPanel->Controls->Add(m_pSplitter2);
m_pPanel->Controls->Add(m_pTextBox);

// 再将m_pSplitter1、m_pPanel和m_pTreeDirs加入Controls容器中
m_pSplitter1->TabStop = false;
m_pSplitter1->BorderStyle = BorderStyle::Fixed3D;
m_pSplitter1->Dock = DockStyle::Left;
m_pSplitter1->Size = Drawing::Size(2,400);

m_pTreeDirs->Size = Drawing::Size(300,400);
m_pTreeDirs->Dock = DockStyle::Left;
m_pTreeDirs->TabIndex = 0;

m_pPanel->Dock = DockStyle::Fill;

Controls->Add(m_pPanel);
Controls->Add(m_pSplitter1);
Controls->Add(m_pTreeDirs);
}
};
...

              图2
    • 评论
    • 分享微博
    • 分享邮件
    邮件订阅

    如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。

    重磅专题
    往期文章
    最新文章