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

📄 splitwnd.cpp

📁 用Visual C++编写的查看磁盘信息的工具
💻 CPP
字号:
// SplitWnd.cpp : implementation file
//

#include "..\stdafx.h"
#include "..\diskinfo.h"
#include "splitwnd.h"

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

/////////////////////////////////////////////////////////////////////////////
// CSplitWnd

CSplitWnd::CSplitWnd()
{
	m_bVerticle = TRUE;
	m_bDrawBorder = FALSE;
}

CSplitWnd::~CSplitWnd()
{
}


BEGIN_MESSAGE_MAP(CSplitWnd, CWnd)
	//{{AFX_MSG_MAP(CSplitWnd)
		// NOTE - the ClassWizard will add and remove mapping macros here.
	//}}AFX_MSG_MAP
	ON_MESSAGE(WM_ENTERSIZEMOVE,OnEnterSM)
	ON_MESSAGE(WM_EXITSIZEMOVE,OnExitSM)
	ON_WM_PAINT()
	ON_WM_NCHITTEST()
	ON_WM_CREATE()
	ON_WM_MOVING()
	ON_WM_SETCURSOR()
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CSplitWnd message handlers
void CSplitWnd::OnPaint() 
{
	CPaintDC dc(this); // device context for painting

	CRect rect;
	GetClientRect(&rect);
	
	dc.FillSolidRect(rect, GetSysColor(COLOR_3DFACE));

	if (m_bDrawBorder)
	{
		dc.DrawEdge(rect, BDR_RAISEDINNER, BF_RECT);
	}
	
}

UINT CSplitWnd::OnNcHitTest(CPoint point) 
{
	
	return HTCAPTION;
}



int CSplitWnd::OnCreate(LPCREATESTRUCT lpCreateStruct) 
{
	if (CWnd::OnCreate(lpCreateStruct) == -1)
		return -1;
	
	GetWindowRect(&m_rect);
	SetWindowPos(&CWnd::wndTop,0,0,0,0,SWP_NOMOVE|SWP_NOSIZE|SWP_DRAWFRAME);
	
	return 0;
}

void CSplitWnd::OnMoving(UINT fwSide, LPRECT pRect) 
{
	if (m_bVerticle)
	{
		pRect->top = m_rect.top;
		pRect->bottom = m_rect.bottom;
	}else
	{
		pRect->left = m_rect.left;
		pRect->right = m_rect.right;
	}

	CWnd::OnMoving(fwSide, pRect);
	// TODO: Add your message handler code here
	
}

BOOL CSplitWnd::OnSetCursor(CWnd* pWnd, UINT nHitTest, UINT message) 
{
	//return CWnd::OnSetCursor(pWnd, /*nHitTest*/HTSIZE, message);
	
	if (m_bVerticle)
		SetCursor(AfxGetApp()->LoadStandardCursor(IDC_SIZEWE));
	else
		SetCursor(AfxGetApp()->LoadStandardCursor(IDC_SIZENS));

	return 0;
}



LRESULT CSplitWnd::OnEnterSM(WPARAM wp,LPARAM lp)
{
	m_d=1;
	GetWindowRect(&m_rect);
	return Default();
}

LRESULT CSplitWnd::OnExitSM(WPARAM wp,LPARAM lp)
{
	GetParent()->SendMessage(WM_COMMAND,GetDlgCtrlID(),0);
	m_d=0;
	return Default();
}

void CSplitWnd::EnableBorder(BOOL b)
{
	m_bDrawBorder = b;
}

⌨️ 快捷键说明

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