📄 filedigestdlg.cpp
字号:
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 + -