科技行者

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

知识库

知识库 安全导航

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

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

  • 扫一扫
    分享文章到微信

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

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

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

关键字: 托管C++ Win 表单文档程序 设计

  • 评论
  • 分享微博
  • 分享邮件
MFC的“文档/视图”机制最大的好处是可以很容易实现“一档多视”。但其内部机制是非常复杂,我们没有必要也不可能自己用托管C++方法去设计这样的机制,不过对于常用的文档、视图和窗口的经典问题,我们仍有必要对此进行深入探讨。这些问题包括:切分窗口、视图切换以及一档多视。限于篇幅,这里仅就切分窗口以及窗格之间的数据传送作深入研究。

  一、创建切分窗口

  我们知道,MFC的切分窗口是一种“特殊”的文档窗口,它可以有许多窗格(pane),在窗格中又可包含若干个视图。并且它有静态切分和动态切分之分,而且静态切分允许的最大窗格数目为16 x 16。但在.NET中,切分窗口的概念已经发生了很大的变化,它将切分窗口中所用的切分条Splitter变成一个类,因此在.NET中,用托管C++创建切分需要另外方法,并且也不能像MFC那样可以随意静态切分256个窗格。事实上,在实际运用中,由于现在的编程工具提供丰富的Win32界面功能,因而我们大多数所使用的切分窗口通常只需2到3个窗格,而更复杂的界面则由其他方法来实现。
由于动态切分窗口在.NET中用托管C++很难实现,因此我们这里仅对静态切分作探讨。

  先看一个简单的示例代码:

#using
using namespace System;

#using "System.dll"
#using "System.Windows.Forms.dll"
#using "System.Drawing.dll"

using namespace System::ComponentModel;
using namespace System::Windows::Forms;
using namespace System::Drawing;

__gc class WinForm: public Form
{
private:
TreeView *m_pTreeDirs; // 定义树视图类对象
ListView *m_pListFiles; // 定义列表视图类对象
Splitter *m_pSplitter; // 定义切分条类对象

public:
WinForm()
{
InitForm();
}
void Dispose()
{
Form::Dispose();
}
void InitForm()
{

Text = S"切分窗口的应用示例";
ClientSize = Drawing::Size(600, 400); // 设置窗口客户区大小

m_pTreeDirs = new TreeView();
m_pSplitter = new Splitter();
m_pListFiles = new ListView();

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

m_pSplitter->TabStop = false;
m_pSplitter->BorderStyle = BorderStyle::Fixed3D;
m_pSplitter->Dock = DockStyle::Left;
m_pSplitter->TabIndex = 1;

m_pListFiles->Dock = DockStyle::Fill;

Controls->Add(m_pListFiles);
Controls->Add(m_pSplitter);
Controls->Add(m_pTreeDirs);
}
};
#ifdef _UNICODE
int wmain(void)
#else
int main(void)
#endif
{
Application::Run(new WinForm());
return 0;
}

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

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

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