MobileDlg.h 12 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319
  1. // MainDlg.h : interface of the CMobileDlg class
  2. //
  3. /////////////////////////////////////////////////////////////////////////////
  4. #pragma once
  5. #include "mod_MobileDial.h"
  6. #include "ProgressBar.h"
  7. #define WM_TIMER_INVALID 1000
  8. #define WM_TIMER_PROCESS 1001
  9. #define WM_TIMER_CONNECT 1002
  10. #define WM_TIMER_DISCONNECT 1003
  11. #define WM_TIMER_SWITCH 1004
  12. #define WM_TIMER_PROCESS_MAX 1005
  13. #define TIMER_TIMTOUT_MAX 18000
  14. class CMobileDlg;
  15. class CWlanConfigDlg : public ATL::CAxDialogImpl<CWlanConfigDlg>
  16. {
  17. public:
  18. enum {IDD = IDD_DIALOG_MBB_CONFIG};
  19. //enum {IDD = IDD_DIALOG2};
  20. CString m_strLoginUsername;
  21. CString m_strLoginPassword;
  22. CString m_strWlanSSID;
  23. CString m_strWlanPassword;
  24. BOOL m_fHidden;
  25. CWlanConfigDlg(CMobileDlg* pDlg) : m_fHidden(false)
  26. ,m_strLoginUsername(""),m_strLoginPassword("")
  27. ,m_strWlanSSID(""),m_strWlanPassword(""),m_pDlg(pDlg)
  28. {
  29. }
  30. BEGIN_MSG_MAP(CWlanConfigDlg)
  31. MESSAGE_HANDLER(WM_INITDIALOG, OnInitDialog)
  32. COMMAND_ID_HANDLER(IDOK_EX, OnOK)
  33. COMMAND_ID_HANDLER(IDCANCEL_EX, OnCancel)
  34. COMMAND_HANDLER(IDC_CHECK_MBB_LOGIN_PSW, BN_CLICKED, OnBnClickedCheckViewPassword)
  35. COMMAND_HANDLER(IDC_CHECK_MBB_WLAN_PSW, BN_CLICKED, OnBnClickedCheckViewPassword)
  36. END_MSG_MAP()
  37. LRESULT OnInitDialog(UINT /*uMsg*/, WPARAM /*wParam*/, LPARAM /*lParam*/, BOOL& /*bHandled*/);
  38. LRESULT OnOK(WORD /*wNotifyCode*/, WORD wID, HWND /*hWndCtl*/, BOOL& /*bHandled*/)
  39. {
  40. UpdateValue();
  41. EndDialog(wID);
  42. return 0;
  43. }
  44. BOOL HasUpdated(BOOL refresh = TRUE);
  45. LRESULT OnCancel(WORD /*wNotifyCode*/, WORD wID, HWND /*hWndCtl*/, BOOL& /*bHandled*/)
  46. {
  47. EndDialog(wID);
  48. return 0;
  49. }
  50. LRESULT OnBnClickedCheckViewPassword(WORD wNotifyCode, WORD wID, HWND hWndCtl, BOOL& /*bHandled*/)
  51. {
  52. if(wID != IDC_CHECK_MBB_LOGIN_PSW && wID != IDC_CHECK_MBB_WLAN_PSW) {
  53. return 0;
  54. }
  55. CEdit edit = (CEdit)this->GetDlgItem(wID == IDC_CHECK_MBB_LOGIN_PSW ? IDC_EDIT_MBB_LOGIN_PSW : IDC_EDIT_MBB_WLAN_PSW);
  56. if(IsDlgButtonChecked(wID)) {
  57. edit.SetPasswordChar(0);
  58. } else {
  59. edit.SetPasswordChar('*');
  60. }
  61. edit.RedrawWindow();
  62. return 0;
  63. }
  64. private:
  65. void UpdateValue() {
  66. int nLen = 0;
  67. {
  68. CEdit edit = GetDlgItem(IDC_EDIT_MBB_LOGIN_USERNAME);
  69. nLen = edit.GetWindowTextLength();
  70. edit.GetWindowText(m_strLoginUsername.GetBuffer(nLen), nLen + 1);
  71. m_strLoginUsername.ReleaseBuffer();
  72. }
  73. {
  74. CEdit edit = GetDlgItem(IDC_EDIT_MBB_LOGIN_PSW);
  75. nLen = edit.GetWindowTextLength();
  76. edit.GetWindowText(m_strLoginPassword.GetBuffer(nLen), nLen + 1);
  77. m_strLoginPassword.ReleaseBuffer();
  78. }
  79. {
  80. CEdit edit = GetDlgItem(IDC_EDIT_MBB_WLAN_SSID);
  81. nLen = edit.GetWindowTextLength();
  82. edit.GetWindowText(m_strWlanSSID.GetBuffer(nLen), nLen + 1);
  83. m_strWlanSSID.ReleaseBuffer();
  84. }
  85. {
  86. CEdit edit = GetDlgItem(IDC_EDIT_MBB_WLAN_PSW);
  87. nLen = edit.GetWindowTextLength();
  88. edit.GetWindowText(m_strWlanPassword.GetBuffer(nLen), nLen + 1);
  89. m_strWlanPassword.ReleaseBuffer();
  90. }
  91. CButton btnCheck = GetDlgItem(IDC_CHECK_WLAN_HIDDEN);
  92. m_fHidden = (btnCheck.GetCheck() != 0);
  93. }
  94. CMobileDlg* m_pDlg;
  95. };
  96. class CMobileDlg : public ATL::CAxDialogImpl<CMobileDlg>, public CWinDataExchange<CMobileDlg>
  97. {
  98. public:
  99. enum { IDD = IDD_MAINDLG };
  100. CMobileDlg(CMobileDialEntity* pEntity); // standard constructor
  101. ~CMobileDlg();
  102. BEGIN_DDX_MAP(CMobileDlg)
  103. //DDX_CONTROL_HANDLE(IDC_EDIT_USER, m_edtUser)
  104. DDX_TEXT(IDC_EDIT_USER, m_strUserName)
  105. //DDX_CONTROL_HANDLE(IDC_EDIT_PASSWORD, m_edtPassword)
  106. DDX_TEXT(IDC_EDIT_PASSWORD, m_strPassword)
  107. //DDX_TEXT(IDC_EDIT_PROFILE, m_strProfileDesc)
  108. DDX_TEXT(IDC_EDIT_PHONENUM, m_strPhoneNum)
  109. DDX_CONTROL_HANDLE(IDC_EDIT_APN, m_edtAPN)
  110. DDX_CONTROL_HANDLE(IDC_BUTTON_CONNECT, m_btnConnect)
  111. DDX_CONTROL_HANDLE(IDC_BUTTON_EXPAND, m_btnExpand)
  112. DDX_CONTROL_HANDLE(IDC_BUTTON_CLEAR, m_btnClear)
  113. DDX_CONTROL_HANDLE(IDC_CHECK_APN_APPLY, m_btnApply)
  114. DDX_CONTROL_HANDLE(IDC_CHECK_MNTBYRVC, m_btnAutoManage)
  115. DDX_CONTROL_HANDLE(IDC_COMBO_PROFILES, m_comboProfiles)
  116. DDX_CONTROL_HANDLE(IDC_COMBO_GTYPE, m_comboCntType)
  117. DDX_CONTROL_HANDLE(IDC_COMBO_CON_MODE, m_comboModeType)
  118. DDX_CONTROL_HANDLE(IDC_COMBO_CON_IPTYPE, m_comboIPType)
  119. DDX_CONTROL_HANDLE(IDC_COMBO_PONT_TYPE, m_comboPointType)
  120. DDX_CONTROL_HANDLE(IDC_COMBO_CON_BAND, m_comboBandType)
  121. END_DDX_MAP()
  122. BEGIN_MSG_MAP(CMobileDlg)
  123. MESSAGE_HANDLER(WM_INITDIALOG, OnInitDialog)
  124. COMMAND_ID_HANDLER(IDOK, OnOK)
  125. COMMAND_ID_HANDLER(IDCANCEL, OnCancel)
  126. COMMAND_ID_HANDLER(IDC_BUTTON_QUIT, OnCancel)
  127. COMMAND_ID_HANDLER(IDC_BUTTON_MBB_CONFIG, OnWlanConfigOpen)
  128. COMMAND_HANDLER(IDC_BUTTON_CONNECT, BN_CLICKED, OnConnect)
  129. MSG_WM_CTLCOLORSTATIC(OnCtlColorStatic)
  130. MESSAGE_HANDLER_EX(WM_ADD_PROFILE_RESULT, OnProfileResult)
  131. MESSAGE_HANDLER_EX(WM_UPDATE_PROFILE_RESULT, OnProfileResult)
  132. MESSAGE_HANDLER_EX(WM_DELETE_PROFILE_RESULT, OnProfileResult)
  133. MESSAGE_HANDLER_EX(WM_DIAL_RESULT, OnConnectResult)
  134. MESSAGE_HANDLER_EX(WM_DIAL_DISCONNECT, OnDisConnectResult)
  135. MESSAGE_HANDLER_EX(WM_SIGNAL_CHANGE, OnSignalChanged)
  136. MESSAGE_HANDLER_EX(WM_DONGLE_CHANGE, OnDeviceChanged)
  137. MESSAGE_HANDLER_EX(WM_FATALMESSAGE_CHANGE, OnFatalMsgChanged)
  138. MESSAGE_HANDLER_EX(WM_CONNECT_WLAN_RESULT, OnWlanConnectResult)
  139. MESSAGE_HANDLER(WM_TIMER, OnCustomTimer)
  140. COMMAND_HANDLER(IDC_BUTTON_APN_STORE, BN_CLICKED, OnBnClickedButtonApnStore)
  141. COMMAND_HANDLER(IDC_COMBO_DONGLE, CBN_SELCHANGE, OnCbnSelchangeComboDongle)
  142. COMMAND_HANDLER(IDC_BUTTON_EXPAND, BN_CLICKED, OnBnClickedButtonExpand)
  143. COMMAND_HANDLER(IDC_CHECK_MNTBYRVC, BN_CLICKED, OnBnClickedCheckMntbyrvc)
  144. COMMAND_HANDLER(IDC_BUTTON_DROPUP, BN_CLICKED, OnBnClickedButtonDropup)
  145. COMMAND_HANDLER(IDC_BUTTON_CLEAR, BN_CLICKED, OnBnClickedButtonClear)
  146. COMMAND_HANDLER(IDC_BUTTON_DEFAULT_CONNECT, BN_CLICKED, OnBnClickedButtonDefaultConnect)
  147. COMMAND_HANDLER(IDC_COMBO_PROFILES, CBN_SELCHANGE, OnCbnSelchangeComboProfiles)
  148. COMMAND_HANDLER(IDC_BUTTON_DELETE, BN_CLICKED, OnBnClickedButtonDelete)
  149. COMMAND_HANDLER(IDC_COMBO_GTYPE, CBN_SELCHANGE, OnCbnSelchangeComboGtype)
  150. COMMAND_HANDLER(IDC_CHECK_VIEW_PASSWORD, BN_CLICKED, OnBnClickedCheckViewPassword)
  151. //ALT_MSG_MAP(1)
  152. //MSG_WM_SETFOCUS(OnSetFocus)
  153. //MSG_WM_KILLFOCUS(OnKillFocus)
  154. COMMAND_HANDLER(IDC_EDIT_PROFILE, EN_SETFOCUS, OnEnSetfocusEdit)
  155. COMMAND_HANDLER(IDC_EDIT_PROFILE, EN_KILLFOCUS, OnEnKillfocusEdit)
  156. COMMAND_HANDLER(IDC_EDIT_APN, EN_SETFOCUS, OnEnSetfocusEdit)
  157. COMMAND_HANDLER(IDC_EDIT_APN, EN_KILLFOCUS, OnEnKillfocusEdit)
  158. COMMAND_HANDLER(IDC_EDIT_USER, EN_SETFOCUS, OnEnSetfocusEdit)
  159. COMMAND_HANDLER(IDC_EDIT_USER, EN_KILLFOCUS, OnEnKillfocusEdit)
  160. COMMAND_HANDLER(IDC_EDIT_PASSWORD, EN_SETFOCUS, OnEnSetfocusEdit)
  161. COMMAND_HANDLER(IDC_EDIT_PASSWORD, EN_KILLFOCUS, OnEnKillfocusEdit)
  162. COMMAND_HANDLER(IDC_EDIT_PHONENUM, EN_SETFOCUS, OnEnSetfocusEdit)
  163. COMMAND_HANDLER(IDC_EDIT_PHONENUM, EN_KILLFOCUS, OnEnKillfocusEdit)
  164. COMMAND_RANGE_HANDLER(IDC_RADIO_3G, IDC_RADIO_WEB, OnSelAdvancedChange)
  165. COMMAND_RANGE_HANDLER(IDC_RADIO_MBB_WIRE, IDC_RADIO_MBB_WLAN, OnSelMBBChange)
  166. END_MSG_MAP()
  167. // Handler prototypes (uncomment arguments if needed):
  168. // LRESULT MessageHandler(UINT /*uMsg*/, WPARAM /*wParam*/, LPARAM /*lParam*/, BOOL& /*bHandled*/)
  169. // LRESULT CommandHandler(WORD /*wNotifyCode*/, WORD /*wID*/, HWND /*hWndCtl*/, BOOL& /*bHandled*/)
  170. // LRESULT NotifyHandler(int /*idCtrl*/, LPNMHDR /*pnmh*/, BOOL& /*bHandled*/)
  171. LRESULT OnInitDialog(UINT /*uMsg*/, WPARAM /*wParam*/, LPARAM /*lParam*/, BOOL& /*bHandled*/);
  172. LRESULT OnOK(WORD /*wNotifyCode*/, WORD wID, HWND /*hWndCtl*/, BOOL& /*bHandled*/);
  173. LRESULT OnCancel(WORD /*wNotifyCode*/, WORD wID, HWND /*hWndCtl*/, BOOL& /*bHandled*/);
  174. //拨号连接与断开连接/切换卡槽
  175. LRESULT OnConnect(WORD /*wNotifyCode*/, WORD /*wID*/, HWND /*hWndCtl*/, BOOL& /*bHandled*/);
  176. HBRUSH OnCtlColorStatic(CDCHandle dc, CStatic wndStatic);
  177. void SetDlgSizeToSmall(void);
  178. void SetDlgSizeToLarge(void);
  179. void HideRedundance(void);
  180. void MoveDlgItems(BOOL bShow = TRUE);
  181. void OnSetFocus(HWND hWnd);
  182. void OnKillFocus(HWND hWnd);
  183. LRESULT OnDisConnectResult(UINT uMsg, WPARAM wParam, LPARAM lParam);
  184. LRESULT OnSignalChanged(UINT uMsg, WPARAM wParam, LPARAM lParam);
  185. LRESULT OnDeviceChanged(UINT uMsg, WPARAM wParam, LPARAM lParam);
  186. LRESULT OnFatalMsgChanged(UINT uMsg, WPARAM wParam, LPARAM lParam);
  187. LRESULT OnWlanConnectResult(UINT uMsg, WPARAM wParam, LPARAM lParam);
  188. LRESULT OnProfileResult(UINT uMsg, WPARAM wParam, LPARAM lParam);
  189. LRESULT OnConnectResult(UINT uMsg, WPARAM wParam, LPARAM lParam);
  190. LRESULT OnCustomTimer(UINT /*uMsg*/, WPARAM /*wParam*/, LPARAM /*lParam*/, BOOL& /*bHandled*/);
  191. LRESULT OnSelAdvancedChange(WORD wNotifyCode, WORD /*wID*/, HWND /*hWndCtl*/, BOOL& /*bHandled*/);
  192. LRESULT OnSelMBBChange(WORD wNotifyCode, WORD /*wID*/, HWND /*hWndCtl*/, BOOL& /*bHandled*/);
  193. LRESULT OnWlanConfigOpen(WORD /*wNotifyCode*/, WORD /*wID*/, HWND /*hWndCtl*/, BOOL& /*bHandled*/);
  194. //CEdit m_edtUser;
  195. //CEdit m_edtPassword;
  196. CEdit m_edtAPN;
  197. CString m_strProfileDesc;
  198. CString m_strUserName;
  199. CString m_strPassword;
  200. CString m_strPhoneNum;
  201. CStatic m_stcSignal;
  202. CButton m_btnConnect;
  203. CButton m_btnExpand;
  204. CButton m_btnApply;
  205. CButton m_btnAutoManage;
  206. CButton m_btnClear;
  207. CComboBox m_comboBandType;
  208. CComboBox m_comboProfiles;
  209. //登录类型
  210. CComboBox m_comboModeType;
  211. // IP类型
  212. CComboBox m_comboIPType;
  213. // 接入点类型
  214. CComboBox m_comboPointType;
  215. // 拨号方式
  216. CComboBox m_comboCntType;
  217. CComboBox m_comboDongles;
  218. CProgressBar m_ProgressBar;
  219. //HICON m_hIconNA;
  220. //HICON m_hIconEDEG1;
  221. //HICON m_hIconEDEG2;
  222. //HICON m_hIconEDEG3;
  223. //HICON m_hIconEDEG4;
  224. //HICON m_hIconEDEG5;
  225. bool m_bConnected;
  226. int m_nWhoConnected;
  227. int m_nGenType;
  228. int m_nReversedType;
  229. //ATL::CContainedWindow m_cw1;
  230. //ATL::CContainedWindow m_cw2;
  231. //ATL::CContainedWindow m_cw3;
  232. //ATL::CContainedWindow m_cw4;
  233. //ATL::CContainedWindow m_cw5;
  234. //ATL::CContainedWindow m_cw6;
  235. MBBParams m_sReverseMBBParam;
  236. MBBParams m_sMBBParam;
  237. private:
  238. bool OpenVirtualKeyboard();
  239. bool CloseVirtualKeyboard();
  240. void InitializeControls();
  241. void UpdateDongles();
  242. void EnableControls(BOOL bEnable = TRUE);
  243. inline void EnterProgressBar(DWORD dwTimeout = INFINITE, DWORD nTimerID = WM_TIMER_PROCESS);
  244. inline void LeaveProgressBar(DWORD nTimerID = WM_TIMER_PROCESS);
  245. void TriggerConnectState(int cntState);
  246. void ShowProfileCreateCtrl(BOOL bShow = TRUE);
  247. inline void ClearProfileEdit();
  248. void _ClearProfileTxt();
  249. int GetInterfaceIdInCombo(CSimpleStringA& strCurDongle, bool bSlient = true);
  250. BOOL HasUpdatedMBBParam();
  251. protected:
  252. CMobileDialEntity* m_pEntity;
  253. BOOL m_localSIM;
  254. USHORT m_dongleType;
  255. public:
  256. LRESULT OnBnClickedButtonApnStore(WORD /*wNotifyCode*/, WORD /*wID*/, HWND /*hWndCtl*/, BOOL& /*bHandled*/);
  257. //选择网卡时会调用
  258. LRESULT OnCbnSelchangeComboDongle(WORD /*wNotifyCode*/, WORD /*wID*/, HWND /*hWndCtl*/, BOOL& /*bHandled*/);
  259. //点击展开配置时会调用
  260. LRESULT OnBnClickedButtonExpand(WORD /*wNotifyCode*/, WORD /*wID*/, HWND /*hWndCtl*/, BOOL& /*bHandled*/);
  261. LRESULT OnBnClickedCheckMntbyrvc(WORD /*wNotifyCode*/, WORD /*wID*/, HWND /*hWndCtl*/, BOOL& /*bHandled*/);
  262. LRESULT OnBnClickedButtonDropup(WORD /*wNotifyCode*/, WORD /*wID*/, HWND /*hWndCtl*/, BOOL& /*bHandled*/);
  263. //新建或清除配置内容时会调用
  264. LRESULT OnBnClickedButtonClear(WORD /*wNotifyCode*/, WORD /*wID*/, HWND /*hWndCtl*/, BOOL& /*bHandled*/);
  265. LRESULT OnBnClickedButtonDefaultConnect(WORD /*wNotifyCode*/, WORD /*wID*/, HWND /*hWndCtl*/, BOOL& /*bHandled*/);
  266. //选择配置文件条目时会调用
  267. LRESULT OnCbnSelchangeComboProfiles(WORD /*wNotifyCode*/, WORD /*wID*/, HWND /*hWndCtl*/, BOOL& /*bHandled*/);
  268. LRESULT OnBnClickedButtonDelete(WORD /*wNotifyCode*/, WORD /*wID*/, HWND /*hWndCtl*/, BOOL& /*bHandled*/);
  269. //绑定到IDC_COMBO_GTYPE下拉选框
  270. LRESULT OnCbnSelchangeComboGtype(WORD /*wNotifyCode*/, WORD /*wID*/, HWND /*hWndCtl*/, BOOL& /*bHandled*/);
  271. LRESULT OnBnClickedCheckViewPassword(WORD /*wNotifyCode*/, WORD /*wID*/, HWND /*hWndCtl*/, BOOL& /*bHandled*/);
  272. LRESULT OnEnSetfocusEdit(WORD /*wNotifyCode*/, WORD /*wID*/, HWND /*hWndCtl*/, BOOL& /*bHandled*/);
  273. LRESULT OnEnKillfocusEdit(WORD /*wNotifyCode*/, WORD /*wID*/, HWND /*hWndCtl*/, BOOL& /*bHandled*/);
  274. };