Commit ca1a0fb125d35ddf0a75ab4e7e67e0986daf6ddb
1 parent
40a8bc32
feat(etrade_card_client):修改卡片升级提示方式
修改卡片升级提示方式,在客户端菜单栏上实现卡片升级提示。
Showing
13 changed files
with
215 additions
and
98 deletions
etrade_card_client/ETradeClient.rc
... | ... | @@ -231,6 +231,14 @@ BEGIN |
231 | 231 | CONTROL "ÐÂÖÐеç×Ó¶Á¿¨Æ÷",IDC_RADIO_XINZHONGXIN,"Button",BS_AUTORADIOBUTTON | WS_TABSTOP,174,186,71,10 |
232 | 232 | END |
233 | 233 | |
234 | +IDD_DIALOG_NOTICEWND DIALOGEX 0, 0, 310, 176 | |
235 | +STYLE DS_SETFONT | DS_FIXEDSYS | WS_CHILD | WS_SYSMENU | |
236 | +FONT 8, "MS Shell Dlg", 400, 0, 0x1 | |
237 | +BEGIN | |
238 | + EDITTEXT IDC_EDIT_NOTICE,122,52,40,14,ES_AUTOHSCROLL | ES_READONLY | NOT WS_BORDER | |
239 | + EDITTEXT IDC_EDIT_NOTICE_MARK,120,98,40,14,ES_AUTOHSCROLL | ES_READONLY | NOT WS_BORDER | |
240 | +END | |
241 | + | |
234 | 242 | |
235 | 243 | ///////////////////////////////////////////////////////////////////////////// |
236 | 244 | // |
... | ... | @@ -298,6 +306,14 @@ BEGIN |
298 | 306 | TOPMARGIN, 7 |
299 | 307 | BOTTOMMARGIN, 248 |
300 | 308 | END |
309 | + | |
310 | + IDD_DIALOG_NOTICEWND, DIALOG | |
311 | + BEGIN | |
312 | + LEFTMARGIN, 7 | |
313 | + RIGHTMARGIN, 303 | |
314 | + TOPMARGIN, 7 | |
315 | + BOTTOMMARGIN, 169 | |
316 | + END | |
301 | 317 | END |
302 | 318 | #endif // APSTUDIO_INVOKED |
303 | 319 | ... | ... |
etrade_card_client/ETradeClient.vcxproj
... | ... | @@ -127,6 +127,8 @@ |
127 | 127 | <ClInclude Include="ETradeClient\hardware\password_machine.h" /> |
128 | 128 | <ClInclude Include="ETradeClient\hardware\pin_pad.h" /> |
129 | 129 | <ClInclude Include="ETradeClient\hardware\SynPublic.h" /> |
130 | + <ClInclude Include="ETradeClient\mfc_ui\ETNoticeEdit.h" /> | |
131 | + <ClInclude Include="ETradeClient\mfc_ui\ETNoticeWnd.h" /> | |
130 | 132 | <ClInclude Include="ETradeClient\mfc_ui\ETradeClient.h" /> |
131 | 133 | <ClInclude Include="ETradeClient\mfc_ui\ETradeClientView.h" /> |
132 | 134 | <ClInclude Include="ETradeClient\mfc_ui\LoginDialog.h" /> |
... | ... | @@ -169,6 +171,8 @@ |
169 | 171 | <ClCompile Include="ETradeClient\hardware\id_card_reader.cpp" /> |
170 | 172 | <ClCompile Include="ETradeClient\hardware\password_machine.cpp" /> |
171 | 173 | <ClCompile Include="ETradeClient\hardware\pin_pad.cpp" /> |
174 | + <ClCompile Include="ETradeClient\mfc_ui\ETNoticeEdit.cpp" /> | |
175 | + <ClCompile Include="ETradeClient\mfc_ui\ETNoticeWnd.cpp" /> | |
172 | 176 | <ClCompile Include="ETradeClient\mfc_ui\ETradeClient.cpp" /> |
173 | 177 | <ClCompile Include="ETradeClient\mfc_ui\ETradeClientView.cpp" /> |
174 | 178 | <ClCompile Include="ETradeClient\mfc_ui\LoginDialog.cpp" /> | ... | ... |
etrade_card_client/ETradeClient.vcxproj.filters
... | ... | @@ -183,6 +183,12 @@ |
183 | 183 | <ClInclude Include="ETradeClient\utility\ETTimeManage.h"> |
184 | 184 | <Filter>Header Files\utility</Filter> |
185 | 185 | </ClInclude> |
186 | + <ClInclude Include="ETradeClient\mfc_ui\ETNoticeWnd.h"> | |
187 | + <Filter>Header Files\mfc_ui</Filter> | |
188 | + </ClInclude> | |
189 | + <ClInclude Include="ETradeClient\mfc_ui\ETNoticeEdit.h"> | |
190 | + <Filter>Header Files\mfc_ui</Filter> | |
191 | + </ClInclude> | |
186 | 192 | </ItemGroup> |
187 | 193 | <ItemGroup> |
188 | 194 | <ClCompile Include="stdafx.cpp"> |
... | ... | @@ -290,6 +296,12 @@ |
290 | 296 | <ClCompile Include="ETradeClient\utility\ETTimeManage.cpp"> |
291 | 297 | <Filter>Source Files\utility</Filter> |
292 | 298 | </ClCompile> |
299 | + <ClCompile Include="ETradeClient\mfc_ui\ETNoticeWnd.cpp"> | |
300 | + <Filter>Source Files\mfc_ui</Filter> | |
301 | + </ClCompile> | |
302 | + <ClCompile Include="ETradeClient\mfc_ui\ETNoticeEdit.cpp"> | |
303 | + <Filter>Source Files\mfc_ui</Filter> | |
304 | + </ClCompile> | |
293 | 305 | </ItemGroup> |
294 | 306 | <ItemGroup> |
295 | 307 | <ResourceCompile Include="ETradeClient.rc"> | ... | ... |
etrade_card_client/ETradeClient/browser/async_js_callback_handler.cpp
... | ... | @@ -112,7 +112,7 @@ namespace HW |
112 | 112 | |
113 | 113 | HardwareCmd::Reply reply = m_hw_cmd_map.at(hw_req.cmd + hw_req.file_id).Execute(hw_req.data); |
114 | 114 | std::string answer = ""; |
115 | - if (boost::iequals(OK, reply.error_code) || boost::iequals("309", reply.error_code)) // Succeed. | |
115 | + if (boost::iequals(OK, reply.error_code)) // Succeed. | |
116 | 116 | answer = hw_req.cmd + "_ack"; |
117 | 117 | else |
118 | 118 | answer = hw_req.cmd + "_failed"; | ... | ... |
etrade_card_client/ETradeClient/hardware/hardware_cmd.cpp
... | ... | @@ -20,6 +20,7 @@ |
20 | 20 | #include "ETradeClient/utility/DLBmpManager.h" |
21 | 21 | #include "ETradeClient/utility/string_converter.h" |
22 | 22 | #include "ETradeClient/utility/DLDes.h" |
23 | +#include "ETradeClient/utility/win_msg_define.h" | |
23 | 24 | |
24 | 25 | namespace StatusCode |
25 | 26 | { |
... | ... | @@ -44,7 +45,6 @@ namespace StatusCode |
44 | 45 | static const std::string DILI_CARD_DEVICE_WRITE_SERVICE_INFO_FAILED = "306"; // 写入卡片业务信息失败. |
45 | 46 | static const std::string DILI_CARD_DEVICE_WRITE_UNMATCHED_CARD = "307"; // 写卡卡片的序列号不匹配. |
46 | 47 | static const std::string DILI_CARD_DEVICE_NEED_UPDATE_CAN_NOT_USE = "308"; //卡片需要升级,请升级后继续使用。 |
47 | - static const std::string DILI_CARD_DEVICE_NEED_UPDATE_CAN_USE = "309"; //卡片需要升级。 | |
48 | 48 | |
49 | 49 | static const std::string PWD_MACHINE_CONNECT_FAILED = "401"; // 连接加密机失败. |
50 | 50 | static const std::string PWD_MACHINE_GET_KEY_FAILED = "402"; // 从加密机读取密钥失败. |
... | ... | @@ -879,15 +879,16 @@ ReadPINPadCmd::Reply ReadDILICardBasicInfoCmd::Execute(const std::string& input) |
879 | 879 | if (dili_card_device.NeedCreateFile()) |
880 | 880 | { |
881 | 881 | LOG_FATAL(L"卡片需要升级!"); |
882 | - reply.error_code = StatusCode::DILI_CARD_DEVICE_NEED_UPDATE_CAN_USE; | |
883 | 882 | //启动卡片升级程序 add by liuye |
884 | 883 | ShellExecute(NULL, L"open", L".\\DLCardTool.exe", NULL, NULL, SW_SHOW); |
885 | 884 | // |
885 | + HWND hWindow = (HWND)GetActiveWindow(); // The frame window will be the parent of the browser window. | |
886 | + ::SendMessage(hWindow, WM_UI_CARD_UPDATA, NULL, NULL); | |
886 | 887 | } |
887 | 888 | |
888 | 889 | } while (0); |
889 | 890 | dili_card_device.Disconnect(); |
890 | - if (boost::iequals(reply.error_code, StatusCode::OK) || boost::iequals(reply.error_code, StatusCode::DILI_CARD_DEVICE_NEED_UPDATE_CAN_USE)) | |
891 | + if (boost::iequals(reply.error_code, StatusCode::OK)) | |
891 | 892 | LOG_TRACE(L"读取卡片基本信息成功。"); |
892 | 893 | |
893 | 894 | reply.data.put("chipNo", card_basic_info.chip_num); | ... | ... |
etrade_card_client/ETradeClient/mfc_ui/ETNoticeEdit.cpp
0 → 100644
1 | +// ETNoticeEdit.cpp : ʵÏÖÎļþ | |
2 | +// | |
3 | + | |
4 | +#include "stdafx.h" | |
5 | +#include "ETNoticeEdit.h" | |
6 | + | |
7 | + | |
8 | +// CETNoticeEdit | |
9 | + | |
10 | +IMPLEMENT_DYNAMIC(CETNoticeEdit, CEdit) | |
11 | + | |
12 | +CETNoticeEdit::CETNoticeEdit() | |
13 | +:m_pFont(NULL) | |
14 | +{ | |
15 | +} | |
16 | + | |
17 | +CETNoticeEdit::~CETNoticeEdit() | |
18 | +{ | |
19 | +} | |
20 | + | |
21 | + | |
22 | +BEGIN_MESSAGE_MAP(CETNoticeEdit, CEdit) | |
23 | + ON_WM_PAINT() | |
24 | +END_MESSAGE_MAP() | |
25 | + | |
26 | + | |
27 | + | |
28 | +// CETNoticeEdit ÏûÏ¢´¦Àí³ÌÐò | |
29 | +void CETNoticeEdit::OnPaint() | |
30 | +{ | |
31 | + CPaintDC dc(this); // device context for painting | |
32 | + | |
33 | + CRect rtClient; | |
34 | + GetClientRect(&rtClient); | |
35 | + | |
36 | + if (m_pFont) | |
37 | + { | |
38 | + dc.SelectObject(m_pFont); | |
39 | + } | |
40 | + | |
41 | + dc.SetTextColor(RGB(255, 0, 0)); | |
42 | + | |
43 | + CString sText; | |
44 | + GetWindowText(sText); | |
45 | + dc.DrawText(sText, rtClient, DT_SINGLELINE | DT_LEFT | DT_VCENTER); | |
46 | + | |
47 | + __super::OnPaint(); | |
48 | +} | |
49 | + | |
50 | +void CETNoticeEdit::SetTextFont(CFont *pFont /* = NULL */) | |
51 | +{ | |
52 | + m_pFont = pFont; | |
53 | +} | |
54 | + | |
55 | + | ... | ... |
etrade_card_client/ETradeClient/mfc_ui/ETNoticeEdit.h
0 → 100644
1 | +#pragma once | |
2 | +#include "resource.h" | |
3 | + | |
4 | + | |
5 | +// CETNoticeEdit | |
6 | + | |
7 | +class CETNoticeEdit : public CEdit | |
8 | +{ | |
9 | + DECLARE_DYNAMIC(CETNoticeEdit) | |
10 | + | |
11 | +public: | |
12 | + CETNoticeEdit(); | |
13 | + virtual ~CETNoticeEdit(); | |
14 | + | |
15 | +protected: | |
16 | + DECLARE_MESSAGE_MAP() | |
17 | +public: | |
18 | + afx_msg void OnPaint(); | |
19 | + void SetTextFont(CFont *pFont = NULL); | |
20 | +private: | |
21 | + CFont *m_pFont; | |
22 | +}; | |
23 | + | |
24 | + | ... | ... |
etrade_card_client/ETradeClient/mfc_ui/ETNoticeWnd.cpp
... | ... | @@ -14,8 +14,6 @@ IMPLEMENT_DYNAMIC(CETNoticeWnd, CDialogEx) |
14 | 14 | |
15 | 15 | CETNoticeWnd::CETNoticeWnd(CWnd* pParent /*=NULL*/) |
16 | 16 | : CDialogEx(CETNoticeWnd::IDD, pParent), |
17 | - m_iTimerID(0), m_iCurPos(0), | |
18 | - m_iDelayTime(0), m_iIntervalTime(0), | |
19 | 17 | m_sText(_T("")) |
20 | 18 | { |
21 | 19 | |
... | ... | @@ -28,16 +26,14 @@ CETNoticeWnd::~CETNoticeWnd() |
28 | 26 | void CETNoticeWnd::DoDataExchange(CDataExchange* pDX) |
29 | 27 | { |
30 | 28 | CDialogEx::DoDataExchange(pDX); |
31 | - //DDX_Control(pDX, IDC_EDIT_NOTICE, m_editNotice); | |
29 | + DDX_Control(pDX, IDC_EDIT_NOTICE, m_editNotice); | |
30 | + DDX_Control(pDX, IDC_EDIT_NOTICE_MARK, m_editMark); | |
32 | 31 | } |
33 | 32 | |
34 | 33 | |
35 | 34 | BEGIN_MESSAGE_MAP(CETNoticeWnd, CDialogEx) |
36 | - ON_WM_TIMER() | |
37 | 35 | ON_WM_HSCROLL() |
38 | - ON_WM_PAINT() | |
39 | 36 | ON_WM_SIZE() |
40 | - ON_WM_CTLCOLOR() | |
41 | 37 | END_MESSAGE_MAP() |
42 | 38 | |
43 | 39 | |
... | ... | @@ -56,28 +52,12 @@ void CETNoticeWnd::SetWindowText(CString sText) |
56 | 52 | ShowWindow(SW_SHOW); |
57 | 53 | m_sText = sText; |
58 | 54 | ReSizeEdit(); |
59 | - if (m_iTimerID == 0) | |
60 | - { | |
61 | - m_iTimerID = 1; | |
62 | - SetTimer(m_iTimerID, 100, NULL); | |
63 | - } | |
64 | 55 | } |
65 | 56 | } |
66 | 57 | |
67 | 58 | void CETNoticeWnd::CloseNoticeWnd() |
68 | 59 | { |
69 | 60 | m_editNotice.SetWindowText(_T("")); |
70 | - ReSetState(); | |
71 | - if (m_iTimerID != 0) | |
72 | - { | |
73 | - KillTimer(m_iTimerID); | |
74 | - } | |
75 | -} | |
76 | - | |
77 | -void CETNoticeWnd::ReSetState() | |
78 | -{ | |
79 | - m_iCurPos = 0; | |
80 | - m_iDelayTime = 0; | |
81 | 61 | } |
82 | 62 | |
83 | 63 | BOOL CETNoticeWnd::OnInitDialog() |
... | ... | @@ -88,14 +68,29 @@ BOOL CETNoticeWnd::OnInitDialog() |
88 | 68 | m_editNotice.SetWindowPos(&wndTop, 0, 0, 0, 0, SWP_NOMOVE | SWP_NOSIZE); |
89 | 69 | ReSizeEdit(); |
90 | 70 | |
91 | - m_fontText.CreatePointFont(120, _T("微软雅黑")); | |
71 | + m_fontText.CreatePointFont(100, _T("微软雅黑")); | |
92 | 72 | m_editNotice.SetTextFont(&m_fontText); |
93 | 73 | |
94 | - m_iIntervalTime = 100; //设置计时器间隔时间,单位毫秒 | |
95 | 74 | |
96 | - m_editNotice.EnableWindow(FALSE); | |
75 | + m_fontMark.CreateFont(100, // nHeight | |
76 | + 0, // nWidth | |
77 | + 0, // nEscapement | |
78 | + 0, // nOrientation | |
79 | + FW_BOLD, // nWeight | |
80 | + FALSE, // bItalic | |
81 | + FALSE, // bUnderline | |
82 | + 0, // cStrikeOut | |
83 | + ANSI_CHARSET, // nCharSet | |
84 | + OUT_DEFAULT_PRECIS, // nOutPrecision | |
85 | + CLIP_DEFAULT_PRECIS, // nClipPrecision | |
86 | + DEFAULT_QUALITY, // nQuality | |
87 | + DEFAULT_PITCH | FF_SWISS, // nPitchAndFamily | |
88 | + NULL); // lpszFac | |
89 | + m_editMark.SetFont(&m_fontMark); | |
90 | + m_editMark.SetWindowText(L"!"); | |
97 | 91 | |
98 | - m_brushBKG.CreateSolidBrush(RGB(255, 0, 0)); | |
92 | + m_editNotice.EnableWindow(FALSE); | |
93 | + m_editMark.EnableWindow(FALSE); | |
99 | 94 | |
100 | 95 | return TRUE; // return TRUE unless you set the focus to a control |
101 | 96 | // 异常: OCX 属性页应返回 FALSE |
... | ... | @@ -103,57 +98,18 @@ BOOL CETNoticeWnd::OnInitDialog() |
103 | 98 | |
104 | 99 | void CETNoticeWnd::ReSizeEdit() |
105 | 100 | { |
106 | - ReSetState(); | |
107 | - | |
108 | 101 | CPaintDC dc(this); |
109 | 102 | dc.SelectObject(m_fontText); |
110 | 103 | |
111 | 104 | CSize szText = dc.GetTextExtent(m_sText); |
112 | 105 | CRect rtClient; |
113 | 106 | GetClientRect(&rtClient); |
114 | - m_editNotice.MoveWindow(rtClient.left, rtClient.Height() / 2 - szText.cy / 2, szText.cx, szText.cy); | |
115 | -} | |
116 | - | |
117 | -void CETNoticeWnd::OnTimer(UINT_PTR nIDEvent) | |
118 | -{ | |
119 | - if (m_iDelayTime < 3000) | |
120 | - { | |
121 | - m_iDelayTime += m_iIntervalTime; | |
122 | - return; | |
123 | - } | |
124 | - CRect rtEdit; | |
125 | - m_editNotice.GetWindowRect(&rtEdit); | |
126 | - ScreenToClient(&rtEdit); | |
127 | - if (m_iCurPos < (0 - rtEdit.Width())) | |
128 | - { | |
129 | - CRect rtClient; | |
130 | - GetClientRect(&rtClient); | |
131 | - int iMoveDistance = rtClient.Width() + rtEdit.Width(); | |
132 | - ScrollWindow(iMoveDistance, 0); | |
133 | - m_iCurPos += iMoveDistance; | |
134 | - } | |
135 | - else | |
136 | - { | |
137 | - ScrollWindow(SCROLLSPEED, 0); | |
138 | - m_iCurPos += SCROLLSPEED; | |
139 | - } | |
140 | - | |
141 | - CDialogEx::OnTimer(nIDEvent); | |
142 | -} | |
143 | - | |
144 | - | |
145 | -void CETNoticeWnd::OnPaint() | |
146 | -{ | |
147 | - CPaintDC dc(this); // device context for painting | |
107 | + m_editNotice.MoveWindow(rtClient.right - szText.cx, rtClient.Height() / 2 - szText.cy / 2 - 1, szText.cx, szText.cy); | |
148 | 108 | |
149 | - //CRect rtClient; | |
150 | - //GetClientRect(&rtClient); | |
151 | - //dc.FillSolidRect(rtClient, RGB(255, 0, 0)); //设置为红色背景 | |
152 | - | |
153 | - CDialogEx::OnPaint(); | |
109 | + const int kMarkWidth = 10; | |
110 | + m_editMark.MoveWindow(rtClient.right - szText.cx - kMarkWidth - 1, rtClient.Height() / 2 - szText.cy / 2 - 1, kMarkWidth, szText.cy); | |
154 | 111 | } |
155 | 112 | |
156 | - | |
157 | 113 | void CETNoticeWnd::OnSize(UINT nType, int cx, int cy) |
158 | 114 | { |
159 | 115 | CDialogEx::OnSize(nType, cx, cy); |
... | ... | @@ -162,13 +118,3 @@ void CETNoticeWnd::OnSize(UINT nType, int cx, int cy) |
162 | 118 | } |
163 | 119 | |
164 | 120 | |
165 | - | |
166 | - | |
167 | - | |
168 | - | |
169 | -HBRUSH CETNoticeWnd::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor) | |
170 | -{ | |
171 | - HBRUSH hbr = CDialogEx::OnCtlColor(pDC, pWnd, nCtlColor); | |
172 | - | |
173 | - return m_brushBKG; | |
174 | -} | ... | ... |
etrade_card_client/ETradeClient/mfc_ui/ETNoticeWnd.h
... | ... | @@ -27,21 +27,12 @@ public: |
27 | 27 | void ReSizeEdit(); |
28 | 28 | |
29 | 29 | private: |
30 | - void ReSetState(); | |
31 | - | |
32 | -private: | |
33 | 30 | CETNoticeEdit m_editNotice; |
34 | - int m_iTimerID; | |
35 | - int m_iCurPos; | |
31 | + CETNoticeEdit m_editMark; | |
36 | 32 | CString m_sText; |
37 | - int m_iDelayTime; | |
38 | - int m_iIntervalTime; | |
39 | 33 | CFont m_fontText; |
40 | - CBrush m_brushBKG; | |
34 | + CFont m_fontMark; | |
41 | 35 | public: |
42 | 36 | virtual BOOL OnInitDialog(); |
43 | - afx_msg void OnTimer(UINT_PTR nIDEvent); | |
44 | - afx_msg void OnPaint(); | |
45 | 37 | afx_msg void OnSize(UINT nType, int cx, int cy); |
46 | - afx_msg HBRUSH OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor); | |
47 | 38 | }; | ... | ... |
etrade_card_client/ETradeClient/mfc_ui/MainFrm.cpp
... | ... | @@ -38,6 +38,9 @@ |
38 | 38 | |
39 | 39 | namespace fs = boost::filesystem; |
40 | 40 | |
41 | +const int NOTICEEDIT_LEFTSPACE = 5; | |
42 | +const int NOTICEEDTT_RIGHTSPACE = 5; | |
43 | + | |
41 | 44 | namespace |
42 | 45 | { |
43 | 46 | static const uint32_t MENU_ICON_WIDTH = 32, MENU_ICON_HEIGHT = 32; |
... | ... | @@ -98,6 +101,8 @@ BEGIN_MESSAGE_MAP(CMainFrame, CFrameWnd) |
98 | 101 | ON_WM_TIMER() |
99 | 102 | |
100 | 103 | ON_MESSAGE(WM_TIME_TICK, UpdateTime) |
104 | + ON_WM_SIZE() | |
105 | + ON_MESSAGE(WM_UI_CARD_UPDATA, ShowCardUpdataText) | |
101 | 106 | END_MESSAGE_MAP() |
102 | 107 | |
103 | 108 | static UINT indicators[] = |
... | ... | @@ -212,6 +217,8 @@ int CMainFrame::OnCreate(LPCREATESTRUCT lpCreateStruct) |
212 | 217 | break; |
213 | 218 | if (!CreateMainFrmUI()) |
214 | 219 | break; |
220 | + if (!CreateNoticeEdit()) | |
221 | + break; | |
215 | 222 | |
216 | 223 | AfxBeginThread(TimeTick, this);//这个级别高一点,用来更新时间 |
217 | 224 | SetTimer(1, 60000, NULL);//这个级别低一点,用来从服务器获取时间 |
... | ... | @@ -827,6 +834,11 @@ void CMainFrame::OnTimer(UINT_PTR nIDEvent) |
827 | 834 | UINT nIndex = m_status_bar.CommandToIndex(ID_INDICATOR_TIME);//获取时间指示器索引 |
828 | 835 | m_status_bar.SetPaneText(nIndex, sTime); |
829 | 836 | } |
837 | + if (nIDEvent == 2) //更新noticewnd状态 | |
838 | + { | |
839 | + m_dlgNotice.ShowWindow(SW_HIDE); | |
840 | + KillTimer(nIDEvent); | |
841 | + } | |
830 | 842 | |
831 | 843 | CFrameWnd::OnTimer(nIDEvent); |
832 | 844 | } |
... | ... | @@ -843,4 +855,50 @@ LRESULT CMainFrame::UpdateTime(WPARAM wParam, LPARAM lParam) |
843 | 855 | m_status_bar.SetPaneText(nIndex, sTime); |
844 | 856 | |
845 | 857 | return NULL; |
846 | -} | |
847 | 858 | \ No newline at end of file |
859 | +} | |
860 | + | |
861 | +LRESULT CMainFrame::ShowCardUpdataText(WPARAM wParam, LPARAM lParam) | |
862 | +{ | |
863 | + m_dlgNotice.ShowWindow(SW_SHOW); | |
864 | + SetTimer(2, 3000, NULL); | |
865 | + return NULL; | |
866 | +} | |
867 | + | |
868 | +void CMainFrame::SetNoticeEditPos() | |
869 | +{ | |
870 | + CRect rtMenu; | |
871 | + CRect rtButton; | |
872 | + | |
873 | + int iButtonCount = m_quick_access_tlb.GetToolBarCtrl().GetButtonCount(); | |
874 | + m_quick_access_tlb.GetItemRect(iButtonCount - 1, &rtButton); | |
875 | + m_quick_access_tlb.ClientToScreen(&rtButton); | |
876 | + ScreenToClient(&rtButton); | |
877 | + int iNoticeLeft = rtButton.right + NOTICEEDIT_LEFTSPACE; | |
878 | + int iNoticeHeight = rtButton.Height(); | |
879 | + int iNoticeTop = rtButton.top; | |
880 | + | |
881 | + m_ex_func_tlb.GetWindowRect(&rtMenu); | |
882 | + ScreenToClient(&rtMenu); | |
883 | + int iNoticeWidth = rtMenu.left - NOTICEEDTT_RIGHTSPACE - iNoticeLeft/* - SHOPNAMESTATIC_WEIGHT*/; | |
884 | + | |
885 | + m_dlgNotice.MoveWindow(iNoticeLeft, iNoticeTop, iNoticeWidth, iNoticeHeight); | |
886 | + m_dlgNotice.ReSizeEdit(); | |
887 | +} | |
888 | + | |
889 | +bool CMainFrame::CreateNoticeEdit() | |
890 | +{ | |
891 | + m_dlgNotice.Create(IDD_DIALOG_NOTICEWND, this); | |
892 | + m_dlgNotice.ShowWindow(SW_HIDE); | |
893 | + SetNoticeEditPos(); | |
894 | + m_dlgNotice.SetWindowText(L"有新的卡片升级文件,请先进行卡片升级。"); | |
895 | + m_dlgNotice.ShowWindow(SW_HIDE); | |
896 | + | |
897 | + return true; | |
898 | +} | |
899 | + | |
900 | +void CMainFrame::OnSize(UINT nType, int cx, int cy) | |
901 | +{ | |
902 | + CFrameWnd::OnSize(nType, cx, cy); | |
903 | + | |
904 | + SetNoticeEditPos(); | |
905 | +} | ... | ... |
etrade_card_client/ETradeClient/mfc_ui/MainFrm.h
... | ... | @@ -13,6 +13,7 @@ |
13 | 13 | #include "etradeclient/utility/menu_res_auth_mgr.h" |
14 | 14 | |
15 | 15 | #include "etradeclient/utility/ETTimeManage.h" |
16 | +#include "ETNoticeWnd.h" | |
16 | 17 | |
17 | 18 | class CMainFrame : public CFrameWnd |
18 | 19 | { |
... | ... | @@ -101,12 +102,16 @@ private: |
101 | 102 | |
102 | 103 | CETTimeManage m_cTimeManager; |
103 | 104 | |
105 | + CETNoticeWnd m_dlgNotice; | |
104 | 106 | public: |
105 | - afx_msg void OnSize(UINT nType, int cx, int cy); | |
106 | 107 | afx_msg void OnTimer(UINT_PTR nIDEvent); |
107 | 108 | afx_msg LRESULT UpdateTime(WPARAM wParam, LPARAM lParam); |
108 | - | |
109 | + void SetNoticeEditPos(); | |
110 | + bool CreateNoticeEdit(); | |
111 | + | |
112 | + afx_msg LRESULT ShowCardUpdataText(WPARAM wParam, LPARAM lParam); | |
109 | 113 | |
114 | + afx_msg void OnSize(UINT nType, int cx, int cy); | |
110 | 115 | }; |
111 | 116 | |
112 | 117 | ... | ... |
etrade_card_client/ETradeClient/utility/win_msg_define.h
etrade_card_client/resource.h
... | ... | @@ -11,6 +11,7 @@ |
11 | 11 | #define IDD_LOGIN 318 |
12 | 12 | #define IDD_POPUP_BROWSER_VIEW 319 |
13 | 13 | #define IDI_ICON1 324 |
14 | +#define IDD_DIALOG_NOTICEWND 326 | |
14 | 15 | #define IDC_USERNAME 1000 |
15 | 16 | #define IDC_PWD 1001 |
16 | 17 | #define IDC_ACCOUNT_EDIT 1002 |
... | ... | @@ -29,6 +30,9 @@ |
29 | 30 | #define IDC_RADIO_HUASHIDIANZI 1017 |
30 | 31 | #define IDC_RADIO2 1018 |
31 | 32 | #define IDC_RADIO_XINZHONGXIN 1018 |
33 | +#define IDC_EDIT_NOTICE 1018 | |
34 | +#define IDC_EDIT_NOTICE2 1019 | |
35 | +#define IDC_EDIT_NOTICE_MARK 1019 | |
32 | 36 | #define ID_EXIT 32782 |
33 | 37 | #define ID_MODIFY_PASSWORD 32801 |
34 | 38 | #define ID_MODIFY_CONFIG 32807 |
... | ... | @@ -67,9 +71,9 @@ |
67 | 71 | // |
68 | 72 | #ifdef APSTUDIO_INVOKED |
69 | 73 | #ifndef APSTUDIO_READONLY_SYMBOLS |
70 | -#define _APS_NEXT_RESOURCE_VALUE 326 | |
74 | +#define _APS_NEXT_RESOURCE_VALUE 327 | |
71 | 75 | #define _APS_NEXT_COMMAND_VALUE 32829 |
72 | -#define _APS_NEXT_CONTROL_VALUE 1018 | |
76 | +#define _APS_NEXT_CONTROL_VALUE 1019 | |
73 | 77 | #define _APS_NEXT_SYMED_VALUE 311 |
74 | 78 | #endif |
75 | 79 | #endif | ... | ... |