|
|
@@ -54,7 +54,15 @@ void CLoginWnd::Init()
|
|
|
|
|
|
if (CSetting::GetParam("setting_is_auto_login") == "1")
|
|
|
{
|
|
|
- HandleLogin();
|
|
|
+ StartLogin();
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ CVerticalLayoutUI* pInput = static_cast<CVerticalLayoutUI*>(m_pm.FindControl(_T("login_input")));
|
|
|
+ pInput->SetVisible(true);
|
|
|
+
|
|
|
+ CVerticalLayoutUI* pLoading = static_cast<CVerticalLayoutUI*>(m_pm.FindControl(_T("login_loading")));
|
|
|
+ pLoading->SetVisible(false);
|
|
|
}
|
|
|
}
|
|
|
|
|
|
@@ -69,7 +77,7 @@ void CLoginWnd::Notify(TNotifyUI& msg)
|
|
|
}
|
|
|
else if(msg.pSender->GetName() == _T("loginBtn"))
|
|
|
{
|
|
|
- HandleLogin();
|
|
|
+ StartLogin();
|
|
|
return;
|
|
|
}
|
|
|
else if (msg.pSender->GetName() == _T("login_auto_login"))
|
|
|
@@ -305,11 +313,51 @@ LRESULT CLoginWnd::MessageHandler(UINT uMsg, WPARAM wParam, LPARAM lParam, bool&
|
|
|
}
|
|
|
|
|
|
}
|
|
|
+ else if (uMsg == WM_LOGIN_SUCCESS)
|
|
|
+ {
|
|
|
+ LoginSuccess();
|
|
|
+ return true;
|
|
|
+ }
|
|
|
+ else if (uMsg == WM_LOGIN_ERROR)
|
|
|
+ {
|
|
|
+ LoginError();
|
|
|
+ return true;
|
|
|
+ }
|
|
|
+ else if (uMsg == WM_NEED_UPDATE)
|
|
|
+ {
|
|
|
+ //说明需要升级了
|
|
|
+
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
return false;
|
|
|
}
|
|
|
|
|
|
+void CLoginWnd::StartLogin()
|
|
|
+{
|
|
|
+ //隐藏密码输入框,显示进度条
|
|
|
+ CVerticalLayoutUI* pInput = static_cast<CVerticalLayoutUI*>(m_pm.FindControl(_T("login_input")));
|
|
|
+ pInput->SetVisible(false);
|
|
|
+
|
|
|
+ CVerticalLayoutUI* pLoading = static_cast<CVerticalLayoutUI*>(m_pm.FindControl(_T("login_loading")));
|
|
|
+ pLoading->SetVisible(true);
|
|
|
+
|
|
|
+ CLabelUI* pLoginResultLabel = static_cast<CLabelUI*>(m_pm.FindControl(_T("loginresult")));
|
|
|
+ pLoginResultLabel->SetVisible(false);
|
|
|
+
|
|
|
+ //开启一个线程,开始处理登录
|
|
|
+ std::thread(&CLoginWnd::HandleLogin, this).detach();
|
|
|
+}
|
|
|
+
|
|
|
void CLoginWnd::HandleLogin()
|
|
|
{
|
|
|
+ //真正登录前,先检测是否有需要更新
|
|
|
+ CSystem::my_sleep(1);
|
|
|
+
|
|
|
+ //如果需要更新,那么就提示
|
|
|
+ PostMessage(WM_NEED_UPDATE);
|
|
|
+ return;
|
|
|
+
|
|
|
//判断账号密码是否正确
|
|
|
std::wstring account, password;
|
|
|
CEditUI* pAccountEdit = static_cast<CEditUI*>(m_pm.FindControl(_T("accountedit")));
|
|
|
@@ -338,6 +386,8 @@ void CLoginWnd::HandleLogin()
|
|
|
pLoginResultLabel->SetText(std::wstring(_T("用户名不能为空")).c_str());
|
|
|
pLoginResultLabel->SetVisible(true);
|
|
|
|
|
|
+ PostMessage(WM_LOGIN_ERROR);
|
|
|
+
|
|
|
return;
|
|
|
}
|
|
|
|
|
|
@@ -346,6 +396,8 @@ void CLoginWnd::HandleLogin()
|
|
|
pLoginResultLabel->SetText(std::wstring(_T("密码不能为空")).c_str());
|
|
|
pLoginResultLabel->SetVisible(true);
|
|
|
|
|
|
+ PostMessage(WM_LOGIN_ERROR);
|
|
|
+
|
|
|
return;
|
|
|
}
|
|
|
|
|
|
@@ -397,19 +449,9 @@ void CLoginWnd::HandleLogin()
|
|
|
//把用户名和密码保存起来
|
|
|
CSetting::SetLoginInfo(s_account, s_password);
|
|
|
|
|
|
- CMainWnd* pFrame = new CMainWnd();
|
|
|
- if(pFrame == NULL)
|
|
|
- {
|
|
|
- return;
|
|
|
- }
|
|
|
-
|
|
|
- pFrame->SetIcon(IDI_ICON_DUILIB);
|
|
|
- pFrame->Create(NULL, _T("智铺子收银软件"), UI_WNDSTYLE_FRAME, 0L, 0, 0, 1024, 768);
|
|
|
- pFrame->CenterWindow();
|
|
|
+ PostMessage(WM_LOGIN_SUCCESS);
|
|
|
|
|
|
- ::ShowWindow(*pFrame, SW_SHOWMAXIMIZED);
|
|
|
-
|
|
|
- Close();
|
|
|
+ return;
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
@@ -418,9 +460,37 @@ void CLoginWnd::HandleLogin()
|
|
|
|
|
|
pLoginResultLabel->SetText(std::wstring(_T("登录失败:") + CLewaimaiString::UTF8ToUnicode(errmsg)).c_str());
|
|
|
pLoginResultLabel->SetVisible(true);
|
|
|
+
|
|
|
+ PostMessage(WM_LOGIN_ERROR);
|
|
|
}
|
|
|
}
|
|
|
|
|
|
+void CLoginWnd::LoginSuccess()
|
|
|
+{
|
|
|
+ CMainWnd* pFrame = new CMainWnd();
|
|
|
+ if (pFrame == NULL)
|
|
|
+ {
|
|
|
+ return;
|
|
|
+ }
|
|
|
+
|
|
|
+ pFrame->SetIcon(IDI_ICON_DUILIB);
|
|
|
+ pFrame->Create(NULL, _T("智铺子收银软件"), UI_WNDSTYLE_FRAME, 0L, 0, 0, 1024, 768);
|
|
|
+ pFrame->CenterWindow();
|
|
|
+
|
|
|
+ ::ShowWindow(*pFrame, SW_SHOWMAXIMIZED);
|
|
|
+
|
|
|
+ Close();
|
|
|
+}
|
|
|
+
|
|
|
+void CLoginWnd::LoginError()
|
|
|
+{
|
|
|
+ CVerticalLayoutUI* pInput = static_cast<CVerticalLayoutUI*>(m_pm.FindControl(_T("login_input")));
|
|
|
+ pInput->SetVisible(true);
|
|
|
|
|
|
+ CVerticalLayoutUI* pLoading = static_cast<CVerticalLayoutUI*>(m_pm.FindControl(_T("login_loading")));
|
|
|
+ pLoading->SetVisible(false);
|
|
|
|
|
|
+ CLabelUI* pLoginResultLabel = static_cast<CLabelUI*>(m_pm.FindControl(_T("loginresult")));
|
|
|
+ pLoginResultLabel->SetVisible(true);
|
|
|
+}
|
|
|
|