?? crytestdlg.cpp
字號:
// CrytestDlg.cpp : 幚憰僼傽僀儖
//
#include "stdafx.h"
#include "Crytest.h"
#include "CrytestDlg.h"
#include ".\crytestdlg.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#endif
// CCrytestDlg 僟僀傾儘僌
CCrytestDlg::CCrytestDlg(CWnd* pParent /*=NULL*/)
: CDialog(CCrytestDlg::IDD, pParent)
{
m_hIcon = AfxGetApp()->LoadIcon(IDR_MAINFRAME);
}
void CCrytestDlg::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
DDX_Control(pDX, IDC_PROGRESS1, m_cPlog);
}
BEGIN_MESSAGE_MAP(CCrytestDlg, CDialog)
ON_WM_PAINT()
ON_WM_QUERYDRAGICON()
//}}AFX_MSG_MAP
ON_BN_CLICKED(IDC_BUTTON1, OnBnClickedButton1)
ON_BN_CLICKED(IDC_BUTTON2, OnBnClickedButton2)
ON_BN_CLICKED(IDC_BUTTON3, OnBnClickedButton3)
END_MESSAGE_MAP()
// CCrytestDlg 儊僢僙乕僕 僴儞僪儔
BOOL CCrytestDlg::OnInitDialog()
{
CDialog::OnInitDialog();
// 偙偺僟僀傾儘僌偺傾僀僐儞傪愝掕偟傑偡丅傾僾儕働乕僔儑儞偺儊僀儞 僂傿儞僪僂偑僟僀傾儘僌偱側(cè)偄応崌丄
// Framework 偼丄偙偺愝掕傪帺摦揑偵峴偄傑偡丅
SetIcon(m_hIcon, TRUE); // 戝偒偄傾僀僐儞偺愝掕
SetIcon(m_hIcon, FALSE); // 彫偝偄傾僀僐儞偺愝掕
m_bAbort = FALSE;
m_cPlog.SetRange(0, 100);
m_cPlog.SetPos(0);
::GetCurrentDirectory(MAX_PATH, m_strDir.GetBuffer(MAX_PATH));
m_strInput1 = m_strDir + "Test1.jpg";
m_strOutput1 = m_strDir + "Test1.jpg.enc";
m_strInput2 = m_strDir + "Test1.jpg.enc";
m_strOutput2 = m_strDir + "Test2.jpg";
GetDlgItem(IDC_BUTTON1)->EnableWindow(TRUE);
GetDlgItem(IDC_BUTTON2)->EnableWindow(TRUE);
GetDlgItem(IDC_BUTTON3)->EnableWindow(FALSE);
return TRUE; // 僼僅乕僇僗傪僐儞僩儘乕儖偵愝掕偟偨応崌傪彍偒丄TRUE 傪曉偟傑偡丅
}
// 僟僀傾儘僌偵嵟彫壔儃僞儞傪捛壛偡傞応崌丄傾僀僐儞傪昤夋?zhèn)穫閭絺邆?// 壓偺僐乕僪偑昁梫偱偡丅僪僉儏儊儞僩/價儏乕 儌僨儖傪巊偆 MFC 傾僾儕働乕僔儑儞偺応崌丄
// 偙傟偼丄Framework 偵傛?zhèn)羵膸畵I偵愝掕偝傟傑偡丅
void CCrytestDlg::OnPaint()
{
if (IsIconic())
{
CPaintDC dc(this); // 昤夋?zhèn)虄f僶僀僗 僐儞僥僉僗僩
SendMessage(WM_ICONERASEBKGND, reinterpret_cast<WPARAM>(dc.GetSafeHdc()), 0);
// 僋儔僀傾儞僩偺巐妏宍椞堟撪偺拞墰
int cxIcon = GetSystemMetrics(SM_CXICON);
int cyIcon = GetSystemMetrics(SM_CYICON);
CRect rect;
GetClientRect(&rect);
int x = (rect.Width() - cxIcon + 1) / 2;
int y = (rect.Height() - cyIcon + 1) / 2;
// 傾僀僐儞偺昤夋
dc.DrawIcon(x, y, m_hIcon);
}
else
{
CDialog::OnPaint();
}
}
//儐乕僓乕偑嵟彫壔偟偨僂傿儞僪僂傪僪儔僢僌偟偰偄傞偲偒偵昞帵偡傞僇乕僜儖傪庢摼偡傞偨傔偵丄
// 僔僗僥儉偑偙偺娭悢傪屇傃弌偟傑偡丅
HCURSOR CCrytestDlg::OnQueryDragIcon()
{
return static_cast<HCURSOR>(m_hIcon);
}
void CCrytestDlg::OnBnClickedButton1()
{
int lngret;
m_bAbort = FALSE;
GetDlgItem(IDC_BUTTON1)->EnableWindow(FALSE);
GetDlgItem(IDC_BUTTON2)->EnableWindow(FALSE);
GetDlgItem(IDC_BUTTON3)->EnableWindow(TRUE);
//DLL偺僴儞僪儖傪庢摼偡傞丅
HMODULE HDll = LoadLibrary("Crypack.dll");
if(HDll)
{
//娭悢偺億僀儞僞傪愰尵偟傑偡丅
int (*Encrypt)(char*, char*, char*, bool CALLBACK(int, LPARAM), LPARAM);
//娭悢偺億僀儞僞偵MakePublicKeyC娭悢偺億僀儞僞傪戙擖偟傑偡丅
Encrypt = (int (*)(char*, char*, char*, bool CALLBACK(int, LPARAM), LPARAM))
GetProcAddress(HDll, "FileEncrypt");
//幚嵺偵娭悢偺億僀儞僞偐傜娭悢傪棙梡偟傑偡丅
lngret = (*Encrypt)(m_strInput1.GetBuffer(MAX_PATH), m_strOutput1.GetBuffer(MAX_PATH), "sanrai", MyCallback, LPARAM(this));
//夝曻
(void)FreeLibrary(HDll);
}
GetDlgItem(IDC_BUTTON1)->EnableWindow(TRUE);
GetDlgItem(IDC_BUTTON2)->EnableWindow(TRUE);
GetDlgItem(IDC_BUTTON3)->EnableWindow(FALSE);
}
void CCrytestDlg::OnBnClickedButton2()
{
int lngret;
m_bAbort = FALSE;
GetDlgItem(IDC_BUTTON1)->EnableWindow(FALSE);
GetDlgItem(IDC_BUTTON2)->EnableWindow(FALSE);
GetDlgItem(IDC_BUTTON3)->EnableWindow(TRUE);
//DLL偺僴儞僪儖傪庢摼偡傞丅
HMODULE HDll = LoadLibrary("Crypack.dll");
if(HDll)
{
//娭悢偺億僀儞僞傪愰尵偟傑偡丅
int (*Decrypt)(char*, char*, char*, bool CALLBACK(int, LPARAM), LPARAM);
//娭悢偺億僀儞僞偵MakePublicKeyC娭悢偺億僀儞僞傪戙擖偟傑偡丅
Decrypt = (int (*)(char*, char*, char*, bool CALLBACK(int, LPARAM), LPARAM))
GetProcAddress(HDll, "FileDecrypt");
//幚嵺偵娭悢偺億僀儞僞偐傜娭悢傪棙梡偟傑偡丅
lngret = (*Decrypt)(m_strInput2.GetBuffer(MAX_PATH), m_strOutput2.GetBuffer(MAX_PATH), "sanrai", MyCallback, LPARAM(this));
//夝曻
(void)FreeLibrary(HDll);
}
GetDlgItem(IDC_BUTTON1)->EnableWindow(TRUE);
GetDlgItem(IDC_BUTTON2)->EnableWindow(TRUE);
GetDlgItem(IDC_BUTTON3)->EnableWindow(FALSE);
}
bool CALLBACK MyCallback(int percent, LPARAM userdata)
{
CCrytestDlg* pDlg = (CCrytestDlg*)userdata;
pDlg->m_cPlog.SetRange(0, 100);
pDlg->m_cPlog.SetPos(percent);
if(pDlg->m_bAbort == FALSE)
{
return true;
}
else
{
return false;
}
}
void CCrytestDlg::OnBnClickedButton3()
{
m_bAbort = TRUE;
GetDlgItem(IDC_BUTTON3)->EnableWindow(FALSE);
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -