VC编程之Dialog 窗体随意切割子窗体
小标 2018-10-29 来源 : 阅读 1023 评论 0

摘要:本文主要向大家介绍了VC编程之Dialog 窗体随意切割子窗体,通过具体的内容向大家展示,希望对大家学习VC编程有所帮助。

本文主要向大家介绍了VC编程之Dialog 窗体随意切割子窗体,通过具体的内容向大家展示,希望对大家学习VC编程有所帮助。

用 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/MFC的学习,希望对VC/MFC有兴趣的朋友有所帮助。了解更多内容,请关注职坐标编程语言VC/MFC频道!

本文由 @小标 发布于职坐标。未经许可,禁止转载。
喜欢 | 1 不喜欢 | 0
看完这篇文章有何感觉?已经有1人表态,100%的人喜欢 快给朋友分享吧~
评论(0)
后参与评论

您输入的评论内容中包含违禁敏感词

我知道了

助您圆梦职场 匹配合适岗位
验证码手机号,获得海同独家IT培训资料
选择就业方向:
人工智能物联网
大数据开发/分析
人工智能Python
Java全栈开发
WEB前端+H5

请输入正确的手机号码

请输入正确的验证码

获取验证码

您今天的短信下发次数太多了,明天再试试吧!

提交

我们会在第一时间安排职业规划师联系您!

您也可以联系我们的职业规划师咨询:

小职老师的微信号:z_zhizuobiao
小职老师的微信号:z_zhizuobiao

版权所有 职坐标-一站式IT培训就业服务领导者 沪ICP备13042190号-4
上海海同信息科技有限公司 Copyright ©2015 www.zhizuobiao.com,All Rights Reserved.
 沪公网安备 31011502005948号    

©2015 www.zhizuobiao.com All Rights Reserved

208小时内训课程