📄 mainfrm.cpp
字号:
// mainfrm.cpp : implementation of the CMainFrame class
//
#include "stdafx.h"
#include "const.h"
#include "paintobj.h"
#include "mainfrm.h"
#ifdef _DEBUG
#undef THIS_FILE
static char BASED_CODE THIS_FILE[] = __FILE__;
#endif
/////////////////////////////////////////////////////////////////////////////
// CMainFrame
IMPLEMENT_DYNCREATE(CMainFrame, CFrameWnd)
BEGIN_MESSAGE_MAP(CMainFrame, CFrameWnd)
ON_COMMAND_EX(CG_ID_VIEW_MYDIALOGBAR1, OnBarCheck)
ON_UPDATE_COMMAND_UI(CG_ID_VIEW_MYDIALOGBAR1, OnUpdateControlBarMenu)
ON_COMMAND_EX(CG_ID_VIEW_MYDIALOGBAR, OnBarCheck)
ON_UPDATE_COMMAND_UI(CG_ID_VIEW_MYDIALOGBAR, OnUpdateControlBarMenu)
//{{AFX_MSG_MAP(CMainFrame)
ON_WM_CREATE()
ON_COMMAND(ID_HELP_FINDER, OnHelpFinder)
ON_COMMAND(ID_VIEW_TOOLBAR, OnViewToolbar)
ON_UPDATE_COMMAND_UI(ID_VIEW_TOOLBAR, OnUpdateViewToolbar)
ON_WM_CLOSE()
// ON_COMMAND(ID_VIEW_DRAWTOOLBAR_ARC, OnViewDrawtoolbarArc)
// ON_UPDATE_COMMAND_UI(ID_VIEW_DRAWTOOLBAR_ARC, OnUpdateViewDrawtoolbarArc)
// ON_COMMAND(ID_VIEW_DRAWTOOLBAR_BEELINE, OnViewDrawtoolbarBeeline)
// ON_UPDATE_COMMAND_UI(ID_VIEW_DRAWTOOLBAR_BEELINE, OnUpdateViewDrawtoolbarBeeline)
// ON_COMMAND(ID_VIEW_DRAWTOOLBAR_CHORD, OnViewDrawtoolbarChord)
// ON_UPDATE_COMMAND_UI(ID_VIEW_DRAWTOOLBAR_CHORD, OnUpdateViewDrawtoolbarChord)
// ON_COMMAND(ID_VIEW_DRAWTOOLBAR_ELLIPSE, OnViewDrawtoolbarEllipse)
// ON_UPDATE_COMMAND_UI(ID_VIEW_DRAWTOOLBAR_ELLIPSE, OnUpdateViewDrawtoolbarEllipse)
// ON_COMMAND(ID_VIEW_DRAWTOOLBAR_LAZYS, OnViewDrawtoolbarLazys)
// ON_UPDATE_COMMAND_UI(ID_VIEW_DRAWTOOLBAR_LAZYS, OnUpdateViewDrawtoolbarLazys)
// ON_COMMAND(ID_VIEW_DRAWTOOLBAR_PIE, OnViewDrawtoolbarPie)
// ON_UPDATE_COMMAND_UI(ID_VIEW_DRAWTOOLBAR_PIE, OnUpdateViewDrawtoolbarPie)
// ON_COMMAND(ID_VIEW_DRAWTOOLBAR_POLYGON, OnViewDrawtoolbarPolygon)
// ON_UPDATE_COMMAND_UI(ID_VIEW_DRAWTOOLBAR_POLYGON, OnUpdateViewDrawtoolbarPolygon)
// ON_COMMAND(ID_VIEW_DRAWTOOLBAR_RECT, OnViewDrawtoolbarRect)
// ON_UPDATE_COMMAND_UI(ID_VIEW_DRAWTOOLBAR_RECT, OnUpdateViewDrawtoolbarRect)
// ON_COMMAND(ID_VIEW_DRAWTOOLBAR_ROUNDRECT, OnViewDrawtoolbarRoundrect)
// ON_UPDATE_COMMAND_UI(ID_VIEW_DRAWTOOLBAR_ROUNDRECT, OnUpdateViewDrawtoolbarRoundrect)
// ON_COMMAND(ID_VIEW_DRAWTOOLBAR_SCP, OnViewDrawtoolbarScp)
// ON_UPDATE_COMMAND_UI(ID_VIEW_DRAWTOOLBAR_SCP, OnUpdateViewDrawtoolbarScp)
// ON_COMMAND(ID_VIEW_DRAWTOOLBAR_SIDE, OnViewDrawtoolbarSide)
// ON_UPDATE_COMMAND_UI(ID_VIEW_DRAWTOOLBAR_SIDE, OnUpdateViewDrawtoolbarSide)
// ON_COMMAND(ID_VIEW_DRAWTOOLBAR_TOOL, OnViewDrawtoolbarTool)
// ON_UPDATE_COMMAND_UI(ID_VIEW_DRAWTOOLBAR_TOOL, OnUpdateViewDrawtoolbarTool)
ON_COMMAND(ID_VIEW_BUILDINGDRAWTOOLBAR_ARC, OnViewBuildingdrawtoolbarArc)
ON_UPDATE_COMMAND_UI(ID_VIEW_BUILDINGDRAWTOOLBAR_ARC, OnUpdateViewBuildingdrawtoolbarArc)
ON_COMMAND(ID_VIEW_BUILDINGDRAWTOOLBAR_BEELINE, OnViewBuildingdrawtoolbarBeeline)
ON_UPDATE_COMMAND_UI(ID_VIEW_BUILDINGDRAWTOOLBAR_BEELINE, OnUpdateViewBuildingdrawtoolbarBeeline)
ON_COMMAND(ID_VIEW_BUILDINGDRAWTOOLBAR_CHORD, OnViewBuildingdrawtoolbarChord)
ON_UPDATE_COMMAND_UI(ID_VIEW_BUILDINGDRAWTOOLBAR_CHORD, OnUpdateViewBuildingdrawtoolbarChord)
ON_COMMAND(ID_VIEW_BUILDINGDRAWTOOLBAR_ELLIPSE, OnViewBuildingdrawtoolbarEllipse)
ON_UPDATE_COMMAND_UI(ID_VIEW_BUILDINGDRAWTOOLBAR_ELLIPSE, OnUpdateViewBuildingdrawtoolbarEllipse)
ON_COMMAND(ID_VIEW_BUILDINGDRAWTOOLBAR_LAZYS, OnViewBuildingdrawtoolbarLazys)
ON_UPDATE_COMMAND_UI(ID_VIEW_BUILDINGDRAWTOOLBAR_LAZYS, OnUpdateViewBuildingdrawtoolbarLazys)
ON_COMMAND(ID_VIEW_BUILDINGDRAWTOOLBAR_PIE, OnViewBuildingdrawtoolbarPie)
ON_UPDATE_COMMAND_UI(ID_VIEW_BUILDINGDRAWTOOLBAR_PIE, OnUpdateViewBuildingdrawtoolbarPie)
ON_COMMAND(ID_VIEW_BUILDINGDRAWTOOLBAR_POLYGON, OnViewBuildingdrawtoolbarPolygon)
ON_UPDATE_COMMAND_UI(ID_VIEW_BUILDINGDRAWTOOLBAR_POLYGON, OnUpdateViewBuildingdrawtoolbarPolygon)
ON_COMMAND(ID_VIEW_BUILDINGDRAWTOOLBAR_RECT, OnViewBuildingdrawtoolbarRect)
ON_UPDATE_COMMAND_UI(ID_VIEW_BUILDINGDRAWTOOLBAR_RECT, OnUpdateViewBuildingdrawtoolbarRect)
ON_COMMAND(ID_VIEW_BUILDINGDRAWTOOLBAR_ROUNDRECT, OnViewBuildingdrawtoolbarRoundrect)
ON_UPDATE_COMMAND_UI(ID_VIEW_BUILDINGDRAWTOOLBAR_ROUNDRECT, OnUpdateViewBuildingdrawtoolbarRoundrect)
ON_COMMAND(ID_VIEW_DEVICEDRAWTOOLBAR_ARC, OnViewDevicedrawtoolbarArc)
ON_UPDATE_COMMAND_UI(ID_VIEW_DEVICEDRAWTOOLBAR_ARC, OnUpdateViewDevicedrawtoolbarArc)
ON_COMMAND(ID_VIEW_DEVICEDRAWTOOLBAR_BEELINE, OnViewDevicedrawtoolbarBeeline)
ON_UPDATE_COMMAND_UI(ID_VIEW_DEVICEDRAWTOOLBAR_BEELINE, OnUpdateViewDevicedrawtoolbarBeeline)
ON_COMMAND(ID_VIEW_DEVICEDRAWTOOLBAR_CHORD, OnViewDevicedrawtoolbarChord)
ON_UPDATE_COMMAND_UI(ID_VIEW_DEVICEDRAWTOOLBAR_CHORD, OnUpdateViewDevicedrawtoolbarChord)
ON_COMMAND(ID_VIEW_DEVICEDRAWTOOLBAR_ELLIPSE, OnViewDevicedrawtoolbarEllipse)
ON_UPDATE_COMMAND_UI(ID_VIEW_DEVICEDRAWTOOLBAR_ELLIPSE, OnUpdateViewDevicedrawtoolbarEllipse)
ON_COMMAND(ID_VIEW_DEVICEDRAWTOOLBAR_LAZYS, OnViewDevicedrawtoolbarLazys)
ON_UPDATE_COMMAND_UI(ID_VIEW_DEVICEDRAWTOOLBAR_LAZYS, OnUpdateViewDevicedrawtoolbarLazys)
ON_COMMAND(ID_VIEW_DEVICEDRAWTOOLBAR_PIE, OnViewDevicedrawtoolbarPie)
ON_UPDATE_COMMAND_UI(ID_VIEW_DEVICEDRAWTOOLBAR_PIE, OnUpdateViewDevicedrawtoolbarPie)
ON_COMMAND(ID_VIEW_DEVICEDRAWTOOLBAR_POLYGON, OnViewDevicedrawtoolbarPolygon)
ON_UPDATE_COMMAND_UI(ID_VIEW_DEVICEDRAWTOOLBAR_POLYGON, OnUpdateViewDevicedrawtoolbarPolygon)
ON_COMMAND(ID_VIEW_DEVICEDRAWTOOLBAR_RECT, OnViewDevicedrawtoolbarRect)
ON_UPDATE_COMMAND_UI(ID_VIEW_DEVICEDRAWTOOLBAR_RECT, OnUpdateViewDevicedrawtoolbarRect)
ON_COMMAND(ID_VIEW_DEVICEDRAWTOOLBAR_ROUNDRECT, OnViewDevicedrawtoolbarRoundrect)
ON_UPDATE_COMMAND_UI(ID_VIEW_DEVICEDRAWTOOLBAR_ROUNDRECT, OnUpdateViewDevicedrawtoolbarRoundrect)
ON_COMMAND(ID_VIEW_DRAWTOOL, OnViewDrawtool)
ON_UPDATE_COMMAND_UI(ID_VIEW_DRAWTOOL, OnUpdateViewDrawtool)
ON_COMMAND(ID_VIEW_PATHDRAWTOOLBAR_ARC, OnViewPathdrawtoolbarArc)
ON_UPDATE_COMMAND_UI(ID_VIEW_PATHDRAWTOOLBAR_ARC, OnUpdateViewPathdrawtoolbarArc)
ON_COMMAND(ID_VIEW_PATHDRAWTOOLBAR_BEELINE, OnViewPathdrawtoolbarBeeline)
ON_UPDATE_COMMAND_UI(ID_VIEW_PATHDRAWTOOLBAR_BEELINE, OnUpdateViewPathdrawtoolbarBeeline)
ON_COMMAND(ID_VIEW_PATHDRAWTOOLBAR_LAZYS, OnViewPathdrawtoolbarLazys)
ON_UPDATE_COMMAND_UI(ID_VIEW_PATHDRAWTOOLBAR_LAZYS, OnUpdateViewPathdrawtoolbarLazys)
ON_COMMAND(ID_VIEW_PATHDRAWTOOLBAR_SCP, OnViewPathdrawtoolbarScp)
ON_UPDATE_COMMAND_UI(ID_VIEW_PATHDRAWTOOLBAR_SCP, OnUpdateViewPathdrawtoolbarScp)
ON_COMMAND(ID_VIEW_PATHDRAWTOOLBAR_SIDE, OnViewPathdrawtoolbarSide)
ON_UPDATE_COMMAND_UI(ID_VIEW_PATHDRAWTOOLBAR_SIDE, OnUpdateViewPathdrawtoolbarSide)
//}}AFX_MSG_MAP
// ON_COMMAND_EX(ID_VIEW_TOOLBAR, OnViewToolbar)
// ON_COMMAND_EX(ID_VIEW_DRAWTOOLS, OnViewToolbar)
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// arrays of IDs used to initialize control bars
static UINT BASED_CODE indicators[] =
{
ID_SEPARATOR, // status line indicator
0, // mouse position indicator
ID_INDICATOR_CAPS,
ID_INDICATOR_NUM,
ID_INDICATOR_SCRL,
};
/////////////////////////////////////////////////////////////////////////////
// CMainFrame construction/destruction
CMainFrame::CMainFrame()
{
// TODO: add member initialization code here
m_hIcon = AfxGetApp()->LoadIcon(IDI_ICON2);
}
CMainFrame::~CMainFrame()
{
}
int CMainFrame::OnCreate(LPCREATESTRUCT lpCreateStruct)
{
if (CFrameWnd::OnCreate(lpCreateStruct) == -1)
return -1;
//工具条初始化(老版本)
// if (!m_wndToolBar.Create(this) ||
// !m_wndToolBar.LoadToolBar(IDR_MAINFRAME))
// {
// TRACE0("Failed to create toolbar\n");
// return -1; // fail to create
// }
//工具条初始化(新版本动态按钮)
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(IDR_MAINFRAME))
{
TRACE0("Failed to create toolbar\n");
return -1; // fail to create
}
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
}
UINT uID;
UINT uStyle;
int nWidth;
CDC *pDC;
CRect rectArea;
m_wndStatusBar.GetPaneInfo(1, uID, uStyle, nWidth);
pDC = m_wndStatusBar.GetDC();
pDC->SelectObject(m_wndStatusBar.GetFont());
pDC->DrawText(_T("X=9999.9999, Y=9999.9999"), -1, rectArea, DT_SINGLELINE | DT_CALCRECT);
m_wndStatusBar.ReleaseDC(pDC);
m_wndStatusBar.SetPaneInfo(1, uID, uStyle, rectArea.Width());
// m_wndStatusBar.SetPaneInfo(1,1,SBPS_NORMAL,170);
if (!CreatePathArcToolBar())
return -1;
if (!CreatePathLineToolBar())
return -1;
if (!CreateDrawToolBar())//绘图工具条
return -1;
if (!CreatePathLazysToolBar())
return -1;
if (!CreatePathSideToolBar())
return -1;
if (!CreatePathScpToolBar())
return -1;
if (!CreateBuildingLineToolBar())
return -1;
if (!CreateBuildingArcToolBar())
return -1;
if (!CreateBuildingLazysToolBar())
return -1;
if (!CreateBuildingEllipseToolBar())
return -1;
if (!CreateBuildingRectToolBar())
return -1;
if (!CreateBuildingPolygonToolBar())
return -1;
if (!CreateBuildingRoundrectToolBar())
return -1;
if (!CreateBuildingChordToolBar())
return -1;
if (!CreateBuildingPieToolBar())
return -1;
if (!CreateDeviceLineToolBar())
return -1;
if (!CreateDeviceArcToolBar())
return -1;
if (!CreateDeviceLazysToolBar())
return -1;
if (!CreateDeviceEllipseToolBar())
return -1;
if (!CreateDeviceRectToolBar())
return -1;
if (!CreateDevicePolygonToolBar())
return -1;
if (!CreateDeviceRoundrectToolBar())
return -1;
if (!CreateDeviceChordToolBar())
return -1;
if (!CreateDevicePieToolBar())
return -1;
// TODO: Delete these three lines if you don't want the toolbar to
// be dockable
m_wndToolBar.EnableDocking(CBRS_ALIGN_ANY);
EnableDocking(CBRS_ALIGN_ANY);
DockControlBar(&m_wndToolBar);
// TODO: Remove this if you don't want tool tips
m_wndToolBar.SetBarStyle(m_wndToolBar.GetBarStyle() |
CBRS_TOOLTIPS | CBRS_FLYBY);
// TODO: Add a menu item that will toggle the visibility of the // dialog bar named "My Dialog Bar": // 1. In ResourceView, open the menu resource that is used by // the CMainFrame class // 2. Select the View submenu // 3. Double-click on the blank item at the bottom of the submenu // 4. Assign the new item an ID: CG_ID_VIEW_MYDIALOGBAR // 5. Assign the item a Caption: My Dialog Bar // TODO: Change the value of CG_ID_VIEW_MYDIALOGBAR to an appropriate value: // 1. Open the file resource.h // CG: The following block was inserted by the 'Dialog Bar' component { // Initialize dialog bar m_wndMyDialogBar if (!m_wndMyDialogBar.Create(this, CG_IDD_MYDIALOGBAR, CBRS_BOTTOM | CBRS_TOOLTIPS | CBRS_FLYBY | CBRS_HIDE_INPLACE, CG_ID_VIEW_MYDIALOGBAR)) { TRACE0("Failed to create dialog bar m_wndMyDialogBar\n"); return -1; // fail to create }
//ShowControlBar( &m_wndMyDialogBar, FALSE, FALSE );m_wndShapeBar
}
// TODO: Add a menu item that will toggle the visibility of the // dialog bar named "My Dialog Bar1": // 1. In ResourceView, open the menu resource that is used by // the CMainFrame class // 2. Select the View submenu // 3. Double-click on the blank item at the bottom of the submenu // 4. Assign the new item an ID: CG_ID_VIEW_MYDIALOGBAR1 // 5. Assign the item a Caption: My Dialog Bar1 // TODO: Change the value of CG_ID_VIEW_MYDIALOGBAR1 to an appropriate value: // 1. Open the file resource.h // CG: The following block was inserted by the 'Dialog Bar' component { // Initialize dialog bar m_wndMyDialogBar1 if (!m_wndMyDialogBar1.Create(this, CG_IDD_MYDIALOGBAR1, CBRS_TOP | CBRS_TOOLTIPS | CBRS_FLYBY | CBRS_HIDE_INPLACE, CG_ID_VIEW_MYDIALOGBAR1)) { TRACE0("Failed to create dialog bar m_wndMyDialogBar1\n"); return -1; // fail to create } m_wndMyDialogBar1.EnableDocking(CBRS_ALIGN_TOP | CBRS_ALIGN_BOTTOM); EnableDocking(CBRS_ALIGN_ANY); DockControlBar(&m_wndMyDialogBar1); ShowControlBar( &m_wndMyDialogBar1, FALSE, FALSE );
int a=1;
CString str;
str.Format("%d",a);
m_wndMyDialogBar1.SetDlgItemText(IDC_LENGTH,str);
m_wndMyDialogBar1.SetDlgItemText(IDC_ANGLE,str); } SetIcon(m_hIcon,TRUE); // Set big icon
// LoadBarState(_T("yyhh"));
return 0;
}
void CMainFrame::ClearPositionText()
{
m_wndStatusBar.SetPaneText(1, NULL);
}
void CMainFrame::SetPositionText(CPoint& point)
{
CString strPosition;
strPosition.Format(_T("X=%d, Y=%d"), point.x, point.y);
m_wndStatusBar.SetPaneText(1, strPosition);
}
/////////////////////////////////////////////////////////////////////////////
// CMainFrame diagnostics
#ifdef _DEBUG
void CMainFrame::AssertValid() const
{
CFrameWnd::AssertValid();
}
void CMainFrame::Dump(CDumpContext& dc) const
{
CFrameWnd::Dump(dc);
}
#endif //_DEBUG
/////////////////////////////////////////////////////////////////////////////
// CMainFrame message handlers
/*
BOOL CMainFrame::OnViewToolbar(UINT nID)
{
CControlBar* pBar = GetControlBar(nID);
if (pBar != NULL)
{
ShowControlBar(pBar, (pBar->GetStyle() & WS_VISIBLE) == 0, FALSE);
return TRUE;
}
return FALSE;
}
void CMainFrame::OnUpdateViewToolbar(CCmdUI* pCmdUI)
{
CControlBar* pBar = GetControlBar(pCmdUI->m_nID);
if (pBar != NULL)
{
pCmdUI->SetCheck((pBar->GetStyle() & WS_VISIBLE) != 0);
return;
}
pCmdUI->ContinueRouting();
}
*/
BOOL CMainFrame::PreCreateWindow(CREATESTRUCT& cs)
{
// TODO: Add your specialized code here and/or call the base class
if( !CFrameWnd::PreCreateWindow(cs) )
return FALSE;
// TODO: Modify the Window class or styles here by modifying
// the CREATESTRUCT cs
cs.style = WS_OVERLAPPED | WS_CAPTION | FWS_ADDTOTITLE
| WS_THICKFRAME | WS_SYSMENU | WS_MINIMIZEBOX | WS_MAXIMIZEBOX | WS_MAXIMIZE;
return TRUE;
}
void CMainFrame::OnHelpFinder()
{
// TODO: Add your command handler code here
AfxGetApp()->WinHelp(0L, HELP_FINDER);
}
void CMainFrame::OnViewToolbar()
{
// TODO: Add your command handler code here
ShowControlBar( &m_wndToolBar,(m_wndToolBar.GetStyle() & WS_VISIBLE) == 0, FALSE );
}
void CMainFrame::OnUpdateViewToolbar(CCmdUI* pCmdUI)
{
// TODO: Add your command update UI handler code here
pCmdUI->SetCheck((m_wndToolBar.GetStyle() & WS_VISIBLE) != 0);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -