代码拉取完成,页面将自动刷新
#include "Passwords.h"
#include <time.h>
#define TIMER_DISABLE_TIMEOUT 1001
int APIENTRY _tWinMain(HINSTANCE hInstance,
HINSTANCE hPrevInstance,
LPTSTR lpCmdLine,
int nCmdShow)
{
HRESULT Hr = ::CoInitialize(NULL);
if(FAILED(Hr)) return 0;
CPaintManagerUI::SetInstance(hInstance);
CPaintManagerUI::SetResourceType(UILIB_ZIPRESOURCE);
CPaintManagerUI::SetResourcePath(CPaintManagerUI::GetInstancePath());
CPaintManagerUI::SetResourceZip(MAKEINTRESOURCE(IDR_ZIPRES), _T("ZIPRES"));
CPasswordsDlg* pDlg = new CPasswordsDlg();
if(pDlg == NULL) return 0;
pDlg->Create(NULL,_T("Passwords"),UI_WNDSTYLE_FRAME,WS_EX_APPWINDOW,0,0,800,600);
pDlg->CenterWindow();
pDlg->ShowModal();
::CoUninitialize();
return 0;
}
CPasswordsDlg::CPasswordsDlg()
{
labTitle = NULL;
editUpper = NULL;
editLower = NULL;
editNumber = NULL;
editSymbol = NULL;
chkUpper = NULL;
chkLower = NULL;
chkNumber = NULL;
chkSymbol = NULL;
editLength = NULL;
editCount = NULL;
editPassword = NULL;
btnGenerator = NULL;
}
CPasswordsDlg::~CPasswordsDlg()
{
}
LPCTSTR CPasswordsDlg::GetWindowClassName() const
{
return _T("Passwords");
}
void CPasswordsDlg::InitWindow()
{
labTitle = static_cast<CLabelUI*>(m_pm.FindControl(_T("labTitle")));
editUpper = static_cast<CRichEditUI*>(m_pm.FindControl(_T("editUpper")));
editLower = static_cast<CRichEditUI*>(m_pm.FindControl(_T("editLower")));
editNumber = static_cast<CRichEditUI*>(m_pm.FindControl(_T("editNumber")));
editSymbol = static_cast<CRichEditUI*>(m_pm.FindControl(_T("editSymbol")));
chkUpper = static_cast<CCheckBoxUI*>(m_pm.FindControl(_T("chkUpper")));
chkLower = static_cast<CCheckBoxUI*>(m_pm.FindControl(_T("chkLower")));
chkNumber = static_cast<CCheckBoxUI*>(m_pm.FindControl(_T("chkNumber")));
chkSymbol = static_cast<CCheckBoxUI*>(m_pm.FindControl(_T("chkSymbol")));
editLength = static_cast<CRichEditUI*>(m_pm.FindControl(_T("editLength")));
editCount = static_cast<CRichEditUI*>(m_pm.FindControl(_T("editCount")));
editPassword = static_cast<CRichEditUI*>(m_pm.FindControl(_T("editPassword")));
btnGenerator = static_cast<CButtonUI*>(m_pm.FindControl(_T("btnGenerator")));
if (labTitle == NULL || editUpper == NULL|| editLower == NULL
|| editNumber == NULL || editSymbol == NULL || chkUpper == NULL
|| chkLower == NULL || chkNumber == NULL || chkSymbol == NULL
|| editLength == NULL|| editCount == NULL|| editPassword == NULL || btnGenerator == NULL)
{
MessageBox(NULL,_T("Loading resources failed!"),_T("Passwords"),MB_OK|MB_ICONERROR);
return;
}
}
void CPasswordsDlg::OnFinalMessage(HWND hWnd)
{
WindowImplBase::OnFinalMessage(hWnd);
delete this;
}
CDuiString CPasswordsDlg::GetSkinFile()
{
return _T("Passwords.xml");
}
void CPasswordsDlg::Notify(TNotifyUI& msg)
{
CDuiString sCtrlName = msg.pSender->GetName();
if (_tcsicmp(msg.sType,DUI_MSGTYPE_CLICK) == 0)
{
if (_tcsicmp(sCtrlName,_T("btnGenerator")) == 0){
CDuiString sTemplate,sPasswords,sLower,sUpper;
CDuiString sNumber,sSymbol,sLength,sCount;
btnGenerator->SetEnabled(false);
editPassword->SetText(_T(""));
if(chkUpper->IsSelected())
sUpper = editUpper->GetText();
if(chkLower->IsSelected())
sLower = editLower->GetText();
if(chkNumber->IsSelected())
sNumber = editNumber->GetText();
if(chkSymbol->IsSelected())
sSymbol = editSymbol->GetText();
sTemplate = sUpper + sLower + sNumber + sSymbol;
sTemplate.Replace(_T(" "),_T(""));
sLength = editLength->GetText();
sCount = editCount->GetText();
TCHAR cRandChar = 0;
if(sTemplate.GetLength() == 0 || sLength.GetLength() == 0 || sCount.GetLength() == 0)
return;
int nLength = _ttoi(sLength.GetData());
if(nLength<=0)
{
nLength = 6;
editLength->SetText(_T("6"));
}
int nCount = _ttoi(sCount.GetData());
if(nCount<=0)
{
nCount = 1;
editCount->SetText(_T("1"));
}
for(int i=0;i<nCount;i++){
if(sPasswords.GetLength()>0)
sPasswords+=_T("\n");
for(int j=1;j<=nLength;j++)
sPasswords+=GetRandChar(sTemplate);
}
editPassword->SetText(sPasswords);
btnGenerator->SetEnabled(true);
}
}
else if (_tcsicmp(msg.sType,DUI_MSGTYPE_SELECTCHANGED) == 0)
{
CDuiString sBuffer;
CCheckBoxUI* chkUI = (CCheckBoxUI*)msg.pSender;
if(chkUpper->IsSelected())
sBuffer += editUpper->GetText();
if(chkLower->IsSelected())
sBuffer += editLower->GetText();
if(chkNumber->IsSelected())
sBuffer += editNumber->GetText();
if(chkSymbol->IsSelected())
sBuffer += editSymbol->GetText();
sBuffer.Replace(_T(" "),_T(""));
if(sBuffer.GetLength() == 0)
chkUI->SetCheck(!chkUI->IsSelected());
//else
// sTemplate = sBuffer;
}
return WindowImplBase::Notify(msg);
}
TCHAR CPasswordsDlg::GetRandChar(CDuiString& sTemplate, UINT nIncrement)
{
static UINT nRandomSeed = 0;
UINT nTemplate = sTemplate.GetLength();
if(nRandomSeed < nTemplate)
srand(nRandomSeed = time(NULL));
return sTemplate.GetAt(rand() % nTemplate);
}
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。