?? base64stringdlg.cpp
字號:
// Base64StringDlg.cpp : implementation file
//
#include "stdafx.h"
#include "Base64Proj.h"
#include "Base64StringDlg.h"
#include "Base64ProjDlg.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
/////////////////////////////////////////////////////////////////////////////
// CBase64StringDlg dialog
CBase64StringDlg::CBase64StringDlg(CWnd* pParent /*=NULL*/)
: CDialog(CBase64StringDlg::IDD, pParent)
{
//{{AFX_DATA_INIT(CBase64StringDlg)
// NOTE: the ClassWizard will add member initialization here
//}}AFX_DATA_INIT
}
void CBase64StringDlg::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
//{{AFX_DATA_MAP(CBase64StringDlg)
// NOTE: the ClassWizard will add DDX and DDV calls here
//}}AFX_DATA_MAP
}
BEGIN_MESSAGE_MAP(CBase64StringDlg, CDialog)
//{{AFX_MSG_MAP(CBase64StringDlg)
ON_EN_CHANGE(IDC_EDIT_INPUT, OnChangeEditInput)
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CBase64StringDlg message handlers
void CBase64StringDlg::OnChangeEditInput()
{
CString strInput;
GetDlgItemText(IDC_EDIT_INPUT, strInput);
if(strInput.IsEmpty())
{
SetDlgItemText(IDC_EDIT_OUTPUT, "");
return ;
}
// 加密
if(((CBase64ProjDlg*)AfxGetMainWnd())->IsEncode())
{
string strResult = m_Base64.Encode((unsigned char *)(LPCTSTR)strInput, strInput.GetLength());
SetDlgItemText(IDC_EDIT_OUTPUT, strResult.c_str());
}
// 解密
else
{
string strResult = m_Base64.Decode((unsigned char *)(LPCTSTR)strInput, strInput.GetLength());
SetDlgItemText(IDC_EDIT_OUTPUT, strResult.c_str());
}
}
LRESULT CBase64StringDlg::EditProc1(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
{
if(uMsg == WM_KEYDOWN)
{
if((GetAsyncKeyState(VK_CONTROL) & 0x8000))
{
if(wParam == 'A' || wParam == 'a')
{
CString strInput;
GetDlgItemText(IDC_EDIT_INPUT, strInput);
::SendMessage(GetDlgItem(IDC_EDIT_INPUT)->m_hWnd, EM_SETSEL, 0, strInput.GetLength());
return 1;
}
}
}
return CallWindowProc(m_PrevProc1, hWnd, uMsg, wParam, lParam);
}
LRESULT CBase64StringDlg::EditProc2(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
{
if(uMsg == WM_KEYDOWN)
{
if((GetAsyncKeyState(VK_CONTROL) & 0x8000))
{
if(wParam == 'A' || wParam == 'a')
{
CString strInput;
GetDlgItemText(IDC_EDIT_OUTPUT, strInput);
::SendMessage(GetDlgItem(IDC_EDIT_OUTPUT)->m_hWnd, EM_SETSEL, 0, strInput.GetLength());
return 1;
}
}
}
return CallWindowProc(m_PrevProc2, hWnd, uMsg, wParam, lParam);
}
BOOL CBase64StringDlg::OnInitDialog()
{
CDialog::OnInitDialog();
void* proc1 = m_Thunk1.Stdcall(this, Thunk::GetMemberFxnAddr(&CBase64StringDlg::EditProc1));
m_PrevProc1 = (WNDPROC)::SetWindowLong(GetDlgItem(IDC_EDIT_INPUT)->m_hWnd, GWL_WNDPROC, (LONG)proc1);
void* proc2 = m_Thunk2.Stdcall(this, Thunk::GetMemberFxnAddr(&CBase64StringDlg::EditProc2));
m_PrevProc2 = (WNDPROC)::SetWindowLong(GetDlgItem(IDC_EDIT_OUTPUT)->m_hWnd, GWL_WNDPROC, (LONG)proc2);
return TRUE;
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -