Bladeren bron

代码更新到1.0.2.5,但是暂时不发布,等有其他问题再一起发布

张洋 5 jaren geleden
bovenliggende
commit
895a50d188

BIN
dump/1.0.2.4/2020-3-9 10_31_50.dmp


BIN
dump/1.0.2.4/2020-3-9 10_32_44.dmp


BIN
dump/1.0.2.4/2020-3-9 10_32_55.dmp


+ 1 - 1
lewaimai_pos_windows/lewaimai_pos_windows.cpp

@@ -45,7 +45,7 @@ int APIENTRY wWinMain(_In_ HINSTANCE hInstance,
     pLogin->SetIcon(IDI_ICON_DUILIB);
     pLogin->CenterWindow();
 
-    pLogin->ShowModal();
+	pLogin->ShowWindow(true);
 
     CPaintManagerUI::MessageLoop();
 

BIN
lewaimai_pos_windows/resource/lewaimai_pos_windows.aps


BIN
lewaimai_pos_windows/resource/lewaimai_pos_windows.rc


+ 34 - 3
lewaimai_pos_windows/wnd/CLoginWnd.cpp

@@ -81,6 +81,11 @@ void CLoginWnd::Notify(TNotifyUI& msg)
     {
         if(msg.pSender->GetName() == _T("closebtn"))
         {
+			if (m_is_login_ing)
+			{
+				return;
+			}
+
 			PostQuitMessage(0);
             return;
         }
@@ -300,6 +305,11 @@ LRESULT CLoginWnd::MessageHandler(UINT uMsg, WPARAM wParam, LPARAM lParam, bool&
 {
     if(uMsg == WM_KEYDOWN)
     {
+		if (m_is_login_ing)
+		{
+			return true;
+		}
+
         if(wParam == VK_RETURN)
         {
             CEditUI* pEdit = static_cast<CEditUI*>(m_pm.FindControl(_T("accountedit")));
@@ -316,7 +326,8 @@ LRESULT CLoginWnd::MessageHandler(UINT uMsg, WPARAM wParam, LPARAM lParam, bool&
                 }
                 else
                 {
-                    this->HandleLogin();
+					SetFocus(m_hWnd);
+					this->StartLogin();
                 }
             }
             return true;
@@ -341,7 +352,6 @@ LRESULT CLoginWnd::MessageHandler(UINT uMsg, WPARAM wParam, LPARAM lParam, bool&
 	else if (uMsg == WM_NEED_UPDATE)
 	{
 		//说明需要升级了
-
 		Update();
 
 		return true;
@@ -374,6 +384,8 @@ void CLoginWnd::StartLogin()
 
 void CLoginWnd::HandleLogin()
 {
+	m_is_login_ing = true;
+
 	CLabelUI* pLoginResultLabel = static_cast<CLabelUI*>(m_pm.FindControl(_T("loginresult")));
 
 	//真正登录前,先检测是否有需要更新
@@ -383,6 +395,8 @@ void CLoginWnd::HandleLogin()
 	bool ret = CLewaimaiHttpClient::Request("/version/getwindowsversion", params, response);
 	if (!ret)
 	{
+		m_is_login_ing = false;
+
 		pLoginResultLabel->SetText(std::wstring(_T("网络请求出错")).c_str());
 		pLoginResultLabel->SetVisible(true);
 
@@ -396,6 +410,8 @@ void CLoginWnd::HandleLogin()
 
 	if (document.HasParseError())
 	{
+		m_is_login_ing = false;
+
 		pLoginResultLabel->SetText(std::wstring(_T("服务器返回数据格式错误")).c_str());
 		pLoginResultLabel->SetVisible(true);
 
@@ -407,6 +423,8 @@ void CLoginWnd::HandleLogin()
 	{
 		if (!document.HasMember("errcode") || !document.HasMember("errmsg") || !document.HasMember("data"))
 		{
+			m_is_login_ing = false;
+
 			pLoginResultLabel->SetText(std::wstring(_T("服务器返回数据格式错误")).c_str());
 			pLoginResultLabel->SetVisible(true);
 
@@ -419,6 +437,8 @@ void CLoginWnd::HandleLogin()
 		int errcode = v_errcode.GetInt();
 		if (errcode != 0)
 		{
+			m_is_login_ing = false;
+
 			std::string errmsg = "response failed! message:" + string(document["errmsg"].GetString());
 			pLoginResultLabel->SetText(CLewaimaiString::UTF8ToUnicode(errmsg).c_str());
 			pLoginResultLabel->SetVisible(true);
@@ -435,11 +455,13 @@ void CLoginWnd::HandleLogin()
 
 		if (newest_version > CSystem::GetVersion())
 		{
+			m_is_login_ing = false;
+
 			//说明有新版本,要更新
 			PostMessage(WM_NEED_UPDATE);
 			return;
 		}
-	}
+	 }	
 
     //判断账号密码是否正确
     std::wstring account, password;
@@ -468,6 +490,8 @@ void CLoginWnd::HandleLogin()
 
 	if (s_account.compare("") == 0)
 	{
+		m_is_login_ing = false;
+
 		pLoginResultLabel->SetText(std::wstring(_T("用户名不能为空")).c_str());
 		pLoginResultLabel->SetVisible(true);
 
@@ -478,6 +502,8 @@ void CLoginWnd::HandleLogin()
 
 	if (s_password.compare("") == 0)
 	{
+		m_is_login_ing = false;
+
 		pLoginResultLabel->SetText(std::wstring(_T("密码不能为空")).c_str());
 		pLoginResultLabel->SetVisible(true);
 
@@ -536,6 +562,8 @@ void CLoginWnd::HandleLogin()
 
 		PostMessage(WM_LOGIN_SUCCESS);
 
+		m_is_login_ing = false;
+
 		return;
     }
     else
@@ -546,6 +574,8 @@ void CLoginWnd::HandleLogin()
         pLoginResultLabel->SetText(std::wstring(_T("登录失败:") + CLewaimaiString::UTF8ToUnicode(errmsg)).c_str());
         pLoginResultLabel->SetVisible(true);
 
+		m_is_login_ing = false;
+
 		PostMessage(WM_LOGIN_ERROR);
     }
 }
@@ -610,5 +640,6 @@ void CLoginWnd::ShowLoginAgainOut()
 	pMessagebox->Create(m_hWnd, _T(""), UI_WNDSTYLE_DIALOG, WS_EX_WINDOWEDGE);
 	pMessagebox->SetIcon(IDI_ICON_DUILIB);
 	pMessagebox->CenterWindow();
+
 	UINT ret = pMessagebox->ShowModal();
 }

+ 3 - 1
lewaimai_pos_windows/wnd/CLoginWnd.h

@@ -23,7 +23,7 @@ public:
 
     void OnFinalMessage(HWND /*hWnd*/)
     {
-        //m_pm.RemovePreMessageFilter(this);
+        m_pm.RemovePreMessageFilter(this);
         delete this;
     };
 
@@ -75,5 +75,7 @@ public:
 
 	//模式1:正常的展示登录页面 2:被人挤下线的
 	int m_mode = 1;
+
+	bool m_is_login_ing = false;
 };
 

+ 7 - 0
lewaimai_pos_windows/wnd/CMainWnd.cpp

@@ -1090,6 +1090,11 @@ LRESULT CMainWnd::HandleMessage(UINT uMsg, WPARAM wParam, LPARAM lParam)
     return CWindowWnd::HandleMessage(uMsg, wParam, lParam);
 }
 
+LRESULT CMainWnd::MessageHandler(UINT uMsg, WPARAM wParam, LPARAM lParam, bool& bHandled)
+{
+	return false;
+}
+
 LRESULT CMainWnd::OnSysCommand(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled)
 {
     // 有时会在收到WM_NCDESTROY后收到wParam为SC_CLOSE的WM_SYSCOMMAND
@@ -1828,6 +1833,8 @@ void CMainWnd::LoginOut(int mode)
     pLogin->Create(NULL, _T("乐外卖接单软件登录"), UI_WNDSTYLE_DIALOG, 0, 0, 0, 0, 0, NULL);
     pLogin->SetIcon(IDI_ICON_DUILIB);
     pLogin->CenterWindow();
+
     ::ShowWindow(*pLogin, SW_SHOWNORMAL);
+
     Close();
 }

+ 4 - 1
lewaimai_pos_windows/wnd/CMainWnd.h

@@ -8,7 +8,7 @@
 
 class CMessagePush;
 
-class CMainWnd : public CWindowWnd, public INotifyUI
+class CMainWnd : public CWindowWnd, public INotifyUI, public IMessageFilterUI
 {
 public:
     CMainWnd() { };
@@ -25,6 +25,7 @@ public:
 
     void OnFinalMessage(HWND /*hWnd*/)
     {
+		m_pm.RemovePreMessageFilter(this);
         delete this;
     };
 
@@ -65,6 +66,8 @@ public:
 
     LRESULT HandleMessage(UINT uMsg, WPARAM wParam, LPARAM lParam);
 
+	LRESULT MessageHandler(UINT uMsg, WPARAM wParam, LPARAM lParam, bool& bHandled);
+
 	LRESULT OnOrderlistRefresh(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled);
 
 	LRESULT OnLoginOut(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled);

+ 1 - 1
lewaimai_pos_windows/wnd/CUpdateWnd.cpp

@@ -428,4 +428,4 @@ LRESULT CUpdateWnd::OnDownloadFinish(UINT uMsg, WPARAM wParam, LPARAM lParam, BO
 	PostQuitMessage(0);
 
 	return 0;
-}
+}

+ 1 - 1
lewaimai_pos_windows/wnd/CUpdateWnd.h

@@ -20,7 +20,7 @@ public:
 
     void OnFinalMessage(HWND /*hWnd*/)
     {
-        //m_pm.RemovePreMessageFilter(this);
+        m_pm.RemovePreMessageFilter(this);
         delete this;
     };