|
@@ -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
|
|
|
}
|