Bläddra i källkod

1、CDockablePane在Create时,将参数4改成False就不会有Gripper了;

sat23 4 år sedan
förälder
incheckning
91464812f0

+ 1 - 1
CTSManager/CTSManager/CTSManager.cpp

@@ -162,7 +162,7 @@ BOOL CCTSManagerApp::InitInstance()
 			dwLength = 0;
 		}
 
-		if (1)
+		if (0)
 		{
 			BYTE* pImage = NULL;
 			DWORD dwLength = 0;

+ 2 - 0
CTSManager/CTSManager/CTSManager.vcxproj

@@ -196,6 +196,7 @@
     <ClInclude Include="CalendarBar.h" />
     <ClInclude Include="ChildFrm.h" />
     <ClInclude Include="ClassView.h" />
+    <ClInclude Include="CMyDockPane.h" />
     <ClInclude Include="CTSManager.h" />
     <ClInclude Include="CTSManagerDoc.h" />
     <ClInclude Include="CTSManagerView.h" />
@@ -215,6 +216,7 @@
     <ClCompile Include="CalendarBar.cpp" />
     <ClCompile Include="ChildFrm.cpp" />
     <ClCompile Include="ClassView.cpp" />
+    <ClCompile Include="CMyDockPane.cpp" />
     <ClCompile Include="CTSManager.cpp" />
     <ClCompile Include="CTSManagerDoc.cpp" />
     <ClCompile Include="CTSManagerView.cpp" />

+ 6 - 0
CTSManager/CTSManager/CTSManager.vcxproj.filters

@@ -69,6 +69,9 @@
     <ClInclude Include="Database.h">
       <Filter>sql</Filter>
     </ClInclude>
+    <ClInclude Include="CMyDockPane.h">
+      <Filter>头文件</Filter>
+    </ClInclude>
   </ItemGroup>
   <ItemGroup>
     <ClCompile Include="CTSManager.cpp">
@@ -110,6 +113,9 @@
     <ClCompile Include="Database.cpp">
       <Filter>sql</Filter>
     </ClCompile>
+    <ClCompile Include="CMyDockPane.cpp">
+      <Filter>源文件</Filter>
+    </ClCompile>
   </ItemGroup>
   <ItemGroup>
     <ResourceCompile Include="CTSManager.rc">

+ 1 - 1
CTSManager/CTSManager/Database.cpp

@@ -3,7 +3,7 @@
 
 #define CHECKDB if (m_pConn == NULL || !m_bConnected) return FALSE
 
-char* CDatabase::pImage = NULL;
+char* CDatabase::m_spImage = NULL;
 CDatabase::CDatabase():m_pConn(NULL), m_pError(NULL), m_bConnected(FALSE)
 {
 	m_pConn = mysql_init(NULL);

+ 7 - 7
CTSManager/CTSManager/Database.h

@@ -20,13 +20,13 @@ private:
 	std::string m_strPassword;
 	std::string m_strHost;
 
-	static char* pImage;
+	static char* m_spImage;
 	// ¸Ãº¯ÊýÖ»Äܵ¥Ïß³ÌʹÓÃ;
 	static char* ConvertBinaryToString(MYSQL *pConn, std::string file)
 	{
-		if (pImage != NULL)
-			delete[]pImage;
-		pImage = NULL;
+		if (m_spImage != NULL)
+			delete[]m_spImage;
+		m_spImage = NULL;
 
 		if (!PathFileExists(file.c_str()))
 			return NULL;
@@ -46,12 +46,12 @@ private:
 		fread(pData, nlen, 1, pf);
 		fclose(pf);
 
-		pImage = new char[nlen + 10];
-		mysql_real_escape_string(pConn, pImage, (char*)pData, nlen);
+		m_spImage = new char[nlen + 10];
+		mysql_real_escape_string(pConn, m_spImage, (char*)pData, nlen);
 		if (pData)
 			delete[]pData;
 
-		return pImage;
+		return m_spImage;
 	}
 public:
 	BOOL SetBinaryField(std::string strCondition, void* pDataIn, int nDataLen);

+ 44 - 12
CTSManager/CTSManager/MainFrm.cpp

@@ -38,6 +38,16 @@ static UINT indicators[] =
 	ID_INDICATOR_SCRL,
 };
 
+static void DelAllMenu(HMENU hMenu)
+{
+	//  首先删除多余的菜单项  
+	int Menucount = GetMenuItemCount(hMenu);
+	for (int i = Menucount - 1;i > -1;i--)
+	{
+		::DeleteMenu(hMenu, i, MF_BYPOSITION);
+	}
+}
+
 // CMainFrame 构造/析构
 
 CMainFrame::CMainFrame() noexcept
@@ -64,7 +74,7 @@ int CMainFrame::OnCreate(LPCREATESTRUCT lpCreateStruct)
 	mdiTabParams.m_bAutoColor = TRUE;    // 设置为 FALSE 将禁用 MDI 选项卡的自动着色
 	mdiTabParams.m_bDocumentMenu = TRUE; // 在选项卡区域的右边缘启用文档菜单
 	EnableMDITabbedGroups(TRUE, mdiTabParams);
-
+	
 	if (!m_wndMenuBar.Create(this))
 	{
 		TRACE0("未能创建菜单栏\n");
@@ -72,7 +82,7 @@ int CMainFrame::OnCreate(LPCREATESTRUCT lpCreateStruct)
 	}
 
 	m_wndMenuBar.SetPaneStyle(m_wndMenuBar.GetPaneStyle() | CBRS_SIZE_DYNAMIC | CBRS_TOOLTIPS | CBRS_FLYBY);
-
+	
 	// 防止菜单栏在激活时获得焦点
 	CMFCPopupMenu::SetForceMenuFocus(FALSE);
 
@@ -109,7 +119,10 @@ int CMainFrame::OnCreate(LPCREATESTRUCT lpCreateStruct)
 	EnableDocking(CBRS_ALIGN_ANY);
 	DockPane(&m_wndMenuBar);
 	DockPane(&m_wndToolBar);
-
+	// 隐藏掉菜单条;
+#if HIDE_MENU_BAR
+	m_wndMenuBar.ShowPane(FALSE, FALSE, FALSE);
+#endif
 
 	// 启用 Visual Studio 2005 样式停靠窗口行为
 	CDockingManager::SetDockingMode(DT_SMART);
@@ -140,14 +153,20 @@ int CMainFrame::OnCreate(LPCREATESTRUCT lpCreateStruct)
 		return -1;
 	}
 
+#if ENABLE_FILE_CLASS
 	m_wndFileView.EnableDocking(CBRS_ALIGN_ANY);
 	m_wndClassView.EnableDocking(CBRS_ALIGN_ANY);
 	DockPane(&m_wndFileView);
+
 	CDockablePane* pTabbedBar = nullptr;
 	m_wndClassView.AttachToTabWnd(&m_wndFileView, DM_SHOW, TRUE, &pTabbedBar);
+#endif
+
+#if ENABLE_OUTPUT
 	m_wndOutput.EnableDocking(CBRS_ALIGN_ANY);
 	DockPane(&m_wndOutput);
-	m_wndProperties.EnableDocking(CBRS_ALIGN_ANY);
+#endif
+	m_wndProperties.EnableDocking(CBRS_RIGHT);
 	DockPane(&m_wndProperties);
 
 	// 基于持久值设置视觉管理器和样式
@@ -221,6 +240,7 @@ BOOL CMainFrame::CreateDockingWindows()
 {
 	BOOL bNameValid;
 
+#if ENABLE_FILE_CLASS
 	// 创建类视图
 	CString strClassView;
 	bNameValid = strClassView.LoadString(IDS_CLASS_VIEW);
@@ -240,7 +260,9 @@ BOOL CMainFrame::CreateDockingWindows()
 		TRACE0("未能创建“文件视图”窗口\n");
 		return FALSE; // 未能创建
 	}
+#endif
 
+#if ENABLE_OUTPUT
 	// 创建输出窗口
 	CString strOutputWnd;
 	bNameValid = strOutputWnd.LoadString(IDS_OUTPUT_WND);
@@ -250,12 +272,14 @@ BOOL CMainFrame::CreateDockingWindows()
 		TRACE0("未能创建输出窗口\n");
 		return FALSE; // 未能创建
 	}
+#endif
 
 	// 创建属性窗口
 	CString strPropertiesWnd;
 	bNameValid = strPropertiesWnd.LoadString(IDS_PROPERTIES_WND);
 	ASSERT(bNameValid);
-	if (!m_wndProperties.Create(strPropertiesWnd, this, CRect(0, 0, 200, 200), TRUE, ID_VIEW_PROPERTIESWND, WS_CHILD | WS_VISIBLE | WS_CLIPSIBLINGS | WS_CLIPCHILDREN | CBRS_RIGHT | CBRS_FLOAT_MULTI))
+	// 将参数4改为FALSE,就不会有Gripper;
+	if (!m_wndProperties.Create(strPropertiesWnd, this, CRect(0, 0, 200, 200), FALSE, ID_VIEW_PROPERTIESWND, WS_CHILD | WS_VISIBLE | WS_CLIPSIBLINGS | WS_CLIPCHILDREN | CBRS_RIGHT | CBRS_FLOAT_MULTI))
 	{
 		TRACE0("未能创建“属性”窗口\n");
 		return FALSE; // 未能创建
@@ -267,14 +291,18 @@ BOOL CMainFrame::CreateDockingWindows()
 
 void CMainFrame::SetDockingWindowIcons(BOOL bHiColorIcons)
 {
+#if ENABLE_FILE_CLASS
 	HICON hFileViewIcon = (HICON) ::LoadImage(::AfxGetResourceHandle(), MAKEINTRESOURCE(bHiColorIcons ? IDI_FILE_VIEW_HC : IDI_FILE_VIEW), IMAGE_ICON, ::GetSystemMetrics(SM_CXSMICON), ::GetSystemMetrics(SM_CYSMICON), 0);
 	m_wndFileView.SetIcon(hFileViewIcon, FALSE);
 
 	HICON hClassViewIcon = (HICON) ::LoadImage(::AfxGetResourceHandle(), MAKEINTRESOURCE(bHiColorIcons ? IDI_CLASS_VIEW_HC : IDI_CLASS_VIEW), IMAGE_ICON, ::GetSystemMetrics(SM_CXSMICON), ::GetSystemMetrics(SM_CYSMICON), 0);
 	m_wndClassView.SetIcon(hClassViewIcon, FALSE);
+#endif
 
+#if ENABLE_OUTPUT
 	HICON hOutputBarIcon = (HICON) ::LoadImage(::AfxGetResourceHandle(), MAKEINTRESOURCE(bHiColorIcons ? IDI_OUTPUT_WND_HC : IDI_OUTPUT_WND), IMAGE_ICON, ::GetSystemMetrics(SM_CXSMICON), ::GetSystemMetrics(SM_CYSMICON), 0);
 	m_wndOutput.SetIcon(hOutputBarIcon, FALSE);
+#endif
 
 	HICON hPropertiesBarIcon = (HICON) ::LoadImage(::AfxGetResourceHandle(), MAKEINTRESOURCE(bHiColorIcons ? IDI_PROPERTIES_WND_HC : IDI_PROPERTIES_WND), IMAGE_ICON, ::GetSystemMetrics(SM_CXSMICON), ::GetSystemMetrics(SM_CYSMICON), 0);
 	m_wndProperties.SetIcon(hPropertiesBarIcon, FALSE);
@@ -303,7 +331,7 @@ BOOL CMainFrame::CreateOutlookBar(CMFCOutlookBar& bar, UINT uiID, CMFCShellTreeC
 		return FALSE;
 	}
 
-	pOutlookBar->EnableInPlaceEdit(TRUE);
+	//pOutlookBar->EnableInPlaceEdit(TRUE);
 
 	static UINT uiPageID = 1;
 
@@ -313,24 +341,24 @@ BOOL CMainFrame::CreateOutlookBar(CMFCOutlookBar& bar, UINT uiID, CMFCShellTreeC
 	CRect rectDummy(0, 0, 0, 0);
 	const DWORD dwTreeStyle = WS_CHILD | WS_VISIBLE | TVS_HASLINES | TVS_LINESATROOT | TVS_HASBUTTONS;
 
-	tree.Create(dwTreeStyle, rectDummy, &bar, 1200);
+	/*tree.Create(dwTreeStyle, rectDummy, &bar, 1200);
 	bNameValid = strTemp.LoadString(IDS_FOLDERS);
 	ASSERT(bNameValid);
-	pOutlookBar->AddControl(&tree, strTemp, 2, TRUE, dwStyle);
+	pOutlookBar->AddControl(&tree, strTemp, 2, TRUE, dwStyle);*/
 
 	calendar.Create(rectDummy, &bar, 1201);
 	bNameValid = strTemp.LoadString(IDS_CALENDAR);
 	ASSERT(bNameValid);
 	pOutlookBar->AddControl(&calendar, strTemp, 3, TRUE, dwStyle);
 
-	bar.SetPaneStyle(bar.GetPaneStyle() | CBRS_TOOLTIPS | CBRS_FLYBY | CBRS_SIZE_DYNAMIC);
+	//bar.SetPaneStyle(bar.GetPaneStyle() | CBRS_TOOLTIPS | CBRS_FLYBY | CBRS_SIZE_DYNAMIC);
 
-	pOutlookBar->SetImageList(theApp.m_bHiColorIcons ? IDB_PAGES_HC : IDB_PAGES, 24);
-	pOutlookBar->SetToolbarImageList(theApp.m_bHiColorIcons ? IDB_PAGES_SMALL_HC : IDB_PAGES_SMALL, 16);
+	//pOutlookBar->SetImageList(theApp.m_bHiColorIcons ? IDB_PAGES_HC : IDB_PAGES, 24);
+	//pOutlookBar->SetToolbarImageList(theApp.m_bHiColorIcons ? IDB_PAGES_SMALL_HC : IDB_PAGES_SMALL, 16);
 	pOutlookBar->RecalcLayout();
 
 	BOOL bAnimation = theApp.GetInt(_T("OutlookAnimation"), TRUE);
-	CMFCOutlookBarTabCtrl::EnableAnimation(bAnimation);
+	//CMFCOutlookBarTabCtrl::EnableAnimation(bAnimation);
 
 	bar.SetButtonsFont(&afxGlobalData.fontBold);
 
@@ -451,7 +479,9 @@ void CMainFrame::OnApplicationLook(UINT id)
 		CDockingManager::SetDockingMode(DT_SMART);
 	}
 
+#if ENABLE_OUTPUT
 	m_wndOutput.UpdateFonts();
+#endif
 	RedrawWindow(nullptr, nullptr, RDW_ALLCHILDREN | RDW_INVALIDATE | RDW_UPDATENOW | RDW_FRAME | RDW_ERASE);
 
 	theApp.WriteInt(_T("ApplicationLook"), theApp.m_nAppLook);
@@ -495,5 +525,7 @@ BOOL CMainFrame::LoadFrame(UINT nIDResource, DWORD dwDefaultStyle, CWnd* pParent
 void CMainFrame::OnSettingChange(UINT uFlags, LPCTSTR lpszSection)
 {
 	CMDIFrameWndEx::OnSettingChange(uFlags, lpszSection);
+#if ENABLE_OUTPUT
 	m_wndOutput.UpdateFonts();
+#endif
 }

+ 8 - 1
CTSManager/CTSManager/MainFrm.h

@@ -46,14 +46,19 @@ protected:  // 控件条嵌入成员
 	CMFCToolBar       m_wndToolBar;
 	CMFCStatusBar     m_wndStatusBar;
 	CMFCToolBarImages m_UserImages;
+#if ENABLE_FILE_CLASS
 	CFileView         m_wndFileView;
 	CClassView        m_wndClassView;
+#endif
+#if ENABLE_OUTPUT
 	COutputWnd        m_wndOutput;
+#endif
 	CPropertiesWnd    m_wndProperties;
 	COutlookBar       m_wndNavigationBar;
+#if ENABLE_TREE
 	CMFCShellTreeCtrl m_wndTree;
 	CCalendarBar      m_wndCalendar;
-
+#endif
 // 生成的消息映射函数
 protected:
 	afx_msg int OnCreate(LPCREATESTRUCT lpCreateStruct);
@@ -74,6 +79,8 @@ protected:
 	CMFCOutlookBarTabCtrl* FindOutlookParent(CWnd* pWnd);
 	CMFCOutlookBarTabCtrl* m_pCurrOutlookWnd;
 	CMFCOutlookBarPane*    m_pCurrOutlookPage;
+public:
+
 };
 
 

+ 2 - 2
CTSManager/CTSManager/PropertiesWnd.cpp

@@ -55,7 +55,7 @@ void CPropertiesWnd::AdjustLayout()
 
 	int cyTlb = m_wndToolBar.CalcFixedLayout(FALSE, TRUE).cy;
 
-	m_wndObjectCombo.SetWindowPos(nullptr, rectClient.left, rectClient.top, rectClient.Width(), m_nComboHeight, SWP_NOACTIVATE | SWP_NOZORDER);
+	m_wndObjectCombo.SetWindowPos(nullptr, rectClient.left, rectClient.top, rectClient.Width(), m_nComboHeight*3, SWP_NOACTIVATE | SWP_NOZORDER);
 	m_wndToolBar.SetWindowPos(nullptr, rectClient.left, rectClient.top + m_nComboHeight, rectClient.Width(), cyTlb, SWP_NOACTIVATE | SWP_NOZORDER);
 	m_wndPropList.SetWindowPos(nullptr, rectClient.left, rectClient.top + m_nComboHeight + cyTlb, rectClient.Width(), rectClient.Height() -(m_nComboHeight+cyTlb), SWP_NOACTIVATE | SWP_NOZORDER);
 }
@@ -82,7 +82,7 @@ int CPropertiesWnd::OnCreate(LPCREATESTRUCT lpCreateStruct)
 	m_wndObjectCombo.SetCurSel(0);
 
 	CRect rectCombo;
-	m_wndObjectCombo.GetClientRect (&rectCombo);
+	m_wndObjectCombo.GetClientRect(&rectCombo);
 
 	m_nComboHeight = rectCombo.Height();
 

+ 11 - 0
CTSManager/CTSManager/pch.h

@@ -13,4 +13,15 @@
 #include "mysql.h"
 #include <string>
 #include <vector>
+
+
+// 隐藏菜单栏;
+#define HIDE_MENU_BAR 1
+// 启用显示文件/类;
+#define ENABLE_FILE_CLASS 0
+// 启用输出;
+#define ENABLE_OUTPUT 0
+// 日历及文件树;
+#define ENABLE_TREE 1
+
 #endif //PCH_H