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

mqq870870

mqq870870

2016-01-29 12:42

托管C++程序开发—Win表单文档程序设计(下),托管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;
}
         图1
展开更多 50%)
分享

猜你喜欢

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

C语言教程 C语言函数
托管C++程序开发—Win表单文档程序设计(下)

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

C语言教程 C语言函数
托管C++程序开发—Win表单文档程序设计(中)

s8lol主宰符文怎么配

英雄联盟 网络游戏
s8lol主宰符文怎么配

C++程序设计最佳实践

编程语言 网络编程
C++程序设计最佳实践

程序员必读的《C++程序设计陷阱》

编程语言 网络编程
程序员必读的《C++程序设计陷阱》

lol偷钱流符文搭配推荐

英雄联盟 网络游戏
lol偷钱流符文搭配推荐

理解C++程序设计中的抽象理论

编程语言 网络编程
理解C++程序设计中的抽象理论

C++程序设计从零开始之指针

编程语言 网络编程
C++程序设计从零开始之指针

lolAD刺客新符文搭配推荐

英雄联盟
lolAD刺客新符文搭配推荐

什么是Web设计-从纸张到软件

什么是Web设计-从纸张到软件

流程图软件Visio作“高难度”网页

流程图软件Visio作“高难度”网页
下拉加载更多内容 ↓