浏览代码

1、抽屉效果:建议使用xp3兼容性运行,目前为止未再出过现抽屉显示问题;
2、隐藏toolbar。

sat23 4 年之前
父节点
当前提交
4eb2a87dac

+ 2 - 4
CTSManager/CTSManager/CTSManager.vcxproj

@@ -57,8 +57,7 @@
     <UseOfMfc>Dynamic</UseOfMfc>
   </PropertyGroup>
   <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
-  <ImportGroup Label="ExtensionSettings">
-  </ImportGroup>
+  <ImportGroup Label="ExtensionSettings" />
   <ImportGroup Label="Shared">
   </ImportGroup>
   <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
@@ -293,6 +292,5 @@
     <None Include="res\CTSManager.rc2" />
   </ItemGroup>
   <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
-  <ImportGroup Label="ExtensionTargets">
-  </ImportGroup>
+  <ImportGroup Label="ExtensionTargets" />
 </Project>

+ 8 - 2
CTSManager/CTSManager/MainFrm.cpp

@@ -89,6 +89,7 @@ int CMainFrame::OnCreate(LPCREATESTRUCT lpCreateStruct)
 	// 防止菜单栏在激活时获得焦点
 	CMFCPopupMenu::SetForceMenuFocus(FALSE);
 
+#if !HIDE_TOOLBAR
 	if (!m_wndToolBar.CreateEx(this, TBSTYLE_FLAT, WS_CHILD | WS_VISIBLE | CBRS_TOP | CBRS_GRIPPER | CBRS_TOOLTIPS | CBRS_FLYBY | CBRS_SIZE_DYNAMIC) ||
 		!m_wndToolBar.LoadToolBar(theApp.m_bHiColorIcons ? IDR_MAINFRAME_256 : IDR_MAINFRAME))
 	{
@@ -105,7 +106,7 @@ int CMainFrame::OnCreate(LPCREATESTRUCT lpCreateStruct)
 	bNameValid = strCustomize.LoadString(IDS_TOOLBAR_CUSTOMIZE);
 	ASSERT(bNameValid);
 	m_wndToolBar.EnableCustomizeButton(TRUE, ID_VIEW_CUSTOMIZE, strCustomize);
-
+#endif
 	// 允许用户定义的工具栏操作: 
 	InitUserToolbars(nullptr, uiFirstUserToolBarId, uiLastUserToolBarId);
 
@@ -118,10 +119,14 @@ int CMainFrame::OnCreate(LPCREATESTRUCT lpCreateStruct)
 
 	// TODO: 如果您不希望工具栏和菜单栏可停靠,请删除这五行
 	m_wndMenuBar.EnableDocking(CBRS_ALIGN_ANY);
+#if !HIDE_TOOLBAR
 	m_wndToolBar.EnableDocking(CBRS_ALIGN_ANY);
+#endif
 	EnableDocking(CBRS_ALIGN_ANY);
 	DockPane(&m_wndMenuBar);
+#if !HIDE_TOOLBAR
 	DockPane(&m_wndToolBar);
+#endif
 	// 隐藏掉菜单条;
 #if HIDE_MENU_BAR
 	m_wndMenuBar.ShowPane(FALSE, FALSE, FALSE);
@@ -186,9 +191,10 @@ int CMainFrame::OnCreate(LPCREATESTRUCT lpCreateStruct)
 	// 启用增强的窗口管理对话框
 	EnableWindowsDialog(ID_WINDOW_MANAGER, ID_WINDOW_MANAGER, TRUE);
 
+#if !HIDE_TOOLBAR
 	// 启用工具栏和停靠窗口菜单替换
 	EnablePaneMenu(TRUE, ID_VIEW_CUSTOMIZE, strCustomize, ID_VIEW_TOOLBAR);
-
+#endif
 	// 启用快速(按住 Alt 拖动)工具栏自定义
 	CMFCToolBar::EnableQuickCustomization();
 

+ 10 - 0
CTSManager/CTSManager/Navbar.cpp

@@ -60,6 +60,7 @@ BEGIN_MESSAGE_MAP(CNavbar, CDockablePane)
 	ON_WM_SETFOCUS()
 	ON_COMMAND_RANGE(ID_SORTING_GROUPBYTYPE, ID_SORTING_SORTBYACCESS, OnSort)
 	ON_UPDATE_COMMAND_UI_RANGE(ID_SORTING_GROUPBYTYPE, ID_SORTING_SORTBYACCESS, OnUpdateSort)
+	ON_WM_ERASEBKGND()
 END_MESSAGE_MAP()
 
 /////////////////////////////////////////////////////////////////////////////
@@ -344,3 +345,12 @@ void CNavbar::OnChangeVisualStyle()
 	m_wndToolBar.CleanUpLockedImages();
 	m_wndToolBar.LoadBitmap(theApp.m_bHiColorIcons ? IDB_SORT_24 : IDR_SORT, 0, 0, TRUE /* 锁定*/);
 }
+
+
+BOOL CNavbar::OnEraseBkgnd(CDC* pDC)
+{
+	// TODO: 在此添加消息处理程序代码和/或调用默认值
+	return TRUE;
+	// 抽屉还是会偶尔显示不出来:建议右键->属性->兼容性:xp 3方式运行程序;
+	//return CDockablePane::OnEraseBkgnd(pDC);
+}

+ 2 - 0
CTSManager/CTSManager/Navbar.h

@@ -60,5 +60,7 @@ protected:
 	DECLARE_MESSAGE_MAP()
 
 
+public:
+	afx_msg BOOL OnEraseBkgnd(CDC* pDC);
 };
 

+ 2 - 0
CTSManager/CTSManager/pch.h

@@ -30,6 +30,8 @@
 #define ENABLE_OUTBAR 0
 // 标题栏;
 #define ENABLE_TITILBAR 0
+// 隐藏toolbar
+#define HIDE_TOOLBAR 1
 
 extern VOID _dprintf(CHAR* pszStr, ...);