VC++ MFC SDI/MDI Ribbon程序的停靠窗格被关闭后如何再次显示
VC++ 创建基于MFC的SDI应用程序,Visual Studio风格的主界面如下图所示,在该主界面上的视图菜单下包含有队对各个可停靠窗格显示或隐藏的控制菜单项。而基于Ribbon风格的应用程序,所以视图菜单下面的其他菜单都不显示了,只剩下了一个控制状态条显示或隐藏的CheckBox。

问题:MFC程序使用了Ribbon风格的,所以其他菜单都不显示了。有一个系统自动生成的停靠窗格,被该窗格不小心关掉后,再调试也显示不出来了。肿么办啊?

解答:消除停靠位置,存储记忆功能:在CMainFrame中,CreateDocablePane之前,调用CMainFrame::EnableLoadDockState(FALSE);即可。
如果MFC程序不是Ribbon风格的,窗体界面一般如下图所示:

可以通过在View视图菜单里添加如下代码实现隐藏的窗格的再次显示:
CDockablePane::ShowPane();
docablepane 可停靠窗口在使用过程中的问题小结 vc mfc
问题一:可停靠窗口在左上角显示 没有停靠到指定位置
这几天在调Docablepane 可停靠窗口VC++ 2010,遇到这个如题问题。
目前接触到的原因:
1、DockPane(&m_yourPane);//未调用,或未执行
2、//并且注意在m_yourPane.Create( 中创建风格处指定 | WS_VISIBLE);
内部运行原理原因没分析出来,估计与Cpane的SetWindowPos 函数处调用有问题。感兴趣可调试Mfc源代码
问题二:消除停靠位置,存储记忆功能
在CMainFrame中,CreateDocablePane之前,调用CMainFrame::EnableLoadDockState(FALSE);
问题三:去掉停靠窗口右上角关闭按钮,
m_ourPane.SetControlBarStyle(~AFX_CBRS_CLOSE)
问题四:如何指定可停靠位置。
1、在创建时,风格参数中 CBRS_BOTTOM \CBRS_LEFT ... 等指定初始显示的位置
2、创建后可调用 m_pane.EnableDocking(CBRS_ALIGN_ANY/*任意位置*/); CBRS_ALIGN_LEFT, BOTTOM 等 指定可停靠在Frame中的位置
注意,当指定dcoapane的控制条某些属性(SetControlBarStyle(AFX_CBRS_RESIZE))后,用户则无法拖动该可停靠窗口
问题五:如何禁止用户拖动可停靠窗口
m_pane.SetControlBarStyle(AFX_CBRS_RESIZE);
问题六:如何排版多个可停靠窗口
请参考:http://blog.csdn.net/kikaylee/article/details/8936953
如何创建多功能停靠窗口,以及如和销毁可停靠窗口,以及使用参见:http://www.codeproject.com/Articles/493218/Understanding-CDockablePane
个人觉得普通显示关闭,没必要像codeProject这位,每次都去创建销毁可停靠窗口来进行显示或隐藏,建议使用成员函数的方式,进行m_pane.ShowWindow(SW_HIDE /*SW_SHOW*/)及可。
VC++ MFC SDI/MDI Ribbon程序的停靠窗格被关闭后如何再次显示的更多相关文章
- 基于VC++ Win32+CUDA+OpenGL组合与VC++ MFC SDI+CUDA+OpenGL组合两种方案的遥感影像显示:获得的重要结论!
1.基于VC++ Win32+CUDA+OpenGL组合的遥感影像显示 在该组合方案下,初始化时将OpenGL设置为下面两种方式,效果一样 //设置方式1 glutInitDisplayMode (G ...
- vc++MFC开发上位机程序
用vc++MFC开发过不少跟单片机通讯的上位机程序了.搞懂了MFC架构,开发还是很快的,与底层单片机程序通讯,可以用串口.usb.网络.短信形式.串口现在用的越来越少了,一般电脑跟单片机在一块,使用串 ...
- linux后台运行程序(secureCRT断掉或关闭后继续运行程序)
secureCRT断掉后想继续运行程序.也就是程序会在后台一直执行到结束. secureCRT通过ssh联接到client端运行程序,如果关掉窗口或者断开连接时,任务会被kill. 为了程序能够后台执 ...
- MFC中 SDI/MDI框架各部分指针获取方式
VC MFC SDI/MDI框架各部分指针获取方式 整理总结一下,希望能帮助到别人. 获得CWinApp 获得CMainFrame 获得CChildFrame 获得CDocument 获得CV ...
- 魔改——MFC SDI程序 转换为 MDI程序
==================================声明================================== 本文原创,转载在正文中显要的注明作者和出处,并保证文章的完 ...
- VC++ MFC单文档应用程序SDI下调用glGenBuffersARB(1, &pbo)方法编译通过但执行时出错原因分析及解决办法:glewInit()初始化的错误
1.问题症状 在VC++环境下,利用MFC单文档应用程序SDI下开发OpenGL程序,当调用glGenBuffersARB(1, &pbo)方法编译通过但执行时出错,出错代码如下: OpenG ...
- 重写MFC窗口上的关闭按钮事件(SDI, MDI, Dialog)
This piece of code demonstrate how to override WM_CLOSE event. 点击窗口关闭按钮,触发相关事件! 有时候,在MFC程序退出之前,我们通常会 ...
- C# Windows - SDI和MDI应用程序
生成MDI应用程序 MDI应用程序至少要由两个截然不同的窗口组成.第一个窗口叫做MDI容器(Container),可以在容器中显示的窗口叫做MDI子窗口. 要把应用程序的主窗口从一个窗体改为MDI容器 ...
- VC/MFC 编程技巧大总结
1 toolbar默认位图左上角那个点的颜色是透明色,不喜欢的话可以自己改. 2 VC++中 WM_QUERYENDSESSION WM_ENDSESSION 为系统关机消息. 3 Java学习书推荐 ...
随机推荐
- java中list、set、map区别(转)
Collection├List│├LinkedList│├ArrayList│└Vector│ └Stack└SetMap├Hashtable├HashMap└WeakHashMap Collecti ...
- 梯度寻优与logistic算法
一.一些基本概念 最优化:在给定约束之下如何寻求某些因素(的量),以使某一(或某些)指标达到最优.高中学过的线性规划就是一类典型的最优化问题. 凸集:在集合空间中,凸集就是一个向四周凸起的图形.用数学 ...
- 深入理解jQuery插件开发总结(三)
容器:一个即时执行函数 根本上来说,每个插件的代码是被包含在一个即时执行的函数当中,如下: (function(arg1, arg2) { // 代码 })(arg1, arg2); 即时执行函数,顾 ...
- 深入理解ES6之函数
一:关于函数的参数: 可以接受任意数量的参数而无视函数声明的参数数量是js函数的独特之处. 1:参数默认值 ES6之前做法: function makeRequest(url,timeout,call ...
- mysql case when的使用
SELECT (CASE payType WHEN 1 THEN '微信' WHEN 2 THEN '支付宝' ELSE '余额' END) as type, count(payType) FROM ...
- 爬取地图列表并下载-node.js
var fs = require('fs'); var request = require('request'); var cheerio = require('cheerio'); var url ...
- 为什么canvas宽高要设置在标签内>>宽高设置在style和设置在canvas的区别
一直很困惑为什么canvas标签和其他标签不一样,宽高需要设置在canvas标签里,设置在style里就会有问题. 纯粹个人理解,有错误欢迎指出. > 结论写在头 设置在style里有问题其实是 ...
- 理解JS表达式
表达式:是由运算元和运算符(可选)构成,并产生运算结果的语法结构. 基本表达式 以下在ES5中被称为基本表达式(Primary Expression) this.null.arguments等内置的关 ...
- 在IIS中浏览网站时出现:无法打开登录所请求的数据库 "***",登录失败
在IIS中发布Web应用程序后,浏览网站时出现无法打开登录所请求的数据库 "***",登录失败错误,如下图所示: 解决办法:打开系统Web.Config配置文件,查看数据库连接串是 ...
- JAVA基本数据类型、引用数据类型-参数传递详解
1:基本类型的参数传值 对于基本数据类型,修改这个值并不会影响作为参数传进来的那个变量,因为你修改的是方法的局部变量,是一个副本.实参的精度级别应等于或低于形参的精度级别,否则报错. class JB ...