托管C++程序开发—Win表单文档程序设计(下)C语言教程
|
| 论文作者:佚名 论文来源:不详 论文发布时间:2006-6-19 22:19:24 论文发布人:chjchjchj |
减小字体
增大字体
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
|
|
|
|
|
|
|
| ∷相关技术评论 |
(评论内容只代表网友观点,与本站立场无关!) [查看发表评论...] | |
|
|
| |
站内广告 |
| |
|
站内搜索 |
| |
栏目导航 |
| |
|
|
本月热门 |
| |
|
|
本日热门 |
| |
|
|
|