Selaa lähdekoodia

收款成功播报金额

zhangyang 5 vuotta sitten
vanhempi
commit
71e716f8fe
47 muutettua tiedostoa jossa 408 lisäystä ja 37 poistoa
  1. BIN
      bin/Win32/Debug/zhipuzi_pay_plugin/music/0.wav
  2. BIN
      bin/Win32/Debug/zhipuzi_pay_plugin/music/1.wav
  3. BIN
      bin/Win32/Debug/zhipuzi_pay_plugin/music/2.wav
  4. BIN
      bin/Win32/Debug/zhipuzi_pay_plugin/music/3.wav
  5. BIN
      bin/Win32/Debug/zhipuzi_pay_plugin/music/4.wav
  6. BIN
      bin/Win32/Debug/zhipuzi_pay_plugin/music/5.wav
  7. BIN
      bin/Win32/Debug/zhipuzi_pay_plugin/music/6.wav
  8. BIN
      bin/Win32/Debug/zhipuzi_pay_plugin/music/7.wav
  9. BIN
      bin/Win32/Debug/zhipuzi_pay_plugin/music/8.wav
  10. BIN
      bin/Win32/Debug/zhipuzi_pay_plugin/music/9.wav
  11. BIN
      bin/Win32/Debug/zhipuzi_pay_plugin/music/hundred.wav
  12. BIN
      bin/Win32/Debug/zhipuzi_pay_plugin/music/point.wav
  13. BIN
      bin/Win32/Debug/zhipuzi_pay_plugin/music/shi.wav
  14. BIN
      bin/Win32/Debug/zhipuzi_pay_plugin/music/ten.wav
  15. BIN
      bin/Win32/Debug/zhipuzi_pay_plugin/music/tenthousand.wav
  16. BIN
      bin/Win32/Debug/zhipuzi_pay_plugin/music/thousand.wav
  17. BIN
      bin/Win32/Debug/zhipuzi_pay_plugin/music/yuan.wav
  18. BIN
      res/music/0.wav
  19. BIN
      res/music/1.wav
  20. BIN
      res/music/2.wav
  21. BIN
      res/music/3.wav
  22. BIN
      res/music/4.wav
  23. BIN
      res/music/5.wav
  24. BIN
      res/music/6.wav
  25. BIN
      res/music/7.wav
  26. BIN
      res/music/8.wav
  27. BIN
      res/music/9.wav
  28. BIN
      res/music/hundred.wav
  29. BIN
      res/music/point.wav
  30. BIN
      res/music/shi.wav
  31. BIN
      res/music/ten.wav
  32. BIN
      res/music/tenthousand.wav
  33. BIN
      res/music/thousand.wav
  34. BIN
      res/music/yuan.wav
  35. 300 0
      zhipuzi_pay_plugin/helper/CSpeech.cpp
  36. 15 27
      zhipuzi_pay_plugin/helper/CSpeech.h
  37. 10 0
      zhipuzi_pay_plugin/wnd/CJiaobanWnd.cpp
  38. 2 1
      zhipuzi_pay_plugin/wnd/CJiaobanWnd.h
  39. 10 0
      zhipuzi_pay_plugin/wnd/CJiaoyihuizongWnd.cpp
  40. 2 0
      zhipuzi_pay_plugin/wnd/CJiaoyihuizongWnd.h
  41. 10 0
      zhipuzi_pay_plugin/wnd/CJiaoyijiluWnd.cpp
  42. 2 0
      zhipuzi_pay_plugin/wnd/CJiaoyijiluWnd.h
  43. 16 9
      zhipuzi_pay_plugin/wnd/CShoukuanWnd.cpp
  44. 4 0
      zhipuzi_pay_plugin/wnd/CShoukuanWnd.h
  45. 10 0
      zhipuzi_pay_plugin/wnd/CTuikuanWnd.cpp
  46. 2 0
      zhipuzi_pay_plugin/wnd/CTuikuanWnd.h
  47. 25 0
      zhipuzi_pay_plugin/wnd/CValueWnd.cpp

BIN
bin/Win32/Debug/zhipuzi_pay_plugin/music/0.wav


BIN
bin/Win32/Debug/zhipuzi_pay_plugin/music/1.wav


BIN
bin/Win32/Debug/zhipuzi_pay_plugin/music/2.wav


BIN
bin/Win32/Debug/zhipuzi_pay_plugin/music/3.wav


BIN
bin/Win32/Debug/zhipuzi_pay_plugin/music/4.wav


BIN
bin/Win32/Debug/zhipuzi_pay_plugin/music/5.wav


BIN
bin/Win32/Debug/zhipuzi_pay_plugin/music/6.wav


BIN
bin/Win32/Debug/zhipuzi_pay_plugin/music/7.wav


BIN
bin/Win32/Debug/zhipuzi_pay_plugin/music/8.wav


BIN
bin/Win32/Debug/zhipuzi_pay_plugin/music/9.wav


BIN
bin/Win32/Debug/zhipuzi_pay_plugin/music/hundred.wav


BIN
bin/Win32/Debug/zhipuzi_pay_plugin/music/point.wav


BIN
bin/Win32/Debug/zhipuzi_pay_plugin/music/shi.wav


BIN
bin/Win32/Debug/zhipuzi_pay_plugin/music/ten.wav


BIN
bin/Win32/Debug/zhipuzi_pay_plugin/music/tenthousand.wav


BIN
bin/Win32/Debug/zhipuzi_pay_plugin/music/thousand.wav


BIN
bin/Win32/Debug/zhipuzi_pay_plugin/music/yuan.wav


BIN
res/music/0.wav


BIN
res/music/1.wav


BIN
res/music/2.wav


BIN
res/music/3.wav


BIN
res/music/4.wav


BIN
res/music/5.wav


BIN
res/music/6.wav


BIN
res/music/7.wav


BIN
res/music/8.wav


BIN
res/music/9.wav


BIN
res/music/hundred.wav


BIN
res/music/point.wav


BIN
res/music/shi.wav


BIN
res/music/ten.wav


BIN
res/music/tenthousand.wav


BIN
res/music/thousand.wav


BIN
res/music/yuan.wav


+ 300 - 0
zhipuzi_pay_plugin/helper/CSpeech.cpp

@@ -1,3 +1,4 @@
+#include "../pch/pch.h"
 #include "CSpeech.h"
 
 
@@ -10,3 +11,302 @@ CSpeech::CSpeech()
 CSpeech::~CSpeech()
 {
 }
+
+void CSpeech::MSSSpeak(LPCTSTR speakContent)// speakContent为LPCTSTR型的字符串,调用此函数即可将文字转为语音
+{
+	ISpVoice* pVoice = NULL;
+
+	//初始化COM接口
+
+	if (FAILED(::CoInitialize(NULL)))
+	{
+		MessageBox(NULL, (LPCWSTR)L"COM接口初始化失败!", (LPCWSTR)L"提示", MB_ICONWARNING | MB_CANCELTRYCONTINUE | MB_DEFBUTTON2);
+	}
+
+	//获取SpVoice接口
+
+	HRESULT hr = CoCreateInstance(CLSID_SpVoice, NULL, CLSCTX_ALL, IID_ISpVoice, (void**)&pVoice);
+
+
+	if (SUCCEEDED(hr))
+	{
+		pVoice->SetVolume((USHORT)100); //设置音量,范围是 0 -100
+		pVoice->SetRate(2); //设置速度,范围是 -10 - 10
+		hr = pVoice->Speak(speakContent, 0, NULL);
+
+		pVoice->Release();
+
+		pVoice = NULL;
+	}
+
+	//释放com资源
+	::CoUninitialize();
+}
+
+/*
+ *如果只是一个0,读不读
+ **/
+void CSpeech::SpeakIntXiaoyuWan(int new_num, bool is_after_wan)
+{
+	std::wstring path;
+
+	if (new_num < 10)
+	{
+		if (is_after_wan == true)
+		{
+			if (new_num == 0)
+			{
+
+			}
+			else
+			{
+				path = CSystem::GetProgramDir() + L"\\music\\0.wav";
+				PlaySound(path.c_str(), NULL, SND_FILENAME | SND_SYNC);
+
+				path = CSystem::GetProgramDir() + L"\\music\\" + to_wstring(new_num) + L".wav";
+				PlaySound(path.c_str(), NULL, SND_FILENAME | SND_SYNC);
+			}
+		}
+		else
+		{
+			path = CSystem::GetProgramDir() + L"\\music\\" + to_wstring(new_num) + L".wav";
+			PlaySound(path.c_str(), NULL, SND_FILENAME | SND_SYNC);
+		}		
+	}
+	else if (new_num >= 10 && new_num <= 99)
+	{
+		int shi_wei = new_num / 10;
+		int ge_wei = new_num % 10;
+
+		if (is_after_wan == true && (shi_wei > 0 || ge_wei > 0))
+		{
+			path = CSystem::GetProgramDir() + L"\\music\\0.wav";
+			PlaySound(path.c_str(), NULL, SND_FILENAME | SND_SYNC);
+		}
+
+		if (shi_wei > 1)
+		{
+			path = CSystem::GetProgramDir() + L"\\music\\" + to_wstring(shi_wei) + L".wav";
+			PlaySound(path.c_str(), NULL, SND_FILENAME | SND_SYNC);
+		}
+		else if (is_after_wan == true && shi_wei == 1)
+		{
+			path = CSystem::GetProgramDir() + L"\\music\\" + to_wstring(shi_wei) + L".wav";
+			PlaySound(path.c_str(), NULL, SND_FILENAME | SND_SYNC);
+		}
+
+		path = CSystem::GetProgramDir() + L"\\music\\shi.wav";
+		PlaySound(path.c_str(), NULL, SND_FILENAME | SND_SYNC);
+
+		if (ge_wei >= 1)
+		{
+			//如果个位数为0,就不读
+			path = CSystem::GetProgramDir() + L"\\music\\" + to_wstring(ge_wei) + L".wav";
+			PlaySound(path.c_str(), NULL, SND_FILENAME | SND_SYNC);
+		}
+	}
+	else if (new_num >= 100 && new_num <= 999)
+	{
+		int bai_wei = new_num / 100;
+		int shi_wei = (new_num / 10) % 10;
+		int ge_wei = new_num % 10;
+
+		if (is_after_wan == true && (bai_wei > 0 || shi_wei > 0 || ge_wei > 0))
+		{
+			path = CSystem::GetProgramDir() + L"\\music\\0.wav";
+			PlaySound(path.c_str(), NULL, SND_FILENAME | SND_SYNC);
+		}
+
+		if (bai_wei >= 1)
+		{
+			path = CSystem::GetProgramDir() + L"\\music\\" + to_wstring(bai_wei) + L".wav";
+			PlaySound(path.c_str(), NULL, SND_FILENAME | SND_SYNC);
+		}
+
+		path = CSystem::GetProgramDir() + L"\\music\\hundred.wav";
+		PlaySound(path.c_str(), NULL, SND_FILENAME | SND_SYNC);
+
+		if (shi_wei == 0)
+		{
+			if (ge_wei >= 1)
+			{
+				path = CSystem::GetProgramDir() + L"\\music\\" + to_wstring(shi_wei) + L".wav";
+				PlaySound(path.c_str(), NULL, SND_FILENAME | SND_SYNC);
+			}
+		}
+		else
+		{
+			path = CSystem::GetProgramDir() + L"\\music\\" + to_wstring(shi_wei) + L".wav";
+			PlaySound(path.c_str(), NULL, SND_FILENAME | SND_SYNC);
+		}
+
+		if (shi_wei >= 1)
+		{
+			path = CSystem::GetProgramDir() + L"\\music\\shi.wav";
+			PlaySound(path.c_str(), NULL, SND_FILENAME | SND_SYNC);
+		}
+
+		if (ge_wei >= 1)
+		{
+			path = CSystem::GetProgramDir() + L"\\music\\" + to_wstring(ge_wei) + L".wav";
+			PlaySound(path.c_str(), NULL, SND_FILENAME | SND_SYNC);
+		}
+	}
+	else if (new_num >= 1000 && new_num <= 9999)
+	{
+		int qian_wei = new_num / 1000;
+
+		if (qian_wei >= 1)
+		{
+			path = CSystem::GetProgramDir() + L"\\music\\" + to_wstring(qian_wei) + L".wav";
+			PlaySound(path.c_str(), NULL, SND_FILENAME | SND_SYNC);
+		}
+
+		path = CSystem::GetProgramDir() + L"\\music\\thousand.wav";
+		PlaySound(path.c_str(), NULL, SND_FILENAME | SND_SYNC);
+
+		int bai_wei = (new_num / 100) % 10;
+		int shi_wei = (new_num / 10) % 10;
+		int ge_wei = new_num % 10;
+
+		if (bai_wei >= 1)
+		{
+			path = CSystem::GetProgramDir() + L"\\music\\" + to_wstring(bai_wei) + L".wav";
+			PlaySound(path.c_str(), NULL, SND_FILENAME | SND_SYNC);
+
+			path = CSystem::GetProgramDir() + L"\\music\\hundred.wav";
+			PlaySound(path.c_str(), NULL, SND_FILENAME | SND_SYNC);
+		}
+		else
+		{
+			if (shi_wei >= 1 || ge_wei >= 1)
+			{
+				path = CSystem::GetProgramDir() + L"\\music\\" + to_wstring(bai_wei) + L".wav";
+				PlaySound(path.c_str(), NULL, SND_FILENAME | SND_SYNC);
+			}
+		}
+
+		if (shi_wei == 0)
+		{
+			if (ge_wei >= 1 && bai_wei >= 1)
+			{
+				path = CSystem::GetProgramDir() + L"\\music\\" + to_wstring(shi_wei) + L".wav";
+				PlaySound(path.c_str(), NULL, SND_FILENAME | SND_SYNC);
+			}
+		}
+		else
+		{
+			path = CSystem::GetProgramDir() + L"\\music\\" + to_wstring(shi_wei) + L".wav";
+			PlaySound(path.c_str(), NULL, SND_FILENAME | SND_SYNC);
+		}
+
+		if (shi_wei >= 1)
+		{
+			path = CSystem::GetProgramDir() + L"\\music\\shi.wav";
+			PlaySound(path.c_str(), NULL, SND_FILENAME | SND_SYNC);
+		}		
+
+		if (ge_wei >= 1)
+		{
+			path = CSystem::GetProgramDir() + L"\\music\\" + to_wstring(ge_wei) + L".wav";
+			PlaySound(path.c_str(), NULL, SND_FILENAME | SND_SYNC);
+		}
+	}
+}
+
+/*
+ *读一个整数
+ **/
+void CSpeech::SpeakInt(int num)
+{
+	wstring path;
+
+	if (num > 99999999)
+	{
+		return;
+	}
+
+	if (num >= 10000)
+	{
+		//大于1万的
+		int new_num = num / 10000;
+
+		CSpeech::SpeakIntXiaoyuWan(new_num);
+
+		path = CSystem::GetProgramDir() + L"\\music\\tenthousand.wav";
+		PlaySound(path.c_str(), NULL, SND_FILENAME | SND_SYNC);
+
+		new_num = num % 10000;
+
+		CSpeech::SpeakIntXiaoyuWan(new_num, true);
+	}
+	else
+	{
+		//小于1万的
+		CSpeech::SpeakIntXiaoyuWan(num);
+	}
+}
+
+/*
+ *把数字拆解成一个个的读音,调用wav文件播放
+ *voice_type 1:收款成功 2:退款成功
+ *num 金额,比如18.23
+ **/
+void CSpeech::SpeakNum(int voice_type, std::string num)
+{
+	wstring path;
+
+	if (voice_type == 1)
+	{
+		path = CSystem::GetProgramDir() + L"\\music\\pay_success.wav";
+		PlaySound(path.c_str(), NULL, SND_FILENAME | SND_SYNC);
+	}
+	else if (voice_type == 2)
+	{
+		path = CSystem::GetProgramDir() + L"\\music\\refund_success.wav";
+		PlaySound(path.c_str(), NULL, SND_FILENAME | SND_SYNC);
+	}
+
+	if (num.find(".") == std::string::npos)
+	{
+		//当整数处理
+		int n_num = atoi(num.c_str());
+		if (n_num == 0)
+		{
+			return;
+		}
+
+		CSpeech::SpeakInt(n_num);
+	}
+	else
+	{
+		//当小数处理
+		double d_num = atof(num.c_str());
+		if (d_num < 0.00001)
+		{
+			//无效的转换
+			return;
+		}
+
+		int n_num = (int)d_num;
+
+		CSpeech::SpeakInt(n_num);
+
+		path = CSystem::GetProgramDir() + L"\\music\\point.wav";
+		PlaySound(path.c_str(), NULL, SND_FILENAME | SND_SYNC);
+
+		//准备读小数部分
+		int nPos = num.find(".");
+		std::string s_xiaoshu = num.substr(nPos + 1);
+
+		for (size_t i = 0; i < s_xiaoshu.length(); i++)
+		{
+			int n = atoi(s_xiaoshu.substr(i, 1).c_str());
+
+			CSpeech::SpeakInt(n);
+		}
+	}
+
+	path = CSystem::GetProgramDir() + L"\\music\\yuan.wav";
+	PlaySound(path.c_str(), NULL, SND_FILENAME | SND_SYNC);
+}

+ 15 - 27
zhipuzi_pay_plugin/helper/CSpeech.h

@@ -10,36 +10,24 @@
 class CSpeech
 {
 public:
-	CSpeech();
-	~CSpeech();
+    CSpeech();
+    ~CSpeech();
 
-	static void MSSSpeak(LPCTSTR speakContent)// speakContent为LPCTSTR型的字符串,调用此函数即可将文字转为语音
-	{
-		ISpVoice *pVoice = NULL;
+	// speakContent为LPCTSTR型的字符串,调用此函数即可将文字转为语音
+	static void MSSSpeak(LPCTSTR speakContent);
 
-		//初始化COM接口
+	static void SpeakIntXiaoyuWan(int new_num, bool is_after_wan = false);
 
-		if (FAILED(::CoInitialize(NULL)))
-			MessageBox(NULL, (LPCWSTR)L"COM接口初始化失败!", (LPCWSTR)L"提示", MB_ICONWARNING | MB_CANCELTRYCONTINUE | MB_DEFBUTTON2);
+	/*
+	 *读一个整数
+	 **/
+	static void SpeakInt(int num);
 
-		//获取SpVoice接口
-
-		HRESULT hr = CoCreateInstance(CLSID_SpVoice, NULL, CLSCTX_ALL, IID_ISpVoice, (void**)&pVoice);
-
-
-		if (SUCCEEDED(hr))
-		{
-			pVoice->SetVolume((USHORT)100); //设置音量,范围是 0 -100
-			pVoice->SetRate(2); //设置速度,范围是 -10 - 10
-			hr = pVoice->Speak(speakContent, 0, NULL);
-
-			pVoice->Release();
-
-			pVoice = NULL;
-		}
-
-		//释放com资源
-		::CoUninitialize();
-	}
+    /*
+     *把数字拆解成一个个的读音,调用wav文件播放
+     *voice_type 1:收款成功 2:退款成功
+     *num 金额,比如18.23
+     **/
+	static void SpeakNum(int voice_type, std::string num);
 };
 

+ 10 - 0
zhipuzi_pay_plugin/wnd/CJiaobanWnd.cpp

@@ -504,4 +504,14 @@ void CJiaobanWnd::ShowError(bool is_show, std::wstring msg)
 
 		errorLayout->SetVisible(false);
 	}
+}
+
+bool CJiaobanWnd::IsCanClose()
+{
+	if (m_is_query)
+	{
+		return false;
+	}
+
+	return true;
 }

+ 2 - 1
zhipuzi_pay_plugin/wnd/CJiaobanWnd.h

@@ -89,6 +89,8 @@ public:
 
 	void ShowError(bool is_show, std::wstring msg = L"");
 
+	bool IsCanClose();
+
 public:
 	CPaintManagerUI m_pm;
 
@@ -104,4 +106,3 @@ private:
 
 	bool m_is_work;
 };
-

+ 10 - 0
zhipuzi_pay_plugin/wnd/CJiaoyihuizongWnd.cpp

@@ -385,4 +385,14 @@ void CJiaoyihuizongWnd::ShowError(bool is_show, std::wstring msg)
 
 		errorLayout->SetVisible(false);
 	}
+}
+
+bool CJiaoyihuizongWnd::IsCanClose()
+{
+	if (m_is_query)
+	{
+		return false;
+	}
+
+	return true;
 }

+ 2 - 0
zhipuzi_pay_plugin/wnd/CJiaoyihuizongWnd.h

@@ -78,6 +78,8 @@ public:
 
 	void ShowError(bool is_show, std::wstring msg = L"");
 
+	bool IsCanClose();
+
 public:
 	CPaintManagerUI m_pm;
 

+ 10 - 0
zhipuzi_pay_plugin/wnd/CJiaoyijiluWnd.cpp

@@ -439,4 +439,14 @@ void CJiaoyijiluWnd::ShowError(bool is_show, std::wstring msg)
 	{
 		errorLayout->SetVisible(false);
 	}
+}
+
+bool CJiaoyijiluWnd::IsCanClose()
+{
+	if (m_is_query)
+	{
+		return false;
+	}
+
+	return true;
 }

+ 2 - 0
zhipuzi_pay_plugin/wnd/CJiaoyijiluWnd.h

@@ -78,6 +78,8 @@ public:
 
 	void ShowError(bool is_show, std::wstring msg = L"");
 
+	bool IsCanClose();
+
 public:
 	CPaintManagerUI m_pm;
 

+ 16 - 9
zhipuzi_pay_plugin/wnd/CShoukuanWnd.cpp

@@ -12,9 +12,6 @@
 void CShoukuanWnd::Init()
 {
 	::SetWindowPos(m_hWnd, HWND_TOPMOST, 0, 0, 0, 0, SWP_NOSIZE | SWP_NOMOVE | SWP_NOACTIVATE);
-
-
-	//CSpeech::MSSSpeak(L"欢迎使用智铺子收银插件!");
 }
 
 void CShoukuanWnd::Notify(TNotifyUI& msg)
@@ -435,12 +432,8 @@ LRESULT CShoukuanWnd::OnShoukuanSuccess(UINT uMsg, WPARAM wParam, LPARAM lParam,
 		m_valueWnd->PrintZhifu(m_out_trade_no);
 	}
 
-	wstring path = CSystem::GetProgramDir() + L"\\music\\pay_success.wav";
-
-	if (CSetting::GetParam("shoukuan_setting_yuyinbobao") == "1")
-	{
-		PlaySound(path.c_str(), NULL, SND_FILENAME | SND_ASYNC);
-	}
+	//播放收款成功的金额
+	std::thread(&CShoukuanWnd::ReadShoukuanValue, this).detach();
 
 	CVerticalLayoutUI* paying_layout = static_cast<CVerticalLayoutUI*>(m_pm.FindControl(_T("shoukuan_paying_layout")));
 	paying_layout->SetVisible(false);
@@ -935,3 +928,17 @@ void CShoukuanWnd::HandleCancelShoukuan()
 	SendMessage(WM_SHOUKUAN_STATUS_FAIL, 0, 0);
 }
 
+bool CShoukuanWnd::IsCanClose()
+{
+	if (m_shoukuan_status == 0 || m_shoukuan_status == 3 || m_shoukuan_status == 4)
+	{
+		return true;
+	}
+
+	return false;
+}
+
+void CShoukuanWnd::ReadShoukuanValue()
+{
+	CSpeech::SpeakNum(true, CLewaimaiString::UnicodeToUTF8(m_money));
+}

+ 4 - 0
zhipuzi_pay_plugin/wnd/CShoukuanWnd.h

@@ -90,6 +90,10 @@ public:
 	//´¦ÀíÈ¡ÏûÊÕ¿î
 	void HandleCancelShoukuan();
 
+	bool IsCanClose();
+
+	void ReadShoukuanValue();
+
 public:
 	CPaintManagerUI m_pm;
 

+ 10 - 0
zhipuzi_pay_plugin/wnd/CTuikuanWnd.cpp

@@ -746,3 +746,13 @@ void CTuikuanWnd::HandleTuikuanPassword()
 		}
 	}
 }
+
+bool CTuikuanWnd::IsCanClose()
+{
+	if (m_tuikuan_status == 0)
+	{
+		return true;
+	}
+
+	return false;
+}

+ 2 - 0
zhipuzi_pay_plugin/wnd/CTuikuanWnd.h

@@ -80,6 +80,8 @@ public:
 	//´¦ÀíÊÕ¿îµÄÃÜÂë²éѯ
 	void HandleTuikuanPassword();
 
+	bool IsCanClose();
+
 public:
 	CPaintManagerUI m_pm;
 

+ 25 - 0
zhipuzi_pay_plugin/wnd/CValueWnd.cpp

@@ -767,6 +767,11 @@ void CValueWnd::ShowShoukuan()
 
 void CValueWnd::CloseShoukuan(bool isSuccess)
 {
+	if (m_shoukuanWnd->IsCanClose() == false)
+	{
+		return;
+	}
+
 	m_is_show_shoukuan = false;
 
 	m_shoukuanWnd->Close();
@@ -882,6 +887,11 @@ void CValueWnd::ShowTuikuan()
 
 void CValueWnd::CloseTuikuan()
 {
+	if (m_tuikuanWnd->IsCanClose() == false)
+	{
+		return;
+	}
+
 	m_is_show_tuikuan = false;
 
 	m_tuikuanWnd->Close();
@@ -1064,6 +1074,11 @@ void CValueWnd::ShowJiaoyijilu()
 
 void CValueWnd::CloseJiaoyijilu()
 {
+	if (m_jiaoyijiluWnd->IsCanClose() == false)
+	{
+		return;
+	}
+
 	m_is_show_jiaoyijilu = false;
 
 	m_jiaoyijiluWnd->Close();
@@ -1097,6 +1112,11 @@ void CValueWnd::ShowJiaoyihuizong()
 
 void CValueWnd::CloseJiaoyihuizong()
 {
+	if (m_jiaoyihuizongWnd->IsCanClose() == false)
+	{
+		return;
+	}
+
 	m_is_show_jiaoyihuizong = false;
 
 	m_jiaoyihuizongWnd->Close();
@@ -1132,6 +1152,11 @@ void CValueWnd::ShowJiaoban()
 
 void CValueWnd::CloseJiaoban()
 {
+	if (m_jiaobanWnd->IsCanClose() == false)
+	{
+		return;
+	}
+
 	m_is_show_jiaoban = false;
 
 	m_jiaobanWnd->Close();