CDialogEx类怎样初始化?怎么没有像CDialog类初始化的OnInitDialog()函数
#include "stdafx.h"
#include "appLockerCli.h"
#include "AppManage.h"
#include "afxdialogex.h"
#include "appLockerCliDlg.h"
#include <Afxdlgs.h>
//CappLockerCliDlg mesg;
// AppManage 对话框
IMPLEMENT_DYNAMIC(AppManage, CDialogEx)
AppManage::AppManage(CWnd* pParent /*=NULL*/)
: CDialogEx(AppManage::IDD, pParent)
{
AppPath1="";
AppPath2="";
AppPswd="";
App_Mesg=new UDPSocket();
App_Mesg->Create(5002, SOCK_DGRAM);
App_Mesg->Bind(5002,Host_IP);
}
AppManage::~AppManage()
{
}
void AppManage::DoDataExchange(CDataExchange* pDX)
{
DDX_Text(pDX,IDC_EDIT1,AppPath1);
DDX_Text(pDX,IDC_EDIT3,AppPath2);
DDX_Text(pDX,IDC_EDIT2,AppPswd);
//UpdateData(FALSE);
CDialogEx::DoDataExchange(pDX);
}
BEGIN_MESSAGE_MAP(AppManage, CDialogEx)
ON_BN_CLICKED(IDOK, &AppManage::OnBnClickedOk)
ON_BN_CLICKED(IDC_CHOSEAPP1, &AppManage::OnBnClickedChoseapp1)
ON_BN_CLICKED(IDC_CHOSEAPP2, &AppManage::OnBnClickedChoseapp2)
ON_BN_CLICKED(IDC_ENCRYPTAPP, &AppManage::OnBnClickedEncryptapp)
ON_BN_CLICKED(IDC_DECRYPTAPP, &AppManage::OnBnClickedDecryptapp)
END_MESSAGE_MAP()
// AppManage 消息处理程序
void AppManage::OnBnClickedOk()
{
// TODO: 在此添加控件通知处理程序代码
CDialogEx::OnOK();
}
void AppManage::OnBnClickedChoseapp1()
{
// TODO: 在此添加控件通知处理程序代码
CFileDialog encrypt_App(TRUE);
encrypt_App.DoModal();
AppPath1=encrypt_App.GetPathName();
UpdateData(FALSE);
}
void AppManage::OnBnClickedChoseapp2()
{
// TODO: 在此添加控件通知处理程序代码
CFileDialog decrypt_App(TRUE);
decrypt_App.DoModal();
AppPath2=decrypt_App.GetPathName();
UpdateData(FALSE);
}
void AppManage::OnBnClickedEncryptapp()
{
// TODO: 在此添加控件通知处理程序代码
CProgressCtrl *pProgressCtrl = (CProgressCtrl*)this->GetDlgItem(IDC_PROGRESS1);
pProgressCtrl->SetRange(0,100);
pProgressCtrl->SetPos(0);
GetDlgItem(IDC_ENCRYPTAPP)->EnableWindow(FALSE);
GetDlgItem(IDC_DECRYPTAPP)->EnableWindow(FALSE);
pProgressCtrl->SetPos(10);
char meshead[20]={NULL};
char app_id[100]={NULL};
char app_pswd[100]={NULL};
char app_pswd_send[100]={NULL};
char send_data[220]={NULL};
UpdateData(TRUE);
CString path_encrypt;
path_encrypt=AppPath1;
path_encrypt+=".lock";
pProgressCtrl->SetPos(20);
if(!DES_Encrypt_File((char *)(LPCTSTR)AppPath1,(char *)(LPCTSTR)AppPswd ,(char *)(LPCTSTR)path_encrypt)){
AfxMessageBox(_T("无法加密源文件!"));
GetDlgItem(IDC_ENCRYPTAPP)->EnableWindow(TRUE);
GetDlgItem(IDC_DECRYPTAPP)->EnableWindow(TRUE);
return;
}
pProgressCtrl->SetPos(70);
CFile TempFile1;
TempFile1.Remove(AppPath1);
strcpy(meshead,"App_Lock");//发送消息到服务器,请求服务器存储应用加密密码
strcpy(app_id,path_encrypt);
strcpy(app_pswd,(char *)(LPCTSTR)AppPswd);
DES_Encrypt(app_pswd,strlen(app_pswd),EncryptKey,app_pswd_send);//加密应用密码
memcpy(send_data,meshead,20);
memcpy(send_data+20,app_id,100);
memcpy(send_data+120,app_pswd_send,100);
App_Mesg->SendTo(send_data,220,5001,Server_IP);//将应用名,加密后的应用密码发送至服务器
pProgressCtrl->SetPos(100);
AfxMessageBox(_T("Encrypt Success!"));
GetDlgItem(IDC_ENCRYPTAPP)->EnableWindow(TRUE);
GetDlgItem(IDC_DECRYPTAPP)->EnableWindow(TRUE);
pProgressCtrl->SetPos(0);
}
void AppManage::OnBnClickedDecryptapp()
{
// TODO: 在此添加控件通知处理程序代码
CProgressCtrl *pProgressCtrl = (CProgressCtrl*)this->GetDlgItem(IDC_PROGRESS2);
pProgressCtrl->SetRange(0,100);
pProgressCtrl->SetPos(0);
UpdateData(TRUE);
GetDlgItem(IDC_ENCRYPTAPP)->EnableWindow(FALSE);
GetDlgItem(IDC_DECRYPTAPP)->EnableWindow(FALSE);
char app_apply[120]={NULL};
char meshead[20]={NULL};
char app_lockid[100]={NULL};
strcpy(meshead,"App_Unlock");
strcpy(app_lockid,AppPath2);
memcpy(app_apply,meshead,20);
memcpy(app_apply+20,app_lockid,100);
App_Mesg->SendTo(app_apply,120,5001,Server_IP);
pProgressCtrl->SetPos(20);
App_Mesg->AsyncSelect(FD_READ);
App_Mesg->OnReceive(NULL);
CString path_decrypt=AppPath2;
path_decrypt.Delete(path_decrypt.GetLength()-5,5);
pProgressCtrl->SetPos(40);
if(!DES_Decrypt_File((char *)(LPCTSTR)AppPath2,(char *)(App_Mesg->App_passwd.c_str()),(char *)(LPCTSTR)path_decrypt)){
AfxMessageBox(_T("无法解密源文件!"));
GetDlgItem(IDC_ENCRYPTAPP)->EnableWindow(TRUE);
GetDlgItem(IDC_DECRYPTAPP)->EnableWindow(TRUE);
return;
}
pProgressCtrl->SetPos(100);
AfxMessageBox(_T("Decrypt Success!"));
GetDlgItem(IDC_ENCRYPTAPP)->EnableWindow(TRUE);
GetDlgItem(IDC_DECRYPTAPP)->EnableWindow(TRUE);
pProgressCtrl->SetPos(0);
}