VC Office2007界面对话框实现
我们知道VS2008SP1之后,MFC就多了一个功能包,可以快速的建立一个ribbon的界面,视觉样式可以在office 2007蓝、黑等颜色之间切换,这对于单文档/多文档做界面非常方便,而且也蛮好看的。但是,引入的功能包不对对话框进行界面美化,除了多一些控件外,外观没变。于是就想能不能利用单文档的CFormView来模拟对话框,进行自己来实现对话框的美化呢,下面以单文档为例:
1.单文档 ,“项目类型”选择Visual Studio 视觉样式和颜色 选择office2007 (蓝色主题);
2.用户界面功能,选中“使用菜单栏和工具栏”;
3.高级功能里面,所有的“高级框架窗格”都不要选择;
4.生成的类里面,选择视图基类为CFormView,运行程序就会出现如图所示:
是不是觉得很不和谐,外框那么好看,里面内置的Form体却那样子,但是我们可以对里面的Form进行换颜色的,具体参考:http://blog.csdn.net/akof1314/archive/2009/12/06/4952372.aspx ,而要让单文档模拟对话框,具体参考:http://blog.csdn.net/akof1314/archive/2010/05/14/5593802.aspx 这里有些不一样的是,CMainFrame里面要改为如下:
{
if (CFrameWndEx::OnCreate(lpCreateStruct) == - 1 )
return - 1 ;
// 基于持久值设置视觉管理器和样式
OnApplicationLook(theApp.m_nAppLook);
return 0 ;
}
另一个函数PreCreateWindow:
{
if ( !CFrameWndEx::PreCreateWindow(cs) )
return FALSE;
// TODO: 在此处通过修改
// CREATESTRUCT cs 来修改窗口类或样式
m_strTitle= "这是用单文档做出来的对话框" ;
cs.style&= ~FWS_ADDTOTITLE; //去掉单文档的“无标题”
cs.style&= ~WS_THICKFRAME; //去掉可调大小
cs.style &= ~WS_MAXIMIZEBOX; //去掉最大化按钮
cs.style &= ~WS_MINIMIZEBOX; //去掉最小化按钮
cs.hMenu= NULL ; //去掉菜单栏
return TRUE;
}
对于按钮的美化就要使用上一篇说到的CxSkinButton按钮皮肤类(http://blog.csdn.net/akof1314/archive/2010/07/05/5713833.aspx ),按钮的素材我已放入源代码工程里面,CxSkinButton类自己加了SizeToContent功能,下面是Form的初始化函数:
{
ModifyStyleEx( WS_EX_CLIENTEDGE, WS_EX_STATICEDGE); //去掉Form体凹陷
ModifyStyle(- 1 ,WS_CHILD| WS_VISIBLE); //做为子窗体,可见
CFormView::OnInitialUpdate();
GetParentFrame()->RecalcLayout();
ResizeParentToFit();
m_brush.CreateSolidBrush(RGB( 213 , 228 , 242 )); // 生成office2007blue刷子,修改背景颜色所用
m_Btn1.SetToolTipText(_T( "这是按钮一"));
m_Btn1.SetSkin(IDB_BITMAP1,IDB_BITMAP2,IDB_BITMAP3,IDB_BITMAP4,IDB_BITMAP5,NULL, 0 , 0 , 0 );
m_Btn1.SizeToContent();
m_Btn2.SetToolTipText(_T( "这是按钮二"));
m_Btn2.SetSkin(IDB_BITMAP1,IDB_BITMAP2,IDB_BITMAP3,IDB_BITMAP4,IDB_BITMAP5,NULL, 0 , 0 , 0 );
m_Btn2.SizeToContent();
}
运行效果如下:
修改背景颜色和设置文本之类的透明等,这里不再介绍,完整代码和例子:http://download.csdn.net/source/2517994
VC Office2007界面对话框实现相关推荐
- VC Office2007界面对话框实现(续)
在之前一篇< VC Office2007界面对话框实现>,写道可以用单文档来模拟对话框,来实现Office2007风格的对话框,这一次用不同的方法来实现,MFC的Ribbon功能包只对单文 ...
- C语言用句柄显示bmp图片,VC编程之VC MFC界面上显示BMP图片
本文主要向大家介绍了VC编程之VC MFC界面上显示BMP图片,通过具体的内容向大家展示,希望对大家学习VC编程有所帮助. 1.通过点击界面浏览按钮选择BMP图像文件. 点击浏览按钮打开文件对话框选择 ...
- vc++ 6.0对话框上无法显示中文(乱码)
是英文版的vc++,建立mfc向导时无法选择中文,到对话框里面改成中文还是乱码,怎么版啊 问题补充: 一般对话框是可以的,就是那个CPropertyPage 不可以对话框资源选成中文以后要ReBuil ...
- VC中为对话框添加背景图片
From: http://blog.ezcn8.com/2011/06/11/vc%E4%B8%AD%E4%B8%BA%E5%AF%B9%E8%AF%9D%E6%A1%86%E6%B7%BB%E5%8 ...
- VC MFC界面上显示BMP图片
1.通过点击界面浏览按钮选择BMP图像文件. 点击浏览按钮打开文件对话框选择BMP图像文件,得到文件所在的路径目录.关键代码如下: void ShowBMPDlg::OnButtonSelectiam ...
- vc 中对对话框的几种操作
注:以下代码以一个名为CTest6Dlg的对话框类为例 ------------------------------------------------------------------------ ...
- VC 打开目录对话框
From: http://blog.sina.com.cn/s/blog_790bb7190100yxm7.html 对于文件选择对话框和目录选择对话框.在VC中打开文件选择对话框比较简单,使用CFi ...
- vc可以实现对话框里显示html文档内容,也可以显示word内容吗,VC6中使用CHtmlView在对话框控制中显示HTML文档...
VC6中使用CHtmlView在对话框控制中显示HTML文档 2008-02-23 05:29:58来源:互联网 阅读 () 在Visual Studio 6.0中出现了一个新类CHtmlView,利 ...
- VC++软件界面风格简单美化
为了让软件能在视觉上给用户带来一种清新的感觉,从而避免潜在的用户视觉疲劳和审美疲劳,软件一般都要经过专业的界面设计和美化.但是,我们不是也没有专业的界面设计美化人员,所以只能对软件的界面和风格进行初步 ...
最新文章
- 一起来学习 WebRTC (篇一)| 掘金技术征文
- Hadoop生态圈一览
- linux系统基础入门,虚惊一场
- C#比较运算符及解析
- 大数据学习(2-2)- 使用docker安装配置Hadoop环境
- 针对Mysql数据库服务器的优化
- 黄聪:Discuz自制模板带jquery时与discuz本身冲突解决办法
- Python之线程(二)
- Stale branches 设置_Mac OS 网络设置教程 wifi设置与宽带设置详解
- TypeScript泛型约束
- php中execute函数,PHP:调用布尔值上的成员函数execute()
- [codeup 2134] FatMouse's Trade
- 计算机的发展共经历了哪几个阶段,1. 计算机的发展经历了哪几个阶段?各阶段的主要特征是什么,计算机的发展经历了哪些阶段?...
- Jeff Atwood倾情推荐——程序员必读之书 (zz)
- 我想谈一谈外包,请不要“妖魔化”它。
- メリッサ / 梅莉莎
- python学习之路遇到的问题以及解决方法
- 南京审计大学计算机考研专业课答案
- 【深度学习】环境搭建—TensorFlow 2.0环境搭建
- Flink 的状态保存和恢复
热门文章
- react项目完整目录结构
- SAML单点登录-spring-security-saml 整合使用
- emui系统就是鸿蒙吗,EMUI 10.0正式发布,它甚至就是鸿蒙OS
- Oracle之行转列pivot函数
- Python Web 深度学习实用指南:第一、二部分
- 汽车环境感知技术详解【 持续更新ing 】— 激光雷达原理及应用
- 2017北京计算机博士后,2017北京电子科技大学招聘博士后公告
- 时间戳.getTime为什么有的时候是0点,有时候是八点
- Win10安装GCC/G++运行环境
- Android 设置音量的几种方法