vs2008mfc入门指导案例.docxVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
简介 本文主要是对MFC中CSplitterWnd的用法做个简要介绍。我找了很久相关资料都没有找到适合新手的相关文章。希望 本文能够帮助有着类似痛苦经历的兄弟。 背景 分割窗体就是把一个窗体分割成多个面板,如图 1那样,或者像是迅雷那样。面板就是放各种控件或视图的容器。 分割窗体有两种形式,静态和动态。今天讲的只涉及到静态的,因为动态的要复杂些。两种形式的区别在于动态的可以 收拢和展开,静态的则不能。 代码指南 0、建立项目 打开VS2008新建项目选择MFC MFC应用程序。 图2 如上图所示,设置好之后单击“完成” 1、定义变量 如图4,在MainFrm.h中添加变量 CSplitterWnd splitter 和BOOLisInit 。布尔变量islnit 用来管理分割窗体的 状态,用来判断是否已经分割过了。splitter 是用来把窗体分割成图1那样子。另外,在MainFrm的构造函数中,把isInit 设置为FALSE如图3. CM ainFr am e : : CMai niFr am e H TODO:在此奉加咸员初妬址代码 islnit=FALSE, □ class CMainfr3me : public CFrameWnxiEji prot^ltd: H忧从序列化刨題 CM^iiLFrwna 0; DECLARE JDYNCEEATE OainFrame U雇性 puKli e: i 1 i 11ertfnd edIi11er; CS //: BOOL islait; //操作 public: 技巧:用惯了 VC#勺智能感知,很不习惯VC里面没有智能感知。不过据我所知早在 VC6里面就有个快捷键 Alt+ -来实 现类似智能感知的功能,如图3中,输入is后,同时按下Alt + -这两个键就出现了供选择变量、方法、宏等的列表, 继续输入in后,islnit 就出来了。 2、分割窗体 分割窗体的动作应该在主窗体创建客户区的时候执行。在 MainFrm中对OnCreateClient消息进行重写就可以达到我们 的目的。 在VC2008中,单击“视图”,类视图”,选中 CMainFrm右键,选择属性”,如图5. il类视图 Lj I * * 11 6 ?索》 * □ -A S-a-:spli ter 映射 壬宏和當 S-a-: 7全局函数和吏星 十 CALoutBlg ■弋CM^inFr ^ne 莓 Cspli itrApp 听$ CspliltrD?c 这 Cspli terVi ?W 在“属性”窗口右上选择“重写”,如图 6.就是“闪电”右边的右边那个 属性 ■扫X OnStifr OnStifr 电审 i ewM RecalcLayou t E通] aec[)*lkF*ulth accMitTest 向下拉动滚动条,找到 OnCreateClient,选择 添加 OnCreateClient。如图7. =—-a OnCmmiUid OnCreateAggre. OnCrettClierL ■ On 爛^加》OiiCreateCli ent LJl IiAl W UA L J* OnToolHi tTest OnUpdai?Firtm?F 图7 在新创建的函数中写代码,如图 \[ El BOOL CMa i rJr am e : : DnCr e at eCi i eat OUCRE ATESTRUCT lpcs, CCr e at eC ont ex t* pCautekt) { // TOLD:在此添加专用代玛和/咸调用基类 lf (Isplittw. L 2)) h 刨建夷败 祢也可以在这里加对话腿采提示 return FALSE; ) retum CFrameWndEK: OnCreateClient Q.pcs?. pContext); } 图8 CreateStatic函数中,参数依次是父窗口、分成几行、分成几列。如上代码,我们是要分成 1行2列。 3、创建视图 在上一步中,我们把窗体分割成两个面板。如果不继续分割成更多子面板的话,就必须绑定一个视图到一个面板上。在 调用了 CreateStatic 之后,接着绑定默认视图到那两个面板上。如图 9。还是图8的那个函数里接着写的。 3 BOOL CMainFrame: : OnCr eateCli en t (LPCEEATEgTRUCT IpcE, CCr eateCantext* pC out ext) { TODO在此忝加专用代码和/■或调用基类 i f (1 spl i tttr. Great eStatic (thi s, lf 2)) { b 〃自腱失败 〃祢也可以在这里加对话框来提示 return FAI5E; 1 CfteL c

文档评论(0)

170****6769 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档