513 lines
14 KiB
C++
513 lines
14 KiB
C++
// MainFrm.cpp : implementation of the CMainFrame class
|
|
//
|
|
|
|
#include "stdafx.h"
|
|
#include "PopupBar.h"
|
|
|
|
#include "OXColorPickerCtrl.h"
|
|
|
|
#include "BorderPickerCtrl.h"
|
|
#include "LineStylePickerCtrl.h"
|
|
#include "DashStylePickerCtrl.h"
|
|
|
|
#include "PopupBarDoc.h"
|
|
#include "ChildFrm.h"
|
|
#include "MainFrm.h"
|
|
|
|
#ifdef _DEBUG
|
|
#define new DEBUG_NEW
|
|
#undef THIS_FILE
|
|
static char THIS_FILE[] = __FILE__;
|
|
#endif
|
|
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
// CMainFrame
|
|
|
|
IMPLEMENT_DYNAMIC(CMainFrame, CMDIFrameWnd)
|
|
|
|
BEGIN_MESSAGE_MAP(CMainFrame, CMDIFrameWnd)
|
|
//{{AFX_MSG_MAP(CMainFrame)
|
|
ON_WM_CREATE()
|
|
ON_UPDATE_COMMAND_UI(ID_CUSTOMIZE_TEXT_COLOR, OnUpdateCustomizeButtons)
|
|
ON_UPDATE_COMMAND_UI(ID_CUSTOMIZE_BORDER_COLOR, OnUpdateCustomizeButtons)
|
|
ON_UPDATE_COMMAND_UI(ID_CUSTOMIZE_BORDER_STYLE, OnUpdateCustomizeButtons)
|
|
ON_UPDATE_COMMAND_UI(ID_CUSTOMIZE_DASH_STYLE, OnUpdateCustomizeButtons)
|
|
ON_UPDATE_COMMAND_UI(ID_CUSTOMIZE_FILL_COLOR, OnUpdateCustomizeButtons)
|
|
ON_UPDATE_COMMAND_UI(ID_CUSTOMIZE_LINE_STYLE, OnUpdateCustomizeButtons)
|
|
ON_COMMAND(ID_WINDOW_MODAL, OnWindowModal)
|
|
ON_UPDATE_COMMAND_UI(ID_WINDOW_MODAL, OnUpdateWindowModal)
|
|
//}}AFX_MSG_MAP
|
|
ON_UPDATE_COMMAND_UI_RANGE(ID_TOOLBAR_FILE, ID_TOOLBAR_CUSTOMIZE,
|
|
OnUpdateViewToolbars)
|
|
ON_COMMAND_RANGE(ID_TOOLBAR_FILE, ID_TOOLBAR_CUSTOMIZE, OnViewToolbars)
|
|
ON_NOTIFY(TBN_DROPDOWN, ID_TOOLBAR_FILE, OnDropDownFileOpen)
|
|
ON_NOTIFY(TBN_DROPDOWN, ID_TOOLBAR_CUSTOMIZE, OnDropDownCustomizeToolbar)
|
|
#if _MFC_VER>=0x0420
|
|
// reflect message to provide custom draw functionality
|
|
ON_NOTIFY(OXCTBN_CUSTOMDRAW,ID_TOOLBAR_CUSTOMIZE,OnCustomDraw)
|
|
#endif
|
|
END_MESSAGE_MAP()
|
|
|
|
static UINT indicators[] =
|
|
{
|
|
ID_SEPARATOR, // status line indicator
|
|
ID_INDICATOR_CAPS,
|
|
ID_INDICATOR_NUM,
|
|
ID_INDICATOR_SCRL,
|
|
};
|
|
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
// CMainFrame construction/destruction
|
|
|
|
CMainFrame::CMainFrame()
|
|
{
|
|
// TODO: add member initialization code here
|
|
m_bModal=FALSE;
|
|
}
|
|
|
|
CMainFrame::~CMainFrame()
|
|
{
|
|
}
|
|
|
|
int CMainFrame::OnCreate(LPCREATESTRUCT lpCreateStruct)
|
|
{
|
|
if (CMDIFrameWnd::OnCreate(lpCreateStruct) == -1)
|
|
return -1;
|
|
|
|
if (!m_wndToolBarFile.Create(this, WS_CHILD | WS_VISIBLE | CBRS_TOP | CBRS_GRIPPER,
|
|
ID_TOOLBAR_FILE) || !m_wndToolBarFile.LoadToolBar(IDR_TOOLBAR_FILE))
|
|
{
|
|
TRACE0("Failed to create toolbar\n");
|
|
return -1; // fail to create
|
|
}
|
|
m_wndToolBarFile.SetButtonStyle(2,m_wndToolBarFile.GetButtonStyle(2)|TBSTYLE_DROPDOWN);
|
|
m_wndToolBarFile.SetDropDownArrow(TRUE);
|
|
m_wndToolBarFile.UpdateSizes();
|
|
|
|
if (!m_wndToolBarWindow.Create(this, WS_CHILD | WS_VISIBLE | CBRS_TOP | CBRS_GRIPPER,
|
|
ID_TOOLBAR_WINDOW) || !m_wndToolBarWindow.LoadToolBar(IDR_TOOLBAR_WINDOW))
|
|
{
|
|
TRACE0("Failed to create toolbar\n");
|
|
return -1; // fail to create
|
|
}
|
|
m_wndToolBarWindow.IniSizes(CSize(16,16));
|
|
m_wndToolBarWindow.SetList();
|
|
m_wndToolBarWindow.SetDefaultTextColor(RGB(0,0,128));
|
|
m_wndToolBarWindow.SetHotTextColor(RGB(0,0,255));
|
|
// we want to use tooltips text in our CoolToolBar
|
|
m_wndToolBarWindow.SetMaxTextRows(1);
|
|
m_wndToolBarWindow.SetButtonTextFromID(COXCoolToolBar::TTID_TOOLTIP);
|
|
m_wndToolBarWindow.UpdateSizes();
|
|
|
|
if (!m_wndToolBarCustomize.Create(this, WS_CHILD | WS_VISIBLE | CBRS_TOP,
|
|
ID_TOOLBAR_CUSTOMIZE) || !m_wndToolBarCustomize.LoadToolBar(IDR_TOOLBAR_CUSTOMIZE))
|
|
{
|
|
TRACE0("Failed to create toolbar\n");
|
|
return -1; // fail to create
|
|
}
|
|
for (int nIndex=0; nIndex<m_wndToolBarCustomize.GetToolBarCtrl().GetButtonCount(); nIndex++)
|
|
{
|
|
m_wndToolBarCustomize.SetButtonStyle(nIndex,
|
|
m_wndToolBarCustomize.GetButtonStyle(nIndex)|TBSTYLE_DROPDOWN);
|
|
}
|
|
m_wndToolBarCustomize.SetDropDownArrow(TRUE);
|
|
m_wndToolBarCustomize.UpdateSizes();
|
|
|
|
m_nFirstBorderStyleImage=m_wndToolBarCustomize.GetToolBarCtrl().
|
|
AddBitmap(BORDERPICK_DEFINEDSTYLES,IDB_BORDER_TYPES);
|
|
|
|
if (!m_wndStatusBar.Create(this) ||
|
|
!m_wndStatusBar.SetIndicators(indicators,
|
|
sizeof(indicators)/sizeof(UINT)))
|
|
{
|
|
TRACE0("Failed to create status bar\n");
|
|
return -1; // fail to create
|
|
}
|
|
|
|
// TODO: Remove this if you don't want tool tips or a resizeable toolbar
|
|
m_wndToolBarFile.SetBarStyle(m_wndToolBarFile.GetBarStyle() |
|
|
CBRS_TOOLTIPS | CBRS_FLYBY | CBRS_SIZE_DYNAMIC);
|
|
m_wndToolBarWindow.SetBarStyle(m_wndToolBarWindow.GetBarStyle() |
|
|
CBRS_FLYBY | CBRS_SIZE_DYNAMIC);
|
|
m_wndToolBarCustomize.SetBarStyle(m_wndToolBarCustomize.GetBarStyle() |
|
|
CBRS_TOOLTIPS | CBRS_FLYBY | CBRS_SIZE_DYNAMIC);
|
|
|
|
// TODO: Delete these lines if you don't want the toolbar to
|
|
// be dockable
|
|
EnableDocking(CBRS_ALIGN_ANY);
|
|
m_wndToolBarFile.EnableDocking(CBRS_ALIGN_TOP|CBRS_ALIGN_BOTTOM);
|
|
DockControlBar(&m_wndToolBarFile);
|
|
m_wndToolBarWindow.EnableDocking(CBRS_ALIGN_ANY);
|
|
DockControlBar(&m_wndToolBarWindow);
|
|
m_wndToolBarCustomize.EnableDocking(CBRS_ALIGN_ANY);
|
|
m_wndToolBarCustomize.DockControlBarLeftOf(&m_wndToolBarFile);
|
|
|
|
// Let the menu organizer fix our menus
|
|
Organizer.AttachFrameWnd(this);
|
|
// use button from toolbars with corresponding items in menu
|
|
Organizer.AutoSetMenuImage();
|
|
|
|
return 0;
|
|
}
|
|
|
|
BOOL CMainFrame::PreCreateWindow(CREATESTRUCT& cs)
|
|
{
|
|
// TODO: Modify the Window class or styles here by modifying
|
|
// the CREATESTRUCT cs
|
|
|
|
return CMDIFrameWnd::PreCreateWindow(cs);
|
|
}
|
|
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
// CMainFrame diagnostics
|
|
|
|
#ifdef _DEBUG
|
|
void CMainFrame::AssertValid() const
|
|
{
|
|
CMDIFrameWnd::AssertValid();
|
|
}
|
|
|
|
void CMainFrame::Dump(CDumpContext& dc) const
|
|
{
|
|
CMDIFrameWnd::Dump(dc);
|
|
}
|
|
|
|
#endif //_DEBUG
|
|
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
// CMainFrame message handlers
|
|
|
|
void CMainFrame::OnDropDownFileOpen(NMHDR* pNotifyStruct, LRESULT* pResult)
|
|
{
|
|
// this function handles the dropdown menus from the toolbar
|
|
NMTOOLBAR* pNMToolBar = (NMTOOLBAR*)pNotifyStruct;
|
|
CRect rect;
|
|
|
|
// translate the current toolbar item rectangle into screen coordinates
|
|
// so that we'll know where to pop up the menu
|
|
m_wndToolBarFile.GetItemRect(m_wndToolBarFile.CommandToIndex(pNMToolBar->iItem), &rect);
|
|
rect.top = rect.bottom;
|
|
::ClientToScreen(pNMToolBar->hdr.hwndFrom, &rect.TopLeft());
|
|
if(pNMToolBar->iItem == ID_FILE_OPEN)
|
|
{
|
|
CMenu menu;
|
|
CMenu* pPopup;
|
|
|
|
// the font popup is stored in a resource
|
|
menu.LoadMenu(IDR_MAINFRAME);
|
|
pPopup = menu.GetSubMenu(0);
|
|
pPopup->RemoveMenu(ID_FILE_NEW,MF_BYCOMMAND);
|
|
pPopup->RemoveMenu(ID_APP_EXIT,MF_BYCOMMAND);
|
|
pPopup->RemoveMenu(pPopup->GetMenuItemCount()-1,MF_BYPOSITION);
|
|
pPopup->TrackPopupMenu(TPM_LEFTALIGN | TPM_LEFTBUTTON, rect.left,
|
|
rect.top + 1, AfxGetMainWnd());
|
|
}
|
|
*pResult = TBDDRET_DEFAULT;
|
|
}
|
|
|
|
void CMainFrame::OnViewToolbars(UINT nID)
|
|
{
|
|
// TODO: Add your command handler code here
|
|
|
|
CControlBar* pBar = GetControlBar(nID);
|
|
if (pBar != NULL)
|
|
{
|
|
ShowControlBar(pBar, (pBar->GetStyle() & WS_VISIBLE) == 0, FALSE);
|
|
}
|
|
}
|
|
|
|
void CMainFrame::OnUpdateViewToolbars(CCmdUI* pCmdUI)
|
|
{
|
|
// TODO: Add your command update UI handler code here
|
|
CControlBar* pBar=GetControlBar(pCmdUI->m_nID);
|
|
if(pBar!=NULL)
|
|
{
|
|
pCmdUI->SetCheck((pBar->GetStyle() & WS_VISIBLE) != 0);
|
|
return;
|
|
}
|
|
}
|
|
|
|
|
|
void CMainFrame::OnDropDownCustomizeToolbar(NMHDR* pNotifyStruct, LRESULT* pResult)
|
|
{
|
|
CFrameWnd* pFrame=GetActiveFrame();
|
|
ASSERT(pFrame);
|
|
CPopupBarDoc* pDoc = (CPopupBarDoc*)pFrame->GetActiveDocument();
|
|
ASSERT(pDoc);
|
|
ASSERT_VALID(pDoc);
|
|
|
|
// this function handles the dropdown menus from the toolbar
|
|
NMTOOLBAR* pNMToolBar = (NMTOOLBAR*)pNotifyStruct;
|
|
CRect rect;
|
|
|
|
COXCoolToolBar* pToolBar=GetCustomizeToolBar();
|
|
|
|
// translate the current toolbar item rectangle into screen coordinates
|
|
// so that we'll know where to pop up the menu
|
|
pToolBar->GetItemRect(pToolBar->CommandToIndex(pNMToolBar->iItem), &rect);
|
|
::ClientToScreen(pNMToolBar->hdr.hwndFrom, &rect.TopLeft());
|
|
::ClientToScreen(pNMToolBar->hdr.hwndFrom, &rect.BottomRight());
|
|
|
|
COLORREF clr;
|
|
COXColorPickerCtrl colorPicker;
|
|
switch(pNMToolBar->iItem)
|
|
{
|
|
case ID_CUSTOMIZE_TEXT_COLOR:
|
|
{
|
|
if(::IsWindow(colorPicker.m_hWnd) || colorPicker.Create(pToolBar))
|
|
{
|
|
clr=pDoc->GetTextColor();
|
|
colorPicker.SetSelectedColor(clr);
|
|
colorPicker.SetDefaultColor(pDoc->GetDefaultTextColor());
|
|
if(colorPicker.Pick(ID_POPUPBAR_ALIGNBOTTOM,&rect))
|
|
{
|
|
clr=colorPicker.GetSelectedColor();
|
|
pDoc->SetTextColor(clr);
|
|
}
|
|
}
|
|
break;
|
|
}
|
|
case ID_CUSTOMIZE_FILL_COLOR:
|
|
{
|
|
if(::IsWindow(colorPicker.m_hWnd) || colorPicker.Create(pToolBar))
|
|
{
|
|
clr=pDoc->GetFillColor();
|
|
colorPicker.SetSelectedColor(clr);
|
|
colorPicker.SetDefaultColor(pDoc->GetDefaultFillColor());
|
|
if(colorPicker.Pick(ID_POPUPBAR_ALIGNBOTTOM,&rect))
|
|
{
|
|
clr=colorPicker.GetSelectedColor();
|
|
pDoc->SetFillColor(clr);
|
|
}
|
|
}
|
|
break;
|
|
}
|
|
case ID_CUSTOMIZE_BORDER_COLOR:
|
|
{
|
|
if(::IsWindow(colorPicker.m_hWnd) || colorPicker.Create(pToolBar))
|
|
{
|
|
clr=pDoc->GetBorderColor();
|
|
colorPicker.SetSelectedColor(clr);
|
|
colorPicker.SetDefaultColor(pDoc->GetDefaultBorderColor());
|
|
if(colorPicker.Pick(ID_POPUPBAR_ALIGNBOTTOM,&rect))
|
|
{
|
|
clr=colorPicker.GetSelectedColor();
|
|
pDoc->SetBorderColor(clr);
|
|
}
|
|
}
|
|
break;
|
|
}
|
|
case ID_CUSTOMIZE_BORDER_STYLE:
|
|
{
|
|
CBorderPickerCtrl borderPicker;
|
|
if(::IsWindow(borderPicker.m_hWnd) || borderPicker.Create(pToolBar))
|
|
{
|
|
int nBorderStyle=pDoc->GetBorderStyle();
|
|
borderPicker.SetSelectedStyle(nBorderStyle);
|
|
borderPicker.SetStylesImages(IDB_BORDER_TYPES,16,
|
|
BORDERPICK_DEFINEDSTYLES,RGB(192,192,192));
|
|
if(borderPicker.Pick(ID_POPUPBAR_ALIGNBOTTOM,&rect))
|
|
{
|
|
nBorderStyle=borderPicker.GetSelectedStyle();
|
|
pDoc->SetBorderStyle(nBorderStyle);
|
|
}
|
|
}
|
|
break;
|
|
}
|
|
case ID_CUSTOMIZE_LINE_STYLE:
|
|
{
|
|
CLineStylePickerCtrl lineStylePicker;
|
|
if(::IsWindow(lineStylePicker.m_hWnd) || lineStylePicker.Create(pToolBar))
|
|
{
|
|
int nLineStyle=pDoc->GetLineStyle();
|
|
lineStylePicker.SetSelectedStyle(nLineStyle);
|
|
if(lineStylePicker.Pick(ID_POPUPBAR_ALIGNBOTTOM,&rect))
|
|
{
|
|
nLineStyle=lineStylePicker.GetSelectedStyle();
|
|
pDoc->SetLineStyle(nLineStyle);
|
|
}
|
|
}
|
|
break;
|
|
}
|
|
case ID_CUSTOMIZE_DASH_STYLE:
|
|
{
|
|
CDashStylePickerCtrl dashStylePicker;
|
|
if(::IsWindow(dashStylePicker.m_hWnd) || dashStylePicker.Create(pToolBar))
|
|
{
|
|
int nDashStyle=pDoc->GetDashStyle();
|
|
dashStylePicker.SetSelectedStyle(nDashStyle);
|
|
if(dashStylePicker.Pick(ID_POPUPBAR_ALIGNBOTTOM,&rect))
|
|
{
|
|
nDashStyle=dashStylePicker.GetSelectedStyle();
|
|
pDoc->SetDashStyle(nDashStyle);
|
|
}
|
|
}
|
|
break;
|
|
}
|
|
}
|
|
|
|
|
|
pToolBar->InvalidateRect(rect);
|
|
|
|
pDoc->UpdateAllViews(NULL);
|
|
|
|
*pResult = TBDDRET_DEFAULT;
|
|
}
|
|
|
|
#if _MFC_VER>=0x0420
|
|
//////////////////////
|
|
// custom draw of a toolbar is available since MFC 4.2
|
|
afx_msg void CMainFrame::OnCustomDraw(NMHDR* pNotify, LRESULT* pResult)
|
|
{
|
|
*pResult=0;
|
|
|
|
COXCoolToolBar* pToolBar=GetCustomizeToolBar();
|
|
|
|
LPOXCTB_CUSTOMDRAW phdr=(LPOXCTB_CUSTOMDRAW)pNotify;
|
|
// in new version of comctl32.dll(4.71)
|
|
// we use toolbar specific custom draw structure
|
|
LPNMTBCUSTOMDRAW pTBCDRW;
|
|
LPNMCUSTOMDRAW pCDRW;
|
|
|
|
DWORD dwComCtlVersion=pToolBar->GetComCtlVersion();
|
|
|
|
if(dwComCtlVersion>=_IE40_COMCTL_VERSION)
|
|
{
|
|
pTBCDRW=(LPNMTBCUSTOMDRAW)phdr->pCustomDraw;
|
|
pCDRW=&pTBCDRW->nmcd;
|
|
}
|
|
else
|
|
{
|
|
pCDRW=(LPNMCUSTOMDRAW)phdr->pCustomDraw;
|
|
}
|
|
|
|
phdr->result = CDRF_DODEFAULT;
|
|
|
|
if(pCDRW->dwDrawStage==CDDS_ITEMPOSTPAINT)
|
|
{
|
|
CPopupBarDoc* pDoc = NULL;
|
|
CFrameWnd* pFrame=GetActiveFrame();
|
|
if(pFrame)
|
|
{
|
|
pDoc = (CPopupBarDoc*)pFrame->GetActiveDocument();
|
|
if(pDoc)
|
|
{
|
|
ASSERT_VALID(pDoc);
|
|
}
|
|
}
|
|
|
|
COLORREF clr;
|
|
switch(pCDRW->dwItemSpec)
|
|
{
|
|
case ID_CUSTOMIZE_TEXT_COLOR:
|
|
{
|
|
clr=pDoc!=NULL ? pDoc->GetTextColor() : ::GetSysColor(COLOR_BTNSHADOW);
|
|
break;
|
|
}
|
|
case ID_CUSTOMIZE_FILL_COLOR:
|
|
{
|
|
clr=pDoc!=NULL ? pDoc->GetFillColor() : ::GetSysColor(COLOR_BTNSHADOW);
|
|
break;
|
|
}
|
|
case ID_CUSTOMIZE_BORDER_COLOR:
|
|
{
|
|
clr=pDoc!=NULL ? pDoc->GetBorderColor() : ::GetSysColor(COLOR_BTNSHADOW);
|
|
break;
|
|
}
|
|
default:
|
|
return;
|
|
}
|
|
|
|
if(pCDRW->uItemState&CDIS_DISABLED || pCDRW->uItemState&CDIS_GRAYED)
|
|
{
|
|
clr=::GetSysColor(COLOR_BTNSHADOW);
|
|
}
|
|
|
|
int nIndex=pToolBar->CommandToIndex(pCDRW->dwItemSpec);
|
|
|
|
CRect rect;
|
|
pToolBar->GetItemRect(nIndex,rect);
|
|
rect.DeflateRect(2,2);
|
|
rect.top=rect.bottom-5;
|
|
rect.right-=pToolBar->GetDropDownArrowWidth()+1;
|
|
|
|
if(pCDRW->uItemState&CDIS_SELECTED || pCDRW->uItemState&CDIS_CHECKED)
|
|
{
|
|
rect.OffsetRect(1,1);
|
|
}
|
|
|
|
CDC dc;
|
|
dc.Attach(pCDRW->hdc);
|
|
COLORREF clrShadow=::GetSysColor(COLOR_BTNSHADOW);
|
|
CBrush brushFrame(clrShadow);
|
|
dc.FrameRect(&rect,&brushFrame);
|
|
rect.DeflateRect(1,1);
|
|
|
|
if(clr!=ID_CLRPICK_COLOR_NONE)
|
|
{
|
|
CBrush brush(clr);
|
|
dc.FillRect(&rect,&brush);
|
|
}
|
|
dc.Detach();
|
|
|
|
phdr->bDoDefault=FALSE;
|
|
}
|
|
}
|
|
//////////////////////
|
|
#endif
|
|
|
|
|
|
void CMainFrame::OnUpdateCustomizeButtons(CCmdUI* pCmdUI)
|
|
{
|
|
// TODO: Add your command update UI handler code here
|
|
CPopupBarDoc* pDoc = NULL;
|
|
CFrameWnd* pFrame=GetActiveFrame();
|
|
if(pFrame)
|
|
{
|
|
pDoc = (CPopupBarDoc*)pFrame->GetActiveDocument();
|
|
if(pDoc)
|
|
{
|
|
ASSERT_VALID(pDoc);
|
|
}
|
|
}
|
|
|
|
pCmdUI->Enable(pDoc!=NULL);
|
|
|
|
if(pCmdUI->m_nID==ID_CUSTOMIZE_BORDER_STYLE)
|
|
{
|
|
int nBorderStyle=pDoc==NULL ? CPopupBarDoc::GetDefaultBorderStyle() :
|
|
pDoc->GetBorderStyle();
|
|
int nIndex=CBorderPickerCtrl::FindImageIndexFromStyle(nBorderStyle);
|
|
if(nIndex!=-1)
|
|
{
|
|
int nImageIndex=nIndex+m_nFirstBorderStyleImage;
|
|
TBBUTTON button;
|
|
int nButtonIndex=m_wndToolBarCustomize.CommandToIndex(pCmdUI->m_nID);
|
|
VERIFY(m_wndToolBarCustomize.GetToolBarCtrl().GetButton(nButtonIndex,&button));
|
|
if(button.iBitmap!=nImageIndex)
|
|
{
|
|
m_wndToolBarCustomize.GetToolBarCtrl().DeleteButton(nButtonIndex);
|
|
button.iBitmap=nImageIndex;
|
|
VERIFY(m_wndToolBarCustomize.GetToolBarCtrl().
|
|
InsertButton(nButtonIndex,&button));
|
|
}
|
|
}
|
|
}
|
|
|
|
return;
|
|
}
|
|
|
|
|
|
void CMainFrame::OnWindowModal()
|
|
{
|
|
// TODO: Add your command handler code here
|
|
m_bModal=!m_bModal;
|
|
((CChildFrame*)GetActiveFrame())->SetModal(m_bModal);
|
|
}
|
|
|
|
void CMainFrame::OnUpdateWindowModal(CCmdUI* pCmdUI)
|
|
{
|
|
// TODO: Add your command update UI handler code here
|
|
pCmdUI->SetCheck(m_bModal);
|
|
}
|