用 Dialog 对话框来实现窗体的随意切割。

在资源中加入  Dialog 选择  IDD_FORMVIEW 资源。。分别新建FormViewOne,FormViewTwo FormViewThree 类,分别继承基类 CFormView。

class CMyFormViewOne : public CFormView
{
DECLARE_DYNCREATE(CMyFormViewOne) protected:
CMyFormViewOne(); // 动态创建所使用的受保护的构造函数
virtual ~CMyFormViewOne(); public:
enum { IDD = IDD_FORMVIEW };
#ifdef _DEBUG
virtual void AssertValid() const;
#ifndef _WIN32_WCE
virtual void Dump(CDumpContext& dc) const;
#endif
#endif protected:
virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV 支持 DECLARE_MESSAGE_MAP()
};
public:
afx_msg int OnCreate(LPCREATESTRUCT lpCreateStruct); public:
CFrameWnd *m_pMyWnd;
CSplitterWnd m_SplitterWnd;
CSplitterWnd m_SplitterWnd2;

	|			|		|
| | 2 |
| 1 |||||||||||||||||
| | 3 |
| | |

int CSplitDlgDlg::OnCreate(LPCREATESTRUCT lpCreateStruct)
{
if (CDialog::OnCreate(lpCreateStruct) == -1)
return -1; CString strMyClass = AfxRegisterWndClass(CS_VREDRAW |CS_HREDRAW,
::LoadCursor(NULL, IDC_ARROW),
(HBRUSH) ::GetStockObject(WHITE_BRUSH),
::LoadIcon(NULL, IDI_APPLICATION)); // Create the frame window with "this" as the parent
m_pMyWnd = new CFrameWnd;
m_pMyWnd->Create(strMyClass,_T(""), WS_CHILD,
CRect(0,0,200,200), this);
m_pMyWnd->ShowWindow(SW_SHOW); if (m_SplitterWnd.CreateStatic(m_pMyWnd,1, 2) == NULL) //1行2列
{
return -1;
} if(m_SplitterWnd2.CreateStatic(&m_SplitterWnd,2,1,WS_CHILD|WS_VISIBLE,m_SplitterWnd.IdFromRowCol(0,1)) == NULL)
{
return -1;
} m_SplitterWnd.CreateView(0,0, RUNTIME_CLASS(CMyFormViewOne),
CSize(100,100), NULL); m_SplitterWnd2.CreateView(0,0, RUNTIME_CLASS(CMyFormViewTwo),
CSize(80,80), NULL); m_SplitterWnd2.CreateView(1,0, RUNTIME_CLASS(CMyFormViewThree),
CSize(80,80), NULL);
return 0;
}

在 OnInitDialog 函数中

	CRect rect;
GetWindowRect(&rect);
ScreenToClient(&rect); m_pMyWnd->MoveWindow(&rect);
m_pMyWnd->ShowWindow(SW_SHOW);

去掉子窗体的滚动栏的显示。。例如以下代码就可以

void CMyFormViewOne::OnInitialUpdate()
{
CFormView::OnInitialUpdate(); m_nMapMode = -1;
}



【VC】Dialog 窗体随意切割子窗体。的更多相关文章

  1. winform里操作打开在panel里的form窗体,子窗体操作同级子窗体或者父窗体的方法

    最近开始了一个winform项目,原先一直都是web项目.遇到个问题,就是在框架内,左侧和中间的main都是用panel来实现的form,就是把form窗体打开到panel里,实现左侧是导航,中间是操 ...

  2. 主窗体里面打开子窗体&&打印饼图《Delphi 6数据库开发典型实例》--图表的绘制

    \Delphi 6数据库开发典型实例\图表的绘制 1.在主窗体里面打开子窗体:ShowForm(Tfrm_Print); procedure Tfrm_Main.ShowForm(AFormClass ...

  3. C#嵌入子窗体,判断子窗体是否打开了

    /// <summary> /// 嵌入子窗体,判断子窗体是否打开了 /// </summary> public static Form1 f; public void For ...

  4. 【winform】主窗体多线程给子窗体传值

    1.主窗体多线程给子窗体传值 解决方案:主要使用委托,因为会出现跨线程错误 主窗体 public FormMain() { InitializeComponent(); //background th ...

  5. Winform中如何实现父窗体传递数据到子窗体并刷新子窗体

    原理:利用委托和事件,本文将以图文并茂的例子讲述,告诉我们So Easy --------------------------------------------------------------- ...

  6. Ribbon 窗体的 MDI 子窗体使用 TabbedMDIManager 切换时工具条闪屏问题的解决办法

    补充说明: 此问题已经在新版本中解决(15.2.6),方法更加简单,只需要在 MDIChild 窗体的 Create 方法中,将 Ribbon 的 Visible 属性设置为 false 就可以了,且 ...

  7. WinForm中如何实现在容器控件中嵌入form窗体(panel与子窗体)

    今天在做项目时候遇到一个问题,窗体分为左右两部分,要求在左边栏点击按钮时,右边动态加载窗体最后想到用panel实现,经历几次失败,并查找资料后,终于搞定 说明:如果多次切换需加入 panel.clea ...

  8. js父窗体关闭,子窗体紧随

    近来的.我们遇到了权限管理系统.由于权限管理系统与原系统的风格不符.打开一个全新的窗口.问题就来了.admin取消后,,权限管理形式不关闭.其他普通用户登录后.尚能经营权的管理形式. 简化问题:adm ...

  9. 父窗体的委托,子窗体注册,this.Owner是关键

    //声明委托 public delegate void RefreshParentHandler<T>(T obj); //父窗体的委托 public RefreshParentHandl ...

随机推荐

  1. exp-00091 oracle错误的解决办法

    在进行数据库导入导出使用命令exp.imp经常出现exp-00091 这样的错误的时候,我们需要做的是对于环境变量NLS_LANG设置正确 首先,我们先查看需要导出的数据库的字符编码    selec ...

  2. HDU 4642 (13.08.25)

    Fliping game Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Tot ...

  3. 【转】理解RESTful架构

    [转]理解RESTful架构 越来越多的人开始意识到,网站即软件,而且是一种新型的软件. 这种"互联网软件"采用客户端/服务器模式,建立在分布式体系上,通过互联网通信,具有高延时( ...

  4. C#_会员管理系统:开发三(修改密码)

    为以后多个功能界面考虑,新增一个主界面: 主界面如下: 主界面(VIPMain.cs)详细代码如下: using System; using System.Collections.Generic; u ...

  5. BZOJ 3626: [LNOI2014]LCA( 树链剖分 + 离线 )

    说多了都是泪啊...调了这么久.. 离线可以搞 , 树链剖分就OK了... -------------------------------------------------------------- ...

  6. 我的wifi

    首先利用百度查找 怎么承载网络,托管网络的用户名和密码 . 1.以管理员身份运行命令提示符: 快捷键win+R→输入cmd→回车 2.启用并设定虚拟WiFi网卡: 运行命令:netsh wlan se ...

  7. 在Windows下github展示代码

    最近大爱Web编程,于是寻找各种代码中,然后就发现了GitHub这个网站,如果你知道Google Code,那么你就知道这个GitHub是做什么的了.不过GitHub主要是用作基于Git的分布式版本管 ...

  8. pay包注释(一)

    lovep2c项目pay模块注释: views.py: def create_user_no(email):    return md5(email).hexdigest().upper() + &q ...

  9. 错误解决--oracle中出现ORA-01791: 不是 SELECTed 表达式 错误

    Oracle数据库,执行下面语句出现错误“ORA-01791: 不是 SELECTed 表达式”: select distinct t.name from auth_employee t order ...

  10. 非确定有限状态自动机的构建(二)——将CharVal转换为NFA

    保留版权,转载注明出处:潘军彪的个人博客(http://blog.csdn.net/panjunbiao/article/details/9378933) 将上下文无关文法读入内存之后,可以将它转换成 ...