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

📄 cmosaccessdlg.cpp

📁 Windows下Hardware直接读写
💻 CPP
字号:
// CmosAccessDlg.cpp : 实现文件
//

#include "stdafx.h"
#include "HW_sigal.h"
#include "CmosAccessDlg.h"
#include ".\cmosaccessdlg.h"
#include ".\WinIo.h"
#include ".\HwReadWrite.h"

// CCmosAccessDlg 对话框

IMPLEMENT_DYNAMIC(CCmosAccessDlg, CDialog)
CCmosAccessDlg::CCmosAccessDlg(CWnd* pParent /*=NULL*/)
	: CDialog(CCmosAccessDlg::IDD, pParent)
{
}

CCmosAccessDlg::~CCmosAccessDlg()
{
}

void CCmosAccessDlg::DoDataExchange(CDataExchange* pDX)
{
	CDialog::DoDataExchange(pDX);
	DDX_Control(pDX, IDC_LIST_CMOS_REG, c_listCmosReg);
}


BEGIN_MESSAGE_MAP(CCmosAccessDlg, CDialog)
	ON_WM_SHOWWINDOW()
END_MESSAGE_MAP()


// CCmosAccessDlg 消息处理程序

void CCmosAccessDlg::OnShowWindow(BOOL bShow, UINT nStatus)
{
	CDialog::OnShowWindow(bShow, nStatus);

	// TODO: 在此处添加消息处理程序代码
	//InitializeWinIo();
	
	// Set full row selection
	ListView_SetExtendedListViewStyleEx(c_listCmosReg.GetSafeHwnd(), LVS_EX_FULLROWSELECT , LVS_EX_FULLROWSELECT);

	//Initialize the list box
	CHeaderCtrl *pHeader = c_listCmosReg.GetHeaderCtrl();
	CRect rect;
	c_listCmosReg.GetClientRect(&rect);
	int nInterval = rect.Width()/5;
	c_listCmosReg.InsertColumn(0, _T("Offset"), LVCFMT_LEFT, nInterval);
	c_listCmosReg.InsertColumn(1, _T("Value(Hex)"), LVCFMT_LEFT, nInterval);
	c_listCmosReg.InsertColumn(2, _T("Value(Binary)"), LVCFMT_LEFT, rect.Width()-3*nInterval); 
	
	LV_ITEM lvi;
	TCHAR szItem[256];
	lvi.mask = LVIF_TEXT;
	for(int i=0; i < 128; i++)
	{
		gpHwRw->SetPortVal(0x70, i, 1);
		DWORD dRead=0;
		gpHwRw->GetPortVal(0x71, &dRead, 1);

		// First item
		lvi.iItem = i;
		lvi.iSubItem = 0;
		_stprintf(szItem, _T("%02x"), i);
		lvi.pszText = szItem;
		c_listCmosReg.InsertItem(&lvi);

		// SubItem 1
		lvi.iSubItem = 1;
		for(int i=0; i<2; i++)
		{
			_stprintf(szItem+i, _T("%01x"), (dRead>>((1-i)*4))&0x0F );
		}
		lvi.pszText = szItem;
		c_listCmosReg.SetItem(&lvi);

		// SubItem 2
		lvi.iSubItem = 2;
		for(int j=0; j < 8; j++)
		{
			_stprintf(szItem+j, _T("%01x"), (dRead >> (7-j))&0x01);
		}
		lvi.pszText = szItem;
		c_listCmosReg.SetItem(&lvi);
	}

}

⌨️ 快捷键说明

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