// This is a part of the Microsoft Foundation Classes C++ library.
// Copyright (c) Microsoft Corporation. All rights reserved.
//
// This source code is only intended as a supplement to the
// Microsoft Foundation Classes Reference and related
// electronic documentation provided with the library.
// See these sources for detailed information regarding the
// Microsoft Foundation Classes product.
//
// MSMVisualManager.cpp : implementation file
//
#include "stdafx.h"
#include "MSMVisualManager.h"
#include "MSMCaptionBar.h"
#include "MSMMenuBar.h"
#include "MSMToolBar.h"
#include "MSMTasksPane.h"
#include "MSMCategoryBar.h"
#include "MSMCategoryBarButton.h"
#include "MSMLinksBar.h"
#include "MSMLinksBarButton.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
#define WP_MINBUTTON 15
#define WP_MAXBUTTON 17
#define WP_CLOSEBUTTON 18
#define WP_RESTOREBUTTON 21
#define CBS_NORMAL 1
#define CBS_HOT 2
#define CBS_PUSHED 3
#define CBS_DISABLED 4
IMPLEMENT_DYNCREATE(CMSMVisualManager, CMFCVisualManagerOffice2003)
/////////////////////////////////////////////////////////////////////////////
// CMSMVisualManager
BOOL _StretchBitmap (CDC* pDC, const CRect& rectClient, CBitmap& bmp)
{
ASSERT_VALID (pDC);
if (bmp.GetSafeHandle () != NULL)
{
BITMAP bm;
ZeroMemory (&bm, sizeof (BITMAP));
bmp.GetBitmap (&bm);
CDC dc;
dc.CreateCompatibleDC (pDC);
// Select the bitmap into the in-memory DC
CBitmap* pOldBitmap = dc.SelectObject (&bmp);
int nOldStretchBltMode = pDC->SetStretchBltMode (COLORONCOLOR);
pDC->StretchBlt(0, 0, rectClient.Width (), rectClient.Height (), &dc,
0, 0, bm.bmWidth, bm.bmHeight, SRCCOPY);
dc.SelectObject (pOldBitmap);
pDC->SetStretchBltMode (nOldStretchBltMode);
return true;
}
return false;
}
void _DrawReflectedGradient (CDC* pDC, COLORREF clrS, COLORREF clrM, COLORREF clrF,
const CRect& rect, BOOL bHorz)
{
ASSERT_VALID (pDC);
CDrawingManager dm (*pDC);
long x1 = rect.left;
long x2 = rect.right;
long y1 = rect.top;
long y2 = rect.bottom;
if (bHorz)
{
CRect rt (x1, y1, x2, (y1 + y2) / 2);
dm.FillGradient (rt, clrM, clrS, TRUE);
rt.top = rt.bottom;
rt.bottom = y2;
dm.FillGradient (rt, clrF, clrM, TRUE);
}
else
{
CRect rt (x1, y1, (x1 + x2) / 2, y2);
dm.FillGradient (rt, clrS, clrM, FALSE);
rt.left = rt.right;
rt.right = x2;
dm.FillGradient (rt, clrM, clrF, FALSE);
}
}
CMSMVisualManager::CMSMVisualManager()
{
//SetOfficeStyleMenus (TRUE);
SetMenuShadowDepth (0);
m_MemoryFilled = false;
m_MemorySize = CSize (0, 0);
m_CaptionButtonSize = CSize (0, 0);
m_brMenuBarButtonHighlighted.CreateSolidBrush (RGB ( 57, 134, 206));
m_clrMenuBarButtonBorderHighlighted = RGB ( 57, 134, 206);
m_clrMenuBarButtonTextRegular = RGB (255, 255, 255);
m_clrMenuBarButtonTextPressed = RGB (255, 255, 255);
m_clrMenuBarButtonTextHighlighted = RGB (255, 255, 255);
m_clrToolBarButtonTextRegular = RGB (255, 255, 255);
m_clrToolBarButtonTextPressed = RGB (255, 223, 127);
m_clrToolBarButtonTextHighlighted = RGB (255, 223, 127);
m_clrCategorieBarButtonTextRegular = RGB (232, 243, 253);
m_clrCategorieBarButtonTextPressed = RGB (255, 223, 127);
m_clrCategorieBarButtonTextHighlighted
= RGB (255, 223, 127);
m_clrToolBarSeparatorS = RGB (119, 162, 211);
m_clrToolBarSeparatorM = RGB (255, 255, 255);
m_clrToolBarSeparatorF = RGB ( 85, 136, 198);
m_clrComboBoxBorder = RGB ( 78, 122, 171);
m_clrComboBoxBtnRegularF = RGB (208, 220, 252);
m_clrComboBoxBtnRegularL = RGB (182, 205, 251);
m_clrComboBoxBtnRegularBorder = RGB (177, 197, 245);
m_clrComboBoxBtnHighlightedF = RGB (226, 244, 254);
m_clrComboBoxBtnHighlightedL = RGB (203, 219, 252);
m_clrComboBoxBtnHighlightedBorder = RGB (140, 165, 225);
m_clrComboBoxBtnPressedF = RGB (122, 153, 242);
m_clrComboBoxBtnPressedL = RGB (159, 178, 235);
m_clrComboBoxBtnPressedBorder = RGB (181, 198, 242);
m_clrCategorieBarButtonBorder = RGB ( 53, 94, 159);
m_clrCategorieBarButtonBorderM = RGB (191, 209, 231);
m_clrCategorieBarButtonLine = RGB (123, 165, 210);
m_clrCategorieBarButtonF = RGB ( 77, 127, 193);
m_clrCategorieBarButtonL = RGB ( 40, 74, 144);
m_brLinksBarBack.CreateSolidBrush (RGB ( 49, 85, 153));
m_brLinksBarButtonHighlighted.CreateSolidBrush (RGB ( 38, 69, 135));
m_clrLinksBarButtonBorderHighlighted
= RGB ( 38, 69, 135);
}
BOOL CMSMVisualManager::LoadMSMCaptionButtonsIcons (LPCTSTR lpszID)
{
CBitmap bmp;
m_CaptionButtonSize = CSize (0, 0);
if (bmp.LoadBitmap (lpszID))
{
BITMAP bm;
ZeroMemory (&bm, sizeof (BITMAP));
bmp.GetBitmap (&bm);
if (m_CaptionButtonIconst.GetSafeHandle() != NULL &&
m_CaptionButtonIconst.GetImageCount () > 0)
{
m_CaptionButtonIconst.DeleteImageList ();
}
UINT nFlags = ILC_MASK;
switch (bm.bmBitsPixel)
{
case 4 :
nFlags |= ILC_COLOR4;
break;
case 8 :
nFlags |= ILC_COLOR8;
break;
case 16:
nFlags |= ILC_COLOR16;
break;
case 24:
nFlags |= ILC_COLOR24;
break;
case 32:
nFlags |= ILC_COLOR32;
break;
default:
ASSERT (FALSE);
}
m_CaptionButtonSize.cx = bm.bmWidth / 12;
m_CaptionButtonSize.cy = bm.bmHeight;
m_CaptionButtonIconst.Create (m_CaptionButtonSize.cx,
m_CaptionButtonSize.cy, nFlags, 0, 3);
m_CaptionButtonIconst.Add (&bmp, RGB (255, 0, 255));
return true;
}
return false;
}
void CMSMVisualManager::OnUpdateSystemColors ()
{
CMFCVisualManagerOffice2003::OnUpdateSystemColors();
m_clrMenuLight = RGB (210, 232, 253);
m_brMenuLight.DeleteObject ();
m_brMenuLight.CreateSolidBrush (m_clrMenuLight);
m_clrHighlight = RGB (152, 192, 235);
m_brHighlight.DeleteObject ();
m_brHighlight.CreateSolidBrush (m_clrHighlight);
m_clrHighlightDn = RGB (152, 192, 235);
m_brHighlightDn.DeleteObject ();
m_brHighlightDn.CreateSolidBrush (m_clrHighlightDn);
m_clrHighlightChecked = RGB (152, 192, 235);
m_brHighlightChecked.DeleteObject ();
m_brHighlightChecked.CreateSolidBrush (m_clrHighlightChecked);
m_clrMenuItemBorder = RGB (152, 192, 235);
m_clrMenuBorder = RGB (128, 128, 128);
}
CMSMVisualManager::~CMSMVisualManager()
{
}
void CMSMVisualManager::SetupMemoryBitmapSize (CDC* pDC, const CSize& size)
{
if (pDC == NULL && size == CSize (0, 0))
{
return;
}
if (m_MemoryDC.GetSafeHdc () != NULL)
{
if (pDC && pDC->GetDeviceCaps (BITSPIXEL) != m_MemoryDC.GetDeviceCaps (BITSPIXEL))
{
m_MemoryBitmap.DeleteObject ();
m_MemoryDC.DeleteDC ();
}
}
if (m_MemoryDC.GetSafeHdc () == NULL)
{
m_MemoryDC.CreateCompatibleDC (pDC);
}
if (m_MemorySize != size || m_MemoryBitmap.GetSafeHandle () == NULL)
{
m_MemorySize = size;
if (m_MemoryBitmap.GetSafeHandle () != NULL)
{
m_MemoryBitmap.DeleteObject ();
}
m_MemoryBitmap.CreateCompatibleBitmap (pDC, m_MemorySize.cx, m_MemorySize.cy);
m_MemoryDC.SelectObject (m_MemoryBitmap);
m_MemoryFilled = false;
}
if (m_MSMFrameBitmap.GetSafeHandle () != NULL)
{
m_MemoryFilled = _StretchBitmap (&m_MemoryDC, CRect (CPoint (0, 0), m_MemorySize), m_MSMFrameBitmap);
}
}
void CMSMVisualManager::OnFillBarBackground (CDC* pDC, CBasePane* pBar,
CRect rectClient, CRect rectClip, BOOL /*bNCArea*/)
{
if (m_MSMFrameBitmap.GetSafeHandle () == NULL)
{
m_MSMFrameBitmap.LoadBitmap (_T("IDB_MSM_FRAME_BKGND"));
if (!m_MemoryFilled)
{
m_MemoryFilled =
_StretchBitmap (&m_MemoryDC, CRect (CPoint (0, 0), m_MemorySize), m_MSMFrameBitmap);
}
}
ASSERT_VALID (pDC);
ASSERT_VALID
没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
MFC MDI和SDI非客户区框架界面美化之----界面全面美化------实现方法:继承VS2010视觉管理器提供的样式进行美化,继承类CMFCVisualManagerOffice2003.详细说明:http://blog.csdn.net/wzy198852/article/details/19111093
资源推荐
资源详情
资源评论
收起资源包目录
MSMoneyDemo.rar (98个子文件)
MSMoneyDemo
ReadMe.htm 6KB
MSMoneyDemoView.cpp 4KB
MSMoneyDemo.vcxproj 65KB
MSMVisualManager.h 4KB
res
Toolbar.bmp 6KB
hottoolb.bmp 37KB
MSMoneyDemo.ico 21KB
menu_images_16.bmp 888B
coldtool.bmp 37KB
MSMoneyDemo.rc2 402B
FrameBkgnd.BMP 131KB
ViewBkgnd.BMP 382KB
menu_img.bmp 5KB
CaptionBtns.BMP 11KB
prestool.bmp 37KB
MSMoneyDemoDoc.ico 1KB
distool.bmp 37KB
MSMCategoryBar.cpp 2KB
MSMLinksBar.h 1KB
MSMoneyDemo.h 1KB
MSMDialog.cpp 1KB
MSMoneyDemo.suo 14KB
MainFrm.cpp 15KB
stdafx.h 2KB
MSMCaptionBarButton.h 957B
MSMToolBar.h 1KB
MSMCategoryBar.h 1KB
MainFrm.h 3KB
MSMTasksPane.cpp 2KB
Debug
MSMDialog.obj 28KB
MSMoneyDemo.ilk 3.45MB
CL.write.1.tlog 17KB
vc100.idb 2MB
MSMCaptionBar.obj 112KB
mt.read.1.tlog 960B
MSMoneyDemoDoc.obj 61KB
MSMVisualManager.obj 128KB
MSMoneyDemo_manifest.rc 212B
MSMoneyDemo.res 1.89MB
MainFrm.obj 104KB
MSMCategoryBarButton.obj 59KB
link-cvtres.write.1.tlog 2B
MSMCaptionBarButton.obj 32KB
MSMTasksPane.obj 88KB
rc.command.1.tlog 2KB
link.command.1.tlog 7KB
vc100.pdb 3.32MB
MSMoneyDemo.pdb 5.79MB
CL.read.1.tlog 92KB
mt.write.1.tlog 790B
MSMoneyDemo.exe.intermediate.manifest 381B
link-cvtres.read.1.tlog 2B
MSMoneyDemo.pch 32.31MB
MSMLinksBarButton.obj 57KB
rc.read.1.tlog 122KB
MSMToolBar.obj 91KB
MSMMenuBar.obj 83KB
stdafx.obj 625KB
mt.command.1.tlog 892B
MSMCategoryBar.obj 87KB
link.write.1.tlog 6KB
MSMoneyDemoView.obj 39KB
MSMLinksBar.obj 80KB
MSMoneyDemo.exe.embed.manifest 667B
MSMoneyDemo.lastbuildstate 144B
cl.command.1.tlog 16KB
MSMoneyDemo.obj 35KB
rc.write.1.tlog 1KB
MSMoneyDemo.exe 2.55MB
MSMoneyDemo.log 6KB
link.read.1.tlog 14KB
MSMoneyDemo.exe.embed.manifest.res 732B
stdafx.cpp 625B
MSMMenuBar.cpp 1KB
MSMCaptionBar.cpp 14KB
MSMoneyDemo.cpp 3KB
Resource.h 4KB
MSMMenuBar.h 899B
MSMTasksPane.h 909B
MSMLinksBarButton.h 1KB
MSMCaptionBarButton.cpp 2KB
targetver.h 287B
MSMoneyDemoDoc.cpp 3KB
MSMCategoryBarButton.cpp 5KB
MSMoneyDemo.rc 13KB
MSMoneyDemo.vcxproj.user 143B
MSMoneyDemo.sdf 58.39MB
MSMoneyDemo.vcxproj.filters 5KB
MSMoneyDemoView.h 2KB
MSMVisualManager.cpp 25KB
MSMToolBar.cpp 3KB
MSMCategoryBarButton.h 1KB
MSMoneyDemo.sln 6KB
MSMoneyDemoDoc.h 2KB
MSMLinksBar.cpp 1KB
MSMCaptionBar.h 3KB
MSMDialog.h 893B
MSMLinksBarButton.cpp 5KB
共 98 条
- 1
C_peter
- 粉丝: 256
- 资源: 23
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 农村信用社联合社计算机信息系统投产与变更管理办.docx
- 农村信用社联合社计算机信息系统数据管理办法.docx
- 利用SPSS作临床效度分析线上计算网站介绍-医学研究部统计谘.(医学PPT课件).ppt
- 利用Zabbix监控mysqldump定时备份数据库状态.docx
- 利用计算机解决问题的基本过程.doc
- 化工铁路通信工程总结.doc
- 北京大学网络教育软件工程作业.docx
- 医药公司(连锁店)计算机操作规程未新系统的自行按照旧制修改-新系统过制的编号加修模版.doc
- 医药公司(连锁店)计算机系统操作规程模版.doc
- 医药连锁门店计算机系统的操作和管理程序未新系统的自行按照旧制修改-新系统过制的编号加修模版.docx
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
- 1
- 2
- 3
- 4
- 5
- 6
前往页