MFC 窗口分割与通信】的更多相关文章

一.关于CSplitterWnd类我们在使用CuteFtp或者NetAnt等工具的时候,一般都会被其复杂的界面所吸引,在这些界面中窗口被分割为若干的区域,真正做到了窗口的任意分割. 那么我们自己如何创建类似的界面,也实现窗口的任意的分割呢 ?在VC6.0中这就需要使用到CSplitterWnd类.CSplitterWnd看上去像是一种特殊的框架窗口,每个窗口都被相同的或者不同的视图所填充.当窗口被切分后用户可以使用鼠标移动切分条来调整窗口的相对尺寸.虽然VC6.0支持从AppWizard中创建分…
一个偶然的机会又重新接触了MFC窗口的分割,自己结合资料重新写了一个窗口分割的程序,现将具体流程跟大家分享一下: 1.我们先创建一个MFC单文档类的程序,具体分割方式先将单文档整个客户区分成两行一列,首先我们在MFC的CMainFrame类中定义一个CSplitterWnd类的对像m_wndSplitter,在主窗口类中我们可以通过对象m_wndSplitter,调用CSplitterWnd类的所有成员函数,为了将窗口分割成两行一列,我们在CMainFrame类中重载OnCreateClient…
动态分割窗口: BOOL CMainFrame::OnCreateClient(LPCREATESTRUCT lpcs, CCreateContext* pContext) { , , CSize(, ), pContext)) { return TRUE; } else { return false; } //return CFrameWnd::OnCreateClient(lpcs, pContext); } 静态分割窗口: 为MainFrame类添加两个成员变量如下,并重载虚函数OnCre…
将视图中插入列表: 1.创建一个MFC应用程序,在MFC Wizard中,生成的类选项,如图 2.选择CListView作为基类 3.在CXXView.cpp(XX为你的程序名)重写虚函数OnInitialUpdate().在函数中添加以下代码. GetListCtrl().ModifyStyle(,LVS_REPORT|LVS_EDITLABELS); //List-View Window Styles GetListCtrl().SetExtendedStyle(LVS_EX_GRIDLIN…
分割窗口概述 分割窗口,顾名思义,就是将一个窗口分割成多个窗格,在每个窗格中都包含有视图,或者是同一类型的视图,或者是不同类型的视图. MFC分割窗口的方式有两种,动态分割和静态分割. 动态分割窗口通常用于创建同一个文档对应的多个视图,而且这些视图一般都是同一类型的视图,能够在用户编辑文档的不同部分时提供方便. 大家看下Word里的动态分割窗口就很明白了,以Word 2007文档为例,在菜单中点击“视图”->“拆分”,就可以看到一条随鼠标移动的分隔条,当我们在文档中某个位置按下鼠标左键时,分割条…
 MFC中文档与视图(二) Last Edit 2013/11/19 这篇主要是介绍一下怎么去分割视图. 视图的分割分为:动态分割,静态分割.所谓的静态分割是指软件一启动视图就分割完成,而动态分割是在使用过程中动态的去实现的.大家可能都用过Word里面拆分窗口,这就是动态分割的一个例子.   要实现分割要使用到MFC中一个CSplitterWnd类 常用的几个函数. Create是动态分割用到的函数   virtual BOOL Create(   CWnd* pParentWnd,//分割窗口…
引用:http://www.cnblogs.com/windeer/archive/2012/11/18/2767750.html 引言 现在智能手机已经慢慢进入大众化,移动类应用开始火爆起来,游戏类应用更是占据了手机用户的大部分碎片时间. 现在手机开发游戏也逐渐流行开来,手机的平台目前主打是 Andoird.IOS和WindowPhone.Cocos2DX跨平台开发成为吸引手机开发商和独立游戏制作人的一大亮点. Cocos2dX脱胎于Cocos2D,有优良的血统,成熟的框架,加上不错的效率,成…
BOOL CMyApp::InitInstance() { if ( m_bShowGui==FALSE ) { FILE *stream = NULL; AllocConsole(); // 开辟控制台 SetConsoleTitle(_T("xxxxx")); // 设置控制台窗口标题 freopen_s(&stream, "CONOUT$", "w", stdout); // 重定向输出 freopen_s(&stream,…
Invalidate()与 UpdateAllViews()有什么分别 Invalidate()是让程序重画窗口. UpdateAllViews()是在DOC/VIEW结构中, 当一个视图的数据改变后, 通知所有视图作相应的改变, 和重画毫无关系. Invalidate()是使窗口无效,使系统向其发WM_PAINT消息,使的程序的OnPaint被调用重画客户区. 而UpdateAllViews()是文档与视之间的联系,调用从它会使程序与此文档相关的所有视的UpdateView被调用至于是否重画以…
This piece of code demonstrate how to override WM_CLOSE event. 点击窗口关闭按钮,触发相关事件! 有时候,在MFC程序退出之前,我们通常会提醒用户做一些事情,比如说保存窗口数据等. 解决方法: 在主窗口的cpp文件里: #include "afxpriv.h" BEGIN_MESSAGE_MAP(CMainFrame, CFrameWnd) .... ON_MESSAGE_VOID(WM_CLOSE,myClose) //新…