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

📄 filedigestdlg.cpp

📁 实现多种加解密算法
💻 CPP
📖 第 1 页 / 共 3 页
字号:
		int cyIcon = GetSystemMetrics(SM_CYICON);
		CRect rect;
		GetClientRect(&rect);
		int x = (rect.Width() - cxIcon + 1) / 2;
		int y = (rect.Height() - cyIcon + 1) / 2;
		// Draw the icon
		dc.DrawIcon(x, y, m_hIcon);
	}
	else
	{
		CDialog::OnPaint();
	}
}

// The system calls this to obtain the cursor to display while the user drags
//  the minimized window.
HCURSOR CFileDigestDlg::OnQueryDragIcon()
{
	return (HCURSOR) m_hIcon;
}

void CFileDigestDlg::OnCancel() 
{
	//CDialog::OnCancel(); // Avoid ESCAPE key action
	return;
}

void CFileDigestDlg::OnOK() 
{
	//CDialog::OnOK(); // Avoid RETURN key action
	return;	
}

void CFileDigestDlg::OnClose() 
{
	CDialog::EndDialog(IDOK);
}

void CFileDigestDlg::ShowStringGroup(BOOL bShow)
{
	CWnd* poWnd;
	poWnd = GetDlgItem(IDC_LBLSTR);
	poWnd->ShowWindow(bShow ? SW_SHOW : SW_HIDE);
	poWnd = GetDlgItem(IDC_EDITALPHA);
	poWnd->ShowWindow(bShow ? SW_SHOW : SW_HIDE);
	poWnd = GetDlgItem(IDC_EDITHEX);
	poWnd->ShowWindow(bShow ? SW_SHOW : SW_HIDE);
	poWnd = GetDlgItem(IDC_RADALPHA);
	poWnd->ShowWindow(bShow ? SW_SHOW : SW_HIDE);
	poWnd = GetDlgItem(IDC_RADHEX);
	poWnd->ShowWindow(bShow ? SW_SHOW : SW_HIDE);
	poWnd = GetDlgItem(IDC_STATICBMPARROW2);
	poWnd->ShowWindow(bShow ? SW_SHOW : SW_HIDE);
	poWnd = GetDlgItem(IDC_BTNSTRINGDIGEST);
	poWnd->ShowWindow(bShow ? SW_SHOW : SW_HIDE);
	poWnd = GetDlgItem(IDC_LBLSTR2);
	poWnd->ShowWindow(bShow ? SW_SHOW : SW_HIDE);
	poWnd = GetDlgItem(IDC_EDITSTR2);
	poWnd->ShowWindow(bShow ? SW_SHOW : SW_HIDE);
	poWnd = GetDlgItem(IDC_LBLHEX2);
	poWnd->ShowWindow(bShow ? SW_SHOW : SW_HIDE);
	poWnd = GetDlgItem(IDC_EDITHEX2);
	poWnd->ShowWindow(bShow ? SW_SHOW : SW_HIDE);
}

void CFileDigestDlg::ShowFileGroup(BOOL bShow)
{
	CWnd* poWnd;
	poWnd = GetDlgItem(IDC_LBLFILE);
	poWnd->ShowWindow(bShow ? SW_SHOW : SW_HIDE);
	poWnd = GetDlgItem(IDC_EDITFILE);
	poWnd->ShowWindow(bShow ? SW_SHOW : SW_HIDE);
	poWnd = GetDlgItem(IDC_BTNFILE);
	poWnd->ShowWindow(bShow ? SW_SHOW : SW_HIDE);
	poWnd = GetDlgItem(IDC_BTNCHECK);
	poWnd->ShowWindow(bShow ? SW_SHOW : SW_HIDE);
	poWnd = GetDlgItem(IDC_STATICBMPARROW1);
	poWnd->ShowWindow(bShow ? SW_SHOW : SW_HIDE);
	poWnd = GetDlgItem(IDC_BTNFILEDIGEST);
	poWnd->ShowWindow(bShow ? SW_SHOW : SW_HIDE);
	poWnd = GetDlgItem(IDC_LBLSTR1);
	poWnd->ShowWindow(bShow ? SW_SHOW : SW_HIDE);
	poWnd = GetDlgItem(IDC_EDITSTR1);
	poWnd->ShowWindow(bShow ? SW_SHOW : SW_HIDE);
	poWnd = GetDlgItem(IDC_BTNLOAD);
	poWnd->ShowWindow(bShow ? SW_SHOW : SW_HIDE);
	poWnd = GetDlgItem(IDC_BTNSAVEAS);
	poWnd->ShowWindow(bShow ? SW_SHOW : SW_HIDE);
	poWnd = GetDlgItem(IDC_LBLHEX1);
	poWnd->ShowWindow(bShow ? SW_SHOW : SW_HIDE);
	poWnd = GetDlgItem(IDC_EDITHEX1);
	poWnd->ShowWindow(bShow ? SW_SHOW : SW_HIDE);
}

void CFileDigestDlg::MoveStringGroup()
{
	//Get y ref position
	CRect oRect;
	CWnd* poWnd;
	poWnd = GetDlgItem(IDC_BORDER);
	poWnd->GetWindowRect(&oRect);
	int iYRef = oRect.bottom;
	poWnd = GetDlgItem(IDC_LBLSTR);
	poWnd->GetWindowRect(&oRect);
	int iDelta = oRect.top - iYRef;
	//Move up with Delta
	ScreenToClient(oRect);
	poWnd->SetWindowPos(NULL, oRect.left, oRect.top-iDelta, 0, 0, SWP_NOSIZE|SWP_NOZORDER);
	//
	poWnd = GetDlgItem(IDC_EDITALPHA);
	poWnd->GetWindowRect(&oRect);
	ScreenToClient(oRect);
	poWnd->SetWindowPos(NULL, oRect.left, oRect.top-iDelta, 0, 0, SWP_NOSIZE|SWP_NOZORDER);
	//
	poWnd = GetDlgItem(IDC_EDITHEX);
	poWnd->GetWindowRect(&oRect);
	ScreenToClient(oRect);
	poWnd->SetWindowPos(NULL, oRect.left, oRect.top-iDelta, 0, 0, SWP_NOSIZE|SWP_NOZORDER);
	//
	poWnd = GetDlgItem(IDC_RADALPHA);
	poWnd->GetWindowRect(&oRect);
	ScreenToClient(oRect);
	poWnd->SetWindowPos(NULL, oRect.left, oRect.top-iDelta, 0, 0, SWP_NOSIZE|SWP_NOZORDER);
	//
	poWnd = GetDlgItem(IDC_RADHEX);
	poWnd->GetWindowRect(&oRect);
	ScreenToClient(oRect);
	poWnd->SetWindowPos(NULL, oRect.left, oRect.top-iDelta, 0, 0, SWP_NOSIZE|SWP_NOZORDER);
	//
	poWnd = GetDlgItem(IDC_STATICBMPARROW2);
	poWnd->GetWindowRect(&oRect);
	ScreenToClient(oRect);
	poWnd->SetWindowPos(NULL, oRect.left, oRect.top-iDelta, 0, 0, SWP_NOSIZE|SWP_NOZORDER);
	//
	poWnd = GetDlgItem(IDC_BTNSTRINGDIGEST);
	poWnd->GetWindowRect(&oRect);
	ScreenToClient(oRect);
	poWnd->SetWindowPos(NULL, oRect.left, oRect.top-iDelta, 0, 0, SWP_NOSIZE|SWP_NOZORDER);
	//
	poWnd = GetDlgItem(IDC_LBLSTR2);
	poWnd->GetWindowRect(&oRect);
	ScreenToClient(oRect);
	poWnd->SetWindowPos(NULL, oRect.left, oRect.top-iDelta, 0, 0, SWP_NOSIZE|SWP_NOZORDER);
	//
	poWnd = GetDlgItem(IDC_EDITSTR2);
	poWnd->GetWindowRect(&oRect);
	ScreenToClient(oRect);
	poWnd->SetWindowPos(NULL, oRect.left, oRect.top-iDelta, 0, 0, SWP_NOSIZE|SWP_NOZORDER);
	//
	poWnd = GetDlgItem(IDC_LBLHEX2);
	poWnd->GetWindowRect(&oRect);
	ScreenToClient(oRect);
	poWnd->SetWindowPos(NULL, oRect.left, oRect.top-iDelta, 0, 0, SWP_NOSIZE|SWP_NOZORDER);
	//
	poWnd = GetDlgItem(IDC_EDITHEX2);
	poWnd->GetWindowRect(&oRect);
	ScreenToClient(oRect);
	poWnd->SetWindowPos(NULL, oRect.left, oRect.top-iDelta, 0, 0, SWP_NOSIZE|SWP_NOZORDER);
}

void CFileDigestDlg::MoveFileGroup()
{
	//Get y ref position
	CRect oRect;
	CWnd* poWnd;
	poWnd = GetDlgItem(IDC_BORDER);
	poWnd->GetWindowRect(&oRect);
	int iYRef = oRect.bottom;
	poWnd = GetDlgItem(IDC_LBLFILE);
	poWnd->GetWindowRect(&oRect);
	int iDelta = oRect.top - iYRef;
	//Move up with Delta
	ScreenToClient(oRect);
	poWnd->SetWindowPos(NULL, oRect.left, oRect.top-iDelta, 0, 0, SWP_NOSIZE|SWP_NOZORDER);
	//
	poWnd = GetDlgItem(IDC_EDITFILE);
	poWnd->GetWindowRect(&oRect);
	ScreenToClient(oRect);
	poWnd->SetWindowPos(NULL, oRect.left, oRect.top-iDelta, 0, 0, SWP_NOSIZE|SWP_NOZORDER);
	//
	poWnd = GetDlgItem(IDC_BTNFILE);
	poWnd->GetWindowRect(&oRect);
	ScreenToClient(oRect);
	poWnd->SetWindowPos(NULL, oRect.left, oRect.top-iDelta, 0, 0, SWP_NOSIZE|SWP_NOZORDER);
	//
	poWnd = GetDlgItem(IDC_BTNCHECK);
	poWnd->GetWindowRect(&oRect);
	ScreenToClient(oRect);
	poWnd->SetWindowPos(NULL, oRect.left, oRect.top-iDelta, 0, 0, SWP_NOSIZE|SWP_NOZORDER);
	//
	poWnd = GetDlgItem(IDC_STATICBMPARROW1);
	poWnd->GetWindowRect(&oRect);
	ScreenToClient(oRect);
	poWnd->SetWindowPos(NULL, oRect.left, oRect.top-iDelta, 0, 0, SWP_NOSIZE|SWP_NOZORDER);
	//
	poWnd = GetDlgItem(IDC_BTNFILEDIGEST);
	poWnd->GetWindowRect(&oRect);
	ScreenToClient(oRect);
	poWnd->SetWindowPos(NULL, oRect.left, oRect.top-iDelta, 0, 0, SWP_NOSIZE|SWP_NOZORDER);
	//
	poWnd = GetDlgItem(IDC_LBLSTR1);
	poWnd->GetWindowRect(&oRect);
	ScreenToClient(oRect);
	poWnd->SetWindowPos(NULL, oRect.left, oRect.top-iDelta, 0, 0, SWP_NOSIZE|SWP_NOZORDER);
	//
	poWnd = GetDlgItem(IDC_EDITSTR1);
	poWnd->GetWindowRect(&oRect);
	ScreenToClient(oRect);
	poWnd->SetWindowPos(NULL, oRect.left, oRect.top-iDelta, 0, 0, SWP_NOSIZE|SWP_NOZORDER);
	//
	poWnd = GetDlgItem(IDC_BTNLOAD);
	poWnd->GetWindowRect(&oRect);
	ScreenToClient(oRect);
	poWnd->SetWindowPos(NULL, oRect.left, oRect.top-iDelta, 0, 0, SWP_NOSIZE|SWP_NOZORDER);
	//
	poWnd = GetDlgItem(IDC_BTNSAVEAS);
	poWnd->GetWindowRect(&oRect);
	ScreenToClient(oRect);
	poWnd->SetWindowPos(NULL, oRect.left, oRect.top-iDelta, 0, 0, SWP_NOSIZE|SWP_NOZORDER);
	//
	poWnd = GetDlgItem(IDC_LBLHEX1);
	poWnd->GetWindowRect(&oRect);
	ScreenToClient(oRect);
	poWnd->SetWindowPos(NULL, oRect.left, oRect.top-iDelta, 0, 0, SWP_NOSIZE|SWP_NOZORDER);
	//
	poWnd = GetDlgItem(IDC_EDITHEX1);
	poWnd->GetWindowRect(&oRect);
	ScreenToClient(oRect);
	poWnd->SetWindowPos(NULL, oRect.left, oRect.top-iDelta, 0, 0, SWP_NOSIZE|SWP_NOZORDER);
}

void CFileDigestDlg::OnRadstr() 
{
	ShowFileGroup(FALSE);
	MoveStringGroup();
	ShowStringGroup(TRUE);
	CRect oRect, oRectDlg;
	CWnd* poWnd = GetDlgItem(IDC_EDITHEX2);
	poWnd->GetWindowRect(&oRect);
	GetWindowRect(&oRectDlg);
	SetWindowPos(NULL, 0, 0, oRectDlg.Width(), oRect.bottom-oRectDlg.top+15, SWP_NOMOVE|SWP_NOZORDER);
	m_iMode = STRING;
}

void CFileDigestDlg::OnRadfile() 
{
	ShowStringGroup(FALSE);
	MoveFileGroup();
	ShowFileGroup(TRUE);
	CRect oRect, oRectDlg;
	CWnd* poWnd = GetDlgItem(IDC_EDITHEX1);
	poWnd->GetWindowRect(&oRect);
	GetWindowRect(&oRectDlg);
	SetWindowPos(NULL, 0, 0, oRectDlg.Width(), oRect.bottom-oRectDlg.top+15, SWP_NOMOVE|SWP_NOZORDER);
	m_iMode = FILE;
}

void CFileDigestDlg::OnExit() 
{
	CDialog::EndDialog(IDOK);
}

void CFileDigestDlg::OnHelp() 
{
	//if(NULL == HtmlHelp(this->m_hWnd, "ProsperPro.chm::/Traderware-getting started.htm>ProsperPro", HH_DISPLAY_TOPIC, NULL))
	//{
	//	MessageBox(CString("Cannot Find Help File!", g_oStrError, MB_OK|MB_ICONINFORMATION);
	//}
}

void CFileDigestDlg::OnBtnfile() 
{
	//TRUE - File Open
    CFileDialog oFileOpen(TRUE);
    oFileOpen.m_ofn.lpstrTitle = _T("Open File");
    oFileOpen.m_ofn.lpstrFilter = _T("File (*.*)\0*.*\0\0");
	if(IDOK == oFileOpen.DoModal())
	{
		CString oStrFileName = oFileOpen.GetPathName();
		CEdit* poEdit = static_cast<CEdit*>(GetDlgItem(IDC_EDITFILE));
		poEdit->SetWindowText(oStrFileName);
	}
}

void CFileDigestDlg::OnBtnfiledigest() 
{
	CEdit* poEdit = static_cast<CEdit*>(GetDlgItem(IDC_EDITFILE));
	CString oStrFile;
	poEdit->GetWindowText(oStrFile);
	try
	{
		//Start the Hourglass cursor
		CWaitCursor oWaitCursor;
		IMessageDigest* poMessageDigest;
		switch(m_iMethod)
		{
			case MD128:
				poMessageDigest = &m_oMD128;
				break;

			case RIPEMD128:
				poMessageDigest = &m_oRIPEMD128;
				break;
			
			case RIPEMD160:
				poMessageDigest = &m_oRIPEMD160;
				break;

			case SHA160:
				poMessageDigest = &m_oSHA160;
				break;
				
			case SHA256:
				poMessageDigest = &m_oSHA256;
				break;

			case SHA384:
				poMessageDigest = &m_oSHA384;
				break;
				
			case SHA512:
				poMessageDigest = &m_oSHA512;
				break;

			default:
				ASSERT(0);
		}
		char acDigest[65] = {0};
		poMessageDigest->DigestFile(LPCTSTR(oStrFile), acDigest);
		char szHexDigest[129] = {0};
		int iLength;
		switch(m_iMethod)
		{
			case MD128:
			case RIPEMD128:
				Binary2Hex(reinterpret_cast<unsigned char*>(acDigest), 16, szHexDigest);
				iLength = 16;
				break;
			
			case RIPEMD160:
			case SHA160:
				Binary2Hex(reinterpret_cast<unsigned char*>(acDigest), 20, szHexDigest);
				iLength = 20;
				break;
				
			case SHA256:
				Binary2Hex(reinterpret_cast<unsigned char*>(acDigest), 32, szHexDigest);
				iLength = 32;
				break;

			case SHA384:

⌨️ 快捷键说明

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