// EncryptFileDlg.cpp : implementation file
//
#include "stdafx.h"
#include "EncryptFile.h"
#include "EncryptFileDlg.h"
#include "SubWnd.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
#define PUT_Msg_Process(X) SendMessage(_hdlg_mainW,WM_EncryptWToProgressCtrl,(WPARAM)(X),-1);
#define PUT_Msg(X) SetDlgItemText(IDC_ST_TIP,X)
#define WM_EncryptWToProgressCtrl WM_USER+102
#define WM_SHOWTASK WM_USER+103
#define CONSTANT_1M 1048576
//#define PUT_Msg(X) AfxMessageBox(_T(X))
/////////////////////////////////////////////////////////////////////////////
// CAboutDlg dialog used for App About
HWND _hdlg_mainW;
HANDLE _hthdSync;
CString m_csPwd_outside;
CString m_csEncryptFile_outside;
__int64 m_nPwd;
BOOL IsRunning=FALSE;
class CAboutDlg : public CDialog
{
public:
CAboutDlg();
// Dialog Data
//{{AFX_DATA(CAboutDlg)
enum { IDD = IDD_ABOUTBOX };
//}}AFX_DATA
// ClassWizard generated virtual function overrides
//{{AFX_VIRTUAL(CAboutDlg)
protected:
virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV support
//}}AFX_VIRTUAL
// Implementation
protected:
//{{AFX_MSG(CAboutDlg)
//}}AFX_MSG
DECLARE_MESSAGE_MAP()
};
CAboutDlg::CAboutDlg() : CDialog(CAboutDlg::IDD)
{
//{{AFX_DATA_INIT(CAboutDlg)
//}}AFX_DATA_INIT
}
void CAboutDlg::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
//{{AFX_DATA_MAP(CAboutDlg)
//}}AFX_DATA_MAP
}
BEGIN_MESSAGE_MAP(CAboutDlg, CDialog)
//{{AFX_MSG_MAP(CAboutDlg)
// No message handlers
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CEncryptFileDlg dialog
CEncryptFileDlg::CEncryptFileDlg(CWnd* pParent /*=NULL*/)
: CDialog(CEncryptFileDlg::IDD, pParent)
{
//{{AFX_DATA_INIT(CEncryptFileDlg)
m_csEncryptFile = _T("Please select a file ……");
m_csPwd = _T("");
IsQuitAfterFinish=FALSE;
m_csPwd_outside=m_csPwd;
//}}AFX_DATA_INIT
m_hIcon = AfxGetApp()->LoadIcon(IDR_MAINFRAME);
}
void CEncryptFileDlg::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
//{{AFX_DATA_MAP(CEncryptFileDlg)
//DDX_Control(pDX, IDC_EDIT_PATH, m_pathEdit);
DDX_Text(pDX, IDC_EDIT_KEY, m_csPwd);
DDX_Control(pDX,IDC_PROGRESS_ENCRYPT,m_sychroProgress);
//}}AFX_DATA_MAP
}
BEGIN_MESSAGE_MAP(CEncryptFileDlg, CDialog)
//{{AFX_MSG_MAP(CEncryptFileDlg)
ON_WM_SYSCOMMAND()
ON_WM_PAINT()
ON_WM_QUERYDRAGICON()
ON_BN_CLICKED(IDC_BUTTON_OPEN, OnBtnOpen)
ON_BN_CLICKED(IDC_BUTTON_ENCRYPT, OnBtnEncrypt)
ON_BN_CLICKED(IDC_BUTTON_UNENCRYPT, OnBtnUnencrypt)
ON_MESSAGE(WM_EncryptWToProgressCtrl,Updata_UI)
ON_BN_CLICKED(IDC_SHOWPWD, OnShowpwd)
ON_COMMAND(IDOK, Ok_Cancel)
ON_MESSAGE(WM_SHOWTASK, OnShowtask)
ON_COMMAND(IDCANCEL, Ok_Cancel)
ON_COMMAND(ID_RB_Open, OnRBOpen)
ON_COMMAND(ID_RB_Exit, OnRBExit)
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CEncryptFileDlg message handlers
void CEncryptFileDlg::Ok_Cancel()
{
}
//完成托盘图标响应操作
//调用者:OnBtnminsize()、OnInitDialog()
//参数:lParam WM_LBUTTONDOWN://左键按下
// WM_RBUTTONUP://右键的弹起
afx_msg LRESULT CEncryptFileDlg::OnShowtask(WPARAM wParam, LPARAM lParam)
{
if(wParam != IDR_MAINFRAME)
return 1;
if(WM_LBUTTONDBLCLK == lParam)
{
//SetWindowPos(&wndTop,0,0,0,0,SWP_NOSIZE|SWP_NOMOVE|SWP_SHOWWINDOW);
ShowWindow(SW_SHOW); // 显示主窗口
//使能图标菜单按钮
pTaskmenu->GetSubMenu(0)->EnableMenuItem(ID_RB_Open, MF_BYCOMMAND | MF_DISABLED | MF_GRAYED);
//使能 打开 菜单项
pTaskmenu->GetSubMenu(0)->EnableMenuItem(ID_RB_Exit, MF_BYCOMMAND | MF_ENABLED);
IsQuitAfterFinish=FALSE;//如果已经运行完毕,则不退出程序
}
switch(lParam)
{
case WM_LBUTTONDOWN://左键按下
{
ShowWindow(SW_SHOW); // 显示主窗口
SetWindowPos(&wndTop,0,0,0,0,SWP_NOSIZE|SWP_NOMOVE|SWP_SHOWWINDOW);
//SetWindowPos(&wndTopMost,0,0,0,0,SWP_NOSIZE|SWP_NOMOVE|SWP_SHOWWINDOW);
//使能图标菜单按钮
pTaskmenu->GetSubMenu(0)->EnableMenuItem(ID_RB_Open, MF_BYCOMMAND | MF_DISABLED | MF_GRAYED);
//使能 打开 菜单项
pTaskmenu->GetSubMenu(0)->EnableMenuItem(ID_RB_Exit, MF_BYCOMMAND | MF_ENABLED);
IsQuitAfterFinish=FALSE;//如果已经运行完毕,则不退出程序
break;
}
case WM_RBUTTONUP://右键的弹起
{
CPoint pos;
GetCursorPos(&pos);
pTaskmenu->GetSubMenu(0)->TrackPopupMenu(TPM_RIGHTBUTTON|TPM_LEFTALIGN,pos.x,pos.y,this);
break;
}
}
return 0;
}
BOOL CEncryptFileDlg::OnInitDialog()
{
CDialog::OnInitDialog();
// Add "About..." menu item to system menu.
// IDM_ABOUTBOX must be in the system command range.
ASSERT((IDM_ABOUTBOX & 0xFFF0) == IDM_ABOUTBOX);
ASSERT(IDM_ABOUTBOX < 0xF000);
CMenu* pSysMenu = GetSystemMenu(FALSE);
if (pSysMenu != NULL)
{
CString strAboutMenu;
strAboutMenu.LoadString(IDS_ABOUTBOX);
if (!strAboutMenu.IsEmpty())
{
pSysMenu->AppendMenu(MF_SEPARATOR);
pSysMenu->AppendMenu(MF_STRING, IDM_ABOUTBOX, strAboutMenu);
}
}
SetIcon(m_hIcon, TRUE); // Set big icon
SetIcon(m_hIcon, FALSE); // Set small icon
// TODO: Add extra initialization here
// Init_Progress(0,100);
// m_sychroProgress.SetPos(50);
SetWindowText(ProgrameName);
//得到该窗口句柄
CWnd* pWnd;
pWnd=FindWindow(NULL,ProgrameName);
_hdlg_mainW=pWnd->GetSafeHwnd();
m_sychroProgress.ShowWindow(SW_HIDE);
//按钮提示操作
if (!m_toolTip.Create(this, TTS_ALWAYSTIP))
{
TRACE(_T("Unable To create ToolTip\n"));
return FALSE;
}
m_toolTip.AddTool(GetDlgItem(IDC_BUTTON_OPEN),_T("Open file"));
m_toolTip.AddTool(GetDlgItem(IDC_BUTTON_UNENCRYPT),_T("UnEncrypt"));
m_toolTip.AddTool(GetDlgItem(IDC_BUTTON_ENCRYPT),_T("Encrypt"));
//创建托盘图标
//
NOTIFYICONDATA nid;
nid.cbSize = (DWORD)sizeof(NOTIFYICONDATA);
nid.hWnd = this->m_hWnd;
nid.uID = IDR_MAINFRAME;
nid.uFlags = NIF_ICON | NIF_MESSAGE | NIF_TIP ;
nid.uCallbackMessage = WM_SHOWTASK; // 自定义的消息名称
nid.hIcon = LoadIcon(AfxGetInstanceHandle(), MAKEINTRESOURCE(IDR_MAINFRAME));
strcpy(nid.szTip,ProgrameName);
Shell_NotifyIcon(NIM_ADD, &nid); // 在托盘区添加图标
SetIcon(m_hIcon, FALSE); // Set small icon
//托盘图标的菜单
pTaskmenu=new CMenu();
pTaskmenu->LoadMenu(IDR_MENU_POP);
//
//使能图标菜单按钮
pTaskmenu->GetSubMenu(0)->EnableMenuItem(ID_RB_Open, MF_BYCOMMAND | MF_DISABLED | MF_GRAYED);
//使能 打开 菜单项
pTaskmenu->GetSubMenu(0)->EnableMenuItem(ID_RB_Exit, MF_BYCOMMAND | MF_ENABLED);
//创建状态栏
// CRect statusRect;
// GetWindowRect(&statusRect);
// statusRect.top=statusRect.bottom-50;
m_statusbar.Create(WS_VISIBLE| WS_CHILD | CCS_BOTTOM,CRect(0,0,0,0),this,101);
m_statusbar.SetBkColor(RGB(0xa6,0xca,0xf0));
int arWidth[]={250,-1};
m_statusbar.SetParts(2,arWidth);
m_statusbar.SetText("欢迎使用加密/解密软件",0,0);
//显示时间
return TRUE; // return TRUE unless you set the focus to a control
}
void CEncryptFileDlg::OnSysCommand(UINT nID, LPARAM lParam)
{
if ((nID & 0xFFF0) == IDM_ABOUTBOX)
{
CAboutDlg dlgAbout;
dlgAbout.DoModal();
}
else if(SC_CLOSE==nID)
{
if (task_is_running())
{
IsQuitAfterFinish=TRUE;//如果已经运行完毕,则推出程序
ShowWindow(SW_HIDE);
//使能图标菜单按钮
pTaskmenu->GetSubMenu(0)->EnableMenuItem(ID_RB_Exit, MF_BYCOMMAND | MF_DISABLED | MF_GRAYED);
//使能 打开 菜单项
pTaskmenu->GetSubMenu(0)->EnableMenuItem(ID_RB_Open, MF_BYCOMMAND | MF_ENABLED);
}
else
{
OnExit();
}
}
else
{
CDialog::OnSysCommand(nID, lParam);
}
}
// If you add a minimize button to your dialog, you will need the code below
// to draw the icon. For MFC applications using the document/view model,
// this is automatically done for you by the framework.
vo
- 1
- 2
- 3
- 4
- 5
- 6
前往页