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

📄 systeminfoview.cpp

📁 类似Linux操作系统0.11版文件系统的文件系统设计和Windows下的操作程序
💻 CPP
字号:
// SystemInfoView.cpp : 实现文件
//

#include "stdafx.h"
#include "ULExplorer.h"
#include "SystemInfoView.h"

/*
IMPLEMENT_DYNCREATE(CPropertyGridItemEx, CXTPPropertyGridItem)

BEGIN_MESSAGE_MAP(CPropertyGridItemEx, CXTPPropertyGridItem)
END_MESSAGE_MAP()
*/

// CSystemInfoView

IMPLEMENT_DYNCREATE(CSystemInfoView, CView)

CSystemInfoView::CSystemInfoView()
{
}

CSystemInfoView::~CSystemInfoView()
{
}

BEGIN_MESSAGE_MAP(CSystemInfoView, CView)
	ON_WM_CREATE()
	ON_WM_SIZE()
END_MESSAGE_MAP()


// CSystemInfoView 绘图

void CSystemInfoView::OnDraw(CDC* pDC)
{
}


// CSystemInfoView 诊断

#ifdef _DEBUG
void CSystemInfoView::AssertValid() const
{
	CView::AssertValid();
}

void CSystemInfoView::Dump(CDumpContext& dc) const
{
	CView::Dump(dc);
}
#endif //_DEBUG


// CSystemInfoView 消息处理程序

int CSystemInfoView::OnCreate(LPCREATESTRUCT lpCreateStruct)
{
	if (CView::OnCreate(lpCreateStruct) == -1)
		return -1;


	CRect rcGrid;
	GetClientRect(&rcGrid);

	if ( m_PropertyGrid.Create( CXTPEmptyRect(), this, IDC_PROPERTY_GRID ) )
	{
		//////////////////////////////////////////////////////////////////////////
		CXTPPropertyGridItem* pCategory = m_PropertyGrid.AddCategory(_T("超级块结构 super"));

		pCategory->AddChildItem(new CPropertyGridItemEx(_T("s_ninodes"), _T("虚拟磁盘i节点总数")));
		pCategory->AddChildItem(new CPropertyGridItemEx(_T("s_nzones"), _T("虚拟磁盘逻辑块总数")));
		pCategory->AddChildItem(new CPropertyGridItemEx(_T("s_imap_blocks"), _T("i节点位图所占用的数据块数")));
		pCategory->AddChildItem(new CPropertyGridItemEx(_T("s_zmap_blocks"), _T("逻辑块位图所占用的数据块数")));
		pCategory->AddChildItem(new CPropertyGridItemEx(_T("s_firstdatazone"), _T("第一个数据逻辑块号")));
		pCategory->AddChildItem(new CPropertyGridItemEx(_T("s_log_zone_size"), _T("Log(数据块数/逻辑块)")));
		pCategory->AddChildItem(new CPropertyGridItemEx(_T("s_max_size"), _T("文件最大长度")));		
		pCategory->AddChildItem(new CPropertyGridItemEx(_T("s_magic"), _T("文件系统标识数")));
		pCategory->AddChildItem(new CPropertyGridItemEx(_T("s_log_zone_size"), _T("Log(数据块数/逻辑块)")));
		pCategory->AddChildItem(new CPropertyGridItemEx(_T("s_imap[]"), _T("i节点位图缓冲块指针数组")));
		pCategory->AddChildItem(new CPropertyGridItemEx(_T("s_zmap[]"), _T("逻辑块位图缓冲块指针数组")));
		pCategory->AddChildItem(new CPropertyGridItemEx(_T("s_dev"), _T("超级块所在的设备号")));
		pCategory->AddChildItem(new CPropertyGridItemEx(_T("s_isup"), _T("被安装的文件系统根目录的i节点")));
		pCategory->AddChildItem(new CPropertyGridItemEx(_T("s_imount"), _T("被安装到的i节点")));
		pCategory->AddChildItem(new CPropertyGridItemEx(_T("s_time"), _T("修改时间")));
		pCategory->AddChildItem(new CPropertyGridItemEx(_T("s_lock"), _T("锁定标志")));
		pCategory->AddChildItem(new CPropertyGridItemEx(_T("s_rd_only"), _T("只读标志")));
		pCategory->AddChildItem(new CPropertyGridItemEx(_T("s_dirt"), _T("已修改标志")));
		pCategory->Expand();
		//////////////////////////////////////////////////////////////////////////
		pCategory = m_PropertyGrid.AddCategory(_T("i节点结构 inode"));		
		pCategory->AddChildItem(new CPropertyGridItemEx(_T("i_mode"), _T("文件类型和属性(rwx 位)")));
		pCategory->AddChildItem(new CPropertyGridItemEx(_T("i_uid"), _T("用户id(文件拥有者标识符)")));
		pCategory->AddChildItem(new CPropertyGridItemEx(_T("i_size"), _T("文件大小(字节数)")));
		pCategory->AddChildItem(new CPropertyGridItemEx(_T("i_mtime"), _T("修改时间(自1970.1.1:0 算起,秒)")));
		pCategory->AddChildItem(new CPropertyGridItemEx(_T("i_gid"), _T("组id(文件拥有者所在的组)")));
		pCategory->AddChildItem(new CPropertyGridItemEx(_T("i_nlinks"), _T("文件目录项链接数")));
		pCategory->AddChildItem(new CPropertyGridItemEx(_T("i_zone[9]"), _T("直接(0-6),间接(7)或双重间接(8)逻辑块号")));
		pCategory->AddChildItem(new CPropertyGridItemEx(_T("i_atime"), _T("最后访问时间")));
		pCategory->AddChildItem(new CPropertyGridItemEx(_T("i_ctime"), _T("i节点自身修改时间")));
		pCategory->AddChildItem(new CPropertyGridItemEx(_T("i_dev"), _T("i节点所在的设备号")));
		pCategory->AddChildItem(new CPropertyGridItemEx(_T("i_num"), _T("i节点号")));
		pCategory->AddChildItem(new CPropertyGridItemEx(_T("i_count"), _T("i节点被使用的次数,0 表示该i节点空闲")));
		pCategory->AddChildItem(new CPropertyGridItemEx(_T("i_lock"), _T("锁定标志")));
		pCategory->AddChildItem(new CPropertyGridItemEx(_T("i_dirt"), _T("已修改(脏)标志")));
		pCategory->AddChildItem(new CPropertyGridItemEx(_T("i_pipe"), _T("管道标志")));
		pCategory->AddChildItem(new CPropertyGridItemEx(_T("i_mount"), _T("安装标志")));
		pCategory->AddChildItem(new CPropertyGridItemEx(_T("i_seek"), _T("搜寻标志(lseek 时)")));
		pCategory->AddChildItem(new CPropertyGridItemEx(_T("i_update"), _T("更新标志")));
		pCategory->Expand();
	}													
														
	return 0;											
}

void CSystemInfoView::OnSize(UINT nType, int cx, int cy)
{
	CView::OnSize(nType, cx, cy);

	if(m_PropertyGrid.GetSafeHwnd()) 
	{
		m_PropertyGrid.MoveWindow(0, 0, cx, cy);
		m_PropertyGrid.Invalidate(FALSE);
	}
}


void CSystemInfoView::ShowSystemInfo()
{
	// d_super_block

}

⌨️ 快捷键说明

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