⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 mainfrm.cpp

📁 ======================================================================== MICROSOFT FOUNDATIO
💻 CPP
字号:
// MainFrm.cpp : implementation of the CMainFrame class
//

#include "stdafx.h"
#include "SimpleExtMFC.h"

#include "MainFrm.h"

#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif

/////////////////////////////////////////////////////////////////////////////
// CMainFrame

BEGIN_MESSAGE_MAP(CMainFrame, CFrameWnd)
	//{{AFX_MSG_MAP(CMainFrame)
	ON_WM_CREATE()
	ON_WM_RBUTTONUP()
	ON_COMMAND(ID_POPUP_CLOSE, OnPopupClose)
	ON_COMMAND(ID_POPUPTOP_MOVE, OnPopuptopMove)
	ON_WM_LBUTTONDOWN()
	ON_WM_MOUSEMOVE()
	ON_WM_LBUTTONUP()
	ON_COMMAND(ID_POPUPTOP_RESTORE, OnPopuptopRestore)
	ON_COMMAND(ID_POPUPTOP_SIZE, OnPopuptopSize)
	ON_COMMAND(ID_POPUPTOP_MINIMIZE, OnPopuptopMinimize)
	ON_COMMAND(ID_POPUPTOP_MAXIMIZE, OnPopuptopMaximize)
	ON_UPDATE_COMMAND_UI(ID_POPUPTOP_MOVE, OnUpdatePopuptopMove)
	ON_UPDATE_COMMAND_UI(ID_POPUPTOP_MAXIMIZE, OnUpdatePopuptopMaximize)
	ON_UPDATE_COMMAND_UI(ID_POPUPTOP_MINIMIZE, OnUpdatePopuptopMinimize)
	ON_UPDATE_COMMAND_UI(ID_POPUPTOP_RESTORE, OnUpdatePopuptopRestore)
	ON_UPDATE_COMMAND_UI(ID_POPUPTOP_SIZE, OnUpdatePopuptopSize)
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CMainFrame construction/destruction

CMainFrame::CMainFrame()
{
	RECT r;
	r.left = 100;
	r.top = 100;
	r.right = 200;
	r.bottom = 200;

	Create(NULL, "Simple MFC App", 
		WS_POPUP|WS_THICKFRAME, 
        	r, NULL, NULL, 0, NULL );

	ModifyStyle(0, WS_SYSMENU, 0);

	m_bMouseDown = FALSE;
}


CMainFrame::~CMainFrame()
{
}

int CMainFrame::OnCreate(LPCREATESTRUCT lpCreateStruct)
{
	if (CFrameWnd::OnCreate(lpCreateStruct) == -1)
		return -1;

	return 0;
}

BOOL CMainFrame::PreCreateWindow(CREATESTRUCT& cs)
{
	if( !CFrameWnd::PreCreateWindow(cs) )
		return FALSE;
	// TODO: Modify the Window class or styles here by modifying
	//  the CREATESTRUCT cs

	return TRUE;
}

/////////////////////////////////////////////////////////////////////////////
// CMainFrame diagnostics

#ifdef _DEBUG
void CMainFrame::AssertValid() const
{
	CFrameWnd::AssertValid();
}

void CMainFrame::Dump(CDumpContext& dc) const
{
	CFrameWnd::Dump(dc);
}

#endif //_DEBUG

/////////////////////////////////////////////////////////////////////////////
// CMainFrame message handlers


void CMainFrame::OnRButtonUp(UINT nFlags, CPoint point)
{
	CMenu popupMenu;
	popupMenu.LoadMenu(IDR_POPUPMENU);
	CMenu* subMenu = popupMenu.GetSubMenu(0);
	ClientToScreen(&point);
	subMenu->TrackPopupMenu(0, point.x, point.y, 
	   AfxGetMainWnd(), NULL);
	
	CFrameWnd::OnRButtonUp(nFlags, point);
}


void CMainFrame::OnPopupClose()
{
	PostMessage(WM_SYSCOMMAND, SC_CLOSE);
}


void CMainFrame::OnPopuptopMove() 
{
	PostMessage(WM_SYSCOMMAND, SC_MOVE);
}

void CMainFrame::OnLButtonDown(UINT nFlags, CPoint point) 
{
	m_bMouseDown = TRUE;
	SetCapture();
	m_mouseDownPoint = point;
	
	CFrameWnd::OnLButtonDown(nFlags, point);
}

void CMainFrame::OnMouseMove(UINT nFlags, CPoint point)
{
	if( ( m_bMouseDown )&&( !IsZoomed() ) )
	{
		CSize s = m_mouseDownPoint - point;
		CRect r;
		GetWindowRect(&r);
		r = s - &r;
		MoveWindow(r);
	}
	
	CFrameWnd::OnMouseMove(nFlags, point);
}


void CMainFrame::OnLButtonUp(UINT nFlags, CPoint point) 
{
	m_bMouseDown = FALSE;
	ReleaseCapture();
	
	CFrameWnd::OnLButtonUp(nFlags, point);
}

void CMainFrame::OnPopuptopRestore() 
{
	PostMessage(WM_SYSCOMMAND, SC_RESTORE);
	ModifyStyle(0, WS_THICKFRAME, 0);
	ModifyStyleEx (0, WS_EX_CLIENTEDGE, 0);
}

void CMainFrame::OnPopuptopSize() 
{
	PostMessage(WM_SYSCOMMAND, SC_SIZE);
}

void CMainFrame::OnPopuptopMinimize() 
{
	PostMessage(WM_SYSCOMMAND, SC_MINIMIZE);
}

void CMainFrame::OnPopuptopMaximize() 
{
	PostMessage(WM_SYSCOMMAND, SC_MAXIMIZE);
	ModifyStyle(WS_THICKFRAME, 0, 0);
	ModifyStyleEx (WS_EX_CLIENTEDGE, 0, 0);
}

void CMainFrame::OnUpdatePopuptopMove(CCmdUI* pCmdUI) 
{
	pCmdUI->Enable(!IsIconic()&&!IsZoomed());
	
}

void CMainFrame::OnUpdatePopuptopMaximize(CCmdUI* pCmdUI) 
{
	pCmdUI->Enable(!IsZoomed());
}

void CMainFrame::OnUpdatePopuptopMinimize(CCmdUI* pCmdUI) 
{
	pCmdUI->Enable(!IsIconic());	
}

void CMainFrame::OnUpdatePopuptopRestore(CCmdUI* pCmdUI) 
{
	pCmdUI->Enable(IsIconic()||IsZoomed());	
}

void CMainFrame::OnUpdatePopuptopSize(CCmdUI* pCmdUI) 
{
	pCmdUI->Enable(!IsIconic()&&!IsZoomed());
	
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -