// MainDlg.h : interface of the CMobileDlg class // ///////////////////////////////////////////////////////////////////////////// #pragma once #include "mod_MobileDial.h" #include "ProgressBar.h" #define WM_TIMER_INVALID 1000 #define WM_TIMER_PROCESS 1001 #define WM_TIMER_CONNECT 1002 #define WM_TIMER_DISCONNECT 1003 #define WM_TIMER_SWITCH 1004 #define WM_TIMER_PROCESS_MAX 1005 #define TIMER_TIMTOUT_MAX 18000 class CMobileDlg; class CWlanConfigDlg : public ATL::CAxDialogImpl { public: enum {IDD = IDD_DIALOG_MBB_CONFIG}; //enum {IDD = IDD_DIALOG2}; CString m_strLoginUsername; CString m_strLoginPassword; CString m_strWlanSSID; CString m_strWlanPassword; BOOL m_fHidden; CWlanConfigDlg(CMobileDlg* pDlg) : m_fHidden(false) ,m_strLoginUsername(""),m_strLoginPassword("") ,m_strWlanSSID(""),m_strWlanPassword(""),m_pDlg(pDlg) { } BEGIN_MSG_MAP(CWlanConfigDlg) MESSAGE_HANDLER(WM_INITDIALOG, OnInitDialog) MSG_WM_CTLCOLORSTATIC(OnCtlColorStatic) COMMAND_ID_HANDLER(IDOK_EX, OnOK) COMMAND_ID_HANDLER(IDCANCEL_EX, OnCancel) COMMAND_HANDLER(IDC_CHECK_MBB_LOGIN_PSW, BN_CLICKED, OnBnClickedCheckViewPassword) COMMAND_HANDLER(IDC_CHECK_MBB_WLAN_PSW, BN_CLICKED, OnBnClickedCheckViewPassword) COMMAND_HANDLER(IDC_CHECK_WLAN_HIDDEN, BN_CLICKED, OnBnClickedCheckViewPassword) END_MSG_MAP() LRESULT OnInitDialog(UINT /*uMsg*/, WPARAM /*wParam*/, LPARAM /*lParam*/, BOOL& /*bHandled*/); LRESULT OnOK(WORD /*wNotifyCode*/, WORD wID, HWND /*hWndCtl*/, BOOL& /*bHandled*/) { UpdateValue(); EndDialog(wID); return 0; } HBRUSH OnCtlColorStatic(CDCHandle dc, CStatic wndStatic) { if (GetDlgItem(IDC_STATIC_HIDE_TIP).m_hWnd == wndStatic.m_hWnd) { dc.SetTextColor(RGB(255, 0, 0)); dc.SetBkColor(RGB(195, 195, 195)); return (HBRUSH)GetStockObject(LTGRAY_BRUSH); } else { SetMsgHandled(FALSE); return 0; } } BOOL HasUpdated(BOOL refresh = TRUE); LRESULT OnCancel(WORD /*wNotifyCode*/, WORD wID, HWND /*hWndCtl*/, BOOL& /*bHandled*/) { EndDialog(wID); return 0; } LRESULT OnBnClickedCheckViewPassword(WORD wNotifyCode, WORD wID, HWND hWndCtl, BOOL& /*bHandled*/) { if(wID == IDC_CHECK_WLAN_HIDDEN) { CButton btnCheck = GetDlgItem(IDC_CHECK_WLAN_HIDDEN); if(btnCheck.GetCheck() == 0) { GetDlgItem(IDC_STATIC_HIDE_TIP).ShowWindow(SW_SHOW); } else { GetDlgItem(IDC_STATIC_HIDE_TIP).ShowWindow(SW_HIDE); } return 0; } if(wID != IDC_CHECK_MBB_LOGIN_PSW && wID != IDC_CHECK_MBB_WLAN_PSW) { return 0; } CEdit edit = (CEdit)this->GetDlgItem(wID == IDC_CHECK_MBB_LOGIN_PSW ? IDC_EDIT_MBB_LOGIN_PSW : IDC_EDIT_MBB_WLAN_PSW); if(IsDlgButtonChecked(wID)) { edit.SetPasswordChar(0); } else { edit.SetPasswordChar('*'); } edit.RedrawWindow(); return 0; } private: void UpdateValue() { int nLen = 0; { CEdit edit = GetDlgItem(IDC_EDIT_MBB_LOGIN_USERNAME); nLen = edit.GetWindowTextLength(); edit.GetWindowText(m_strLoginUsername.GetBuffer(nLen), nLen + 1); m_strLoginUsername.ReleaseBuffer(); } { CEdit edit = GetDlgItem(IDC_EDIT_MBB_LOGIN_PSW); nLen = edit.GetWindowTextLength(); edit.GetWindowText(m_strLoginPassword.GetBuffer(nLen), nLen + 1); m_strLoginPassword.ReleaseBuffer(); } { CEdit edit = GetDlgItem(IDC_EDIT_MBB_WLAN_SSID); nLen = edit.GetWindowTextLength(); edit.GetWindowText(m_strWlanSSID.GetBuffer(nLen), nLen + 1); m_strWlanSSID.ReleaseBuffer(); } { CEdit edit = GetDlgItem(IDC_EDIT_MBB_WLAN_PSW); nLen = edit.GetWindowTextLength(); edit.GetWindowText(m_strWlanPassword.GetBuffer(nLen), nLen + 1); m_strWlanPassword.ReleaseBuffer(); } CButton btnCheck = GetDlgItem(IDC_CHECK_WLAN_HIDDEN); m_fHidden = (btnCheck.GetCheck() != 0); } CMobileDlg* m_pDlg; }; class CMobileDlg : public ATL::CAxDialogImpl, public CWinDataExchange { public: enum { IDD = IDD_MAINDLG }; CMobileDlg(CMobileDialEntity* pEntity); // standard constructor ~CMobileDlg(); BEGIN_DDX_MAP(CMobileDlg) //DDX_CONTROL_HANDLE(IDC_EDIT_USER, m_edtUser) DDX_TEXT(IDC_EDIT_USER, m_strUserName) //DDX_CONTROL_HANDLE(IDC_EDIT_PASSWORD, m_edtPassword) DDX_TEXT(IDC_EDIT_PASSWORD, m_strPassword) //DDX_TEXT(IDC_EDIT_PROFILE, m_strProfileDesc) DDX_TEXT(IDC_EDIT_PHONENUM, m_strPhoneNum) DDX_CONTROL_HANDLE(IDC_EDIT_APN, m_edtAPN) DDX_CONTROL_HANDLE(IDC_BUTTON_CONNECT, m_btnConnect) DDX_CONTROL_HANDLE(IDC_BUTTON_EXPAND, m_btnExpand) DDX_CONTROL_HANDLE(IDC_BUTTON_CLEAR, m_btnClear) DDX_CONTROL_HANDLE(IDC_CHECK_APN_APPLY, m_btnApply) DDX_CONTROL_HANDLE(IDC_CHECK_MNTBYRVC, m_btnAutoManage) DDX_CONTROL_HANDLE(IDC_COMBO_PROFILES, m_comboProfiles) DDX_CONTROL_HANDLE(IDC_COMBO_GTYPE, m_comboCntType) DDX_CONTROL_HANDLE(IDC_COMBO_CON_MODE, m_comboModeType) DDX_CONTROL_HANDLE(IDC_COMBO_CON_IPTYPE, m_comboIPType) DDX_CONTROL_HANDLE(IDC_COMBO_PONT_TYPE, m_comboPointType) DDX_CONTROL_HANDLE(IDC_COMBO_CON_BAND, m_comboBandType) END_DDX_MAP() BEGIN_MSG_MAP(CMobileDlg) MESSAGE_HANDLER(WM_INITDIALOG, OnInitDialog) COMMAND_ID_HANDLER(IDOK, OnOK) COMMAND_ID_HANDLER(IDCANCEL, OnCancel) COMMAND_ID_HANDLER(IDC_BUTTON_QUIT, OnCancel) COMMAND_ID_HANDLER(IDC_BUTTON_MBB_CONFIG, OnWlanConfigOpen) COMMAND_HANDLER(IDC_BUTTON_CONNECT, BN_CLICKED, OnConnect) MSG_WM_CTLCOLORSTATIC(OnCtlColorStatic) MESSAGE_HANDLER_EX(WM_ADD_PROFILE_RESULT, OnProfileResult) MESSAGE_HANDLER_EX(WM_UPDATE_PROFILE_RESULT, OnProfileResult) MESSAGE_HANDLER_EX(WM_DELETE_PROFILE_RESULT, OnProfileResult) MESSAGE_HANDLER_EX(WM_DIAL_RESULT, OnConnectResult) MESSAGE_HANDLER_EX(WM_DIAL_DISCONNECT, OnDisConnectResult) MESSAGE_HANDLER_EX(WM_SIGNAL_CHANGE, OnSignalChanged) MESSAGE_HANDLER_EX(WM_DONGLE_CHANGE, OnDeviceChanged) MESSAGE_HANDLER_EX(WM_FATALMESSAGE_CHANGE, OnFatalMsgChanged) MESSAGE_HANDLER_EX(WM_CONNECT_WLAN_RESULT, OnWlanConnectResult) MESSAGE_HANDLER(WM_TIMER, OnCustomTimer) COMMAND_HANDLER(IDC_BUTTON_APN_STORE, BN_CLICKED, OnBnClickedButtonApnStore) COMMAND_HANDLER(IDC_COMBO_DONGLE, CBN_SELCHANGE, OnCbnSelchangeComboDongle) COMMAND_HANDLER(IDC_BUTTON_EXPAND, BN_CLICKED, OnBnClickedButtonExpand) COMMAND_HANDLER(IDC_CHECK_MNTBYRVC, BN_CLICKED, OnBnClickedCheckMntbyrvc) COMMAND_HANDLER(IDC_BUTTON_DROPUP, BN_CLICKED, OnBnClickedButtonDropup) COMMAND_HANDLER(IDC_BUTTON_CLEAR, BN_CLICKED, OnBnClickedButtonClear) COMMAND_HANDLER(IDC_BUTTON_DEFAULT_CONNECT, BN_CLICKED, OnBnClickedButtonDefaultConnect) COMMAND_HANDLER(IDC_COMBO_PROFILES, CBN_SELCHANGE, OnCbnSelchangeComboProfiles) COMMAND_HANDLER(IDC_BUTTON_DELETE, BN_CLICKED, OnBnClickedButtonDelete) COMMAND_HANDLER(IDC_COMBO_GTYPE, CBN_SELCHANGE, OnCbnSelchangeComboGtype) COMMAND_HANDLER(IDC_CHECK_VIEW_PASSWORD, BN_CLICKED, OnBnClickedCheckViewPassword) //ALT_MSG_MAP(1) //MSG_WM_SETFOCUS(OnSetFocus) //MSG_WM_KILLFOCUS(OnKillFocus) COMMAND_HANDLER(IDC_EDIT_PROFILE, EN_SETFOCUS, OnEnSetfocusEdit) COMMAND_HANDLER(IDC_EDIT_PROFILE, EN_KILLFOCUS, OnEnKillfocusEdit) COMMAND_HANDLER(IDC_EDIT_APN, EN_SETFOCUS, OnEnSetfocusEdit) COMMAND_HANDLER(IDC_EDIT_APN, EN_KILLFOCUS, OnEnKillfocusEdit) COMMAND_HANDLER(IDC_EDIT_USER, EN_SETFOCUS, OnEnSetfocusEdit) COMMAND_HANDLER(IDC_EDIT_USER, EN_KILLFOCUS, OnEnKillfocusEdit) COMMAND_HANDLER(IDC_EDIT_PASSWORD, EN_SETFOCUS, OnEnSetfocusEdit) COMMAND_HANDLER(IDC_EDIT_PASSWORD, EN_KILLFOCUS, OnEnKillfocusEdit) COMMAND_HANDLER(IDC_EDIT_PHONENUM, EN_SETFOCUS, OnEnSetfocusEdit) COMMAND_HANDLER(IDC_EDIT_PHONENUM, EN_KILLFOCUS, OnEnKillfocusEdit) COMMAND_RANGE_HANDLER(IDC_RADIO_3G, IDC_RADIO_WEB, OnSelAdvancedChange) COMMAND_RANGE_HANDLER(IDC_RADIO_MBB_WIRE, IDC_RADIO_MBB_WLAN, OnSelMBBChange) COMMAND_HANDLER(IDC_STATIC_TXT_WARN, BN_SETFOCUS, OnBnSetfocusRadioMbbWlan) COMMAND_HANDLER(IDC_STATIC_TXT_WARN, BN_KILLFOCUS, OnBnKillfocusRadioMbbWlan) COMMAND_HANDLER(IDC_STATIC_TXT_WARN, BN_CLICKED, OnBnClickedRadioMbbWlan) COMMAND_HANDLER(IDC_STATIC_TXT_WARN, BN_DOUBLECLICKED, OnBnDoubleclickedRadioMbbWlan) END_MSG_MAP() // Handler prototypes (uncomment arguments if needed): // LRESULT MessageHandler(UINT /*uMsg*/, WPARAM /*wParam*/, LPARAM /*lParam*/, BOOL& /*bHandled*/) // LRESULT CommandHandler(WORD /*wNotifyCode*/, WORD /*wID*/, HWND /*hWndCtl*/, BOOL& /*bHandled*/) // LRESULT NotifyHandler(int /*idCtrl*/, LPNMHDR /*pnmh*/, BOOL& /*bHandled*/) LRESULT OnInitDialog(UINT /*uMsg*/, WPARAM /*wParam*/, LPARAM /*lParam*/, BOOL& /*bHandled*/); LRESULT OnOK(WORD /*wNotifyCode*/, WORD wID, HWND /*hWndCtl*/, BOOL& /*bHandled*/); LRESULT OnCancel(WORD /*wNotifyCode*/, WORD wID, HWND /*hWndCtl*/, BOOL& /*bHandled*/); //拨号连接与断开连接/切换卡槽 LRESULT OnConnect(WORD /*wNotifyCode*/, WORD /*wID*/, HWND /*hWndCtl*/, BOOL& /*bHandled*/); HBRUSH OnCtlColorStatic(CDCHandle dc, CStatic wndStatic); void SetDlgSizeToSmall(void); void SetDlgSizeToLarge(void); void HideRedundance(void); void MoveDlgItems(BOOL bShow = TRUE); void OnSetFocus(HWND hWnd); void OnKillFocus(HWND hWnd); LRESULT OnDisConnectResult(UINT uMsg, WPARAM wParam, LPARAM lParam); LRESULT OnSignalChanged(UINT uMsg, WPARAM wParam, LPARAM lParam); LRESULT OnDeviceChanged(UINT uMsg, WPARAM wParam, LPARAM lParam); LRESULT OnFatalMsgChanged(UINT uMsg, WPARAM wParam, LPARAM lParam); LRESULT OnWlanConnectResult(UINT uMsg, WPARAM wParam, LPARAM lParam); LRESULT OnProfileResult(UINT uMsg, WPARAM wParam, LPARAM lParam); LRESULT OnConnectResult(UINT uMsg, WPARAM wParam, LPARAM lParam); LRESULT OnCustomTimer(UINT /*uMsg*/, WPARAM /*wParam*/, LPARAM /*lParam*/, BOOL& /*bHandled*/); LRESULT OnSelAdvancedChange(WORD wNotifyCode, WORD /*wID*/, HWND /*hWndCtl*/, BOOL& /*bHandled*/); LRESULT OnSelMBBChange(WORD wNotifyCode, WORD /*wID*/, HWND /*hWndCtl*/, BOOL& /*bHandled*/); LRESULT OnWlanConfigOpen(WORD /*wNotifyCode*/, WORD /*wID*/, HWND /*hWndCtl*/, BOOL& /*bHandled*/); //CEdit m_edtUser; //CEdit m_edtPassword; CEdit m_edtAPN; CString m_strProfileDesc; CString m_strUserName; CString m_strPassword; CString m_strPhoneNum; CStatic m_stcSignal; CButton m_btnConnect; CButton m_btnExpand; CButton m_btnApply; CButton m_btnAutoManage; CButton m_btnClear; CComboBox m_comboBandType; CComboBox m_comboProfiles; //登录类型 CComboBox m_comboModeType; // IP类型 CComboBox m_comboIPType; // 接入点类型 CComboBox m_comboPointType; // 拨号方式 CComboBox m_comboCntType; CComboBox m_comboDongles; CProgressBar m_ProgressBar; //HICON m_hIconNA; //HICON m_hIconEDEG1; //HICON m_hIconEDEG2; //HICON m_hIconEDEG3; //HICON m_hIconEDEG4; //HICON m_hIconEDEG5; bool m_bConnected; int m_nWhoConnected; int m_nGenType; int m_nReversedType; //ATL::CContainedWindow m_cw1; //ATL::CContainedWindow m_cw2; //ATL::CContainedWindow m_cw3; //ATL::CContainedWindow m_cw4; //ATL::CContainedWindow m_cw5; //ATL::CContainedWindow m_cw6; MBBParams m_sReverseMBBParam; MBBParams m_sMBBParam; static bool OpenVirtualKeyboard(); static bool CloseVirtualKeyboard(); private: void InitializeControls(); void UpdateDongles(); void EnableControls(BOOL bEnable = TRUE); inline void EnterProgressBar(DWORD dwTimeout = INFINITE, DWORD nTimerID = WM_TIMER_PROCESS); inline void LeaveProgressBar(DWORD nTimerID = WM_TIMER_PROCESS); void TriggerConnectState(int cntState); void ShowProfileCreateCtrl(BOOL bShow = TRUE); inline void ClearProfileEdit(); void _ClearProfileTxt(); int GetInterfaceIdInCombo(CSimpleStringA& strCurDongle, bool bSlient = true); BOOL HasUpdatedMBBParam(); protected: CMobileDialEntity* m_pEntity; BOOL m_localSIM; USHORT m_dongleType; USHORT m_wlanClickedTimes; public: LRESULT OnBnClickedButtonApnStore(WORD /*wNotifyCode*/, WORD /*wID*/, HWND /*hWndCtl*/, BOOL& /*bHandled*/); //选择网卡时会调用 LRESULT OnCbnSelchangeComboDongle(WORD /*wNotifyCode*/, WORD /*wID*/, HWND /*hWndCtl*/, BOOL& /*bHandled*/); //点击展开配置时会调用 LRESULT OnBnClickedButtonExpand(WORD /*wNotifyCode*/, WORD /*wID*/, HWND /*hWndCtl*/, BOOL& /*bHandled*/); LRESULT OnBnClickedCheckMntbyrvc(WORD /*wNotifyCode*/, WORD /*wID*/, HWND /*hWndCtl*/, BOOL& /*bHandled*/); LRESULT OnBnClickedButtonDropup(WORD /*wNotifyCode*/, WORD /*wID*/, HWND /*hWndCtl*/, BOOL& /*bHandled*/); //新建或清除配置内容时会调用 LRESULT OnBnClickedButtonClear(WORD /*wNotifyCode*/, WORD /*wID*/, HWND /*hWndCtl*/, BOOL& /*bHandled*/); LRESULT OnBnClickedButtonDefaultConnect(WORD /*wNotifyCode*/, WORD /*wID*/, HWND /*hWndCtl*/, BOOL& /*bHandled*/); //选择配置文件条目时会调用 LRESULT OnCbnSelchangeComboProfiles(WORD /*wNotifyCode*/, WORD /*wID*/, HWND /*hWndCtl*/, BOOL& /*bHandled*/); LRESULT OnBnClickedButtonDelete(WORD /*wNotifyCode*/, WORD /*wID*/, HWND /*hWndCtl*/, BOOL& /*bHandled*/); //绑定到IDC_COMBO_GTYPE下拉选框 LRESULT OnCbnSelchangeComboGtype(WORD /*wNotifyCode*/, WORD /*wID*/, HWND /*hWndCtl*/, BOOL& /*bHandled*/); LRESULT OnBnClickedCheckViewPassword(WORD /*wNotifyCode*/, WORD /*wID*/, HWND /*hWndCtl*/, BOOL& /*bHandled*/); LRESULT OnEnSetfocusEdit(WORD /*wNotifyCode*/, WORD /*wID*/, HWND /*hWndCtl*/, BOOL& /*bHandled*/); LRESULT OnEnKillfocusEdit(WORD /*wNotifyCode*/, WORD /*wID*/, HWND /*hWndCtl*/, BOOL& /*bHandled*/); LRESULT OnBnSetfocusRadioMbbWlan(WORD /*wNotifyCode*/, WORD /*wID*/, HWND /*hWndCtl*/, BOOL& /*bHandled*/); LRESULT OnBnKillfocusRadioMbbWlan(WORD /*wNotifyCode*/, WORD /*wID*/, HWND /*hWndCtl*/, BOOL& /*bHandled*/); LRESULT OnBnClickedRadioMbbWlan(WORD /*wNotifyCode*/, WORD /*wID*/, HWND /*hWndCtl*/, BOOL& /*bHandled*/); LRESULT OnBnDoubleclickedRadioMbbWlan(WORD /*wNotifyCode*/, WORD /*wID*/, HWND /*hWndCtl*/, BOOL& /*bHandled*/); }; class CMIFIPswDlg : public ATL::CAxDialogImpl { public: enum {IDD = IDD_DIALOG_MFPSW_INPUT}; CString m_strLoginPassword; CMIFIPswDlg(): m_strLoginPassword("") {} ~CMIFIPswDlg() {} BEGIN_MSG_MAP(CMIFIPswDlg) MESSAGE_HANDLER(WM_INITDIALOG, OnInitDialog) MSG_WM_CTLCOLORSTATIC(OnCtlColorStatic) COMMAND_ID_HANDLER(IDOK_PLUS, OnOK) COMMAND_ID_HANDLER(IDCANCEL_PLUS, OnCancel) COMMAND_HANDLER(IDC_CHECK_MLOGIN_VISUABLE, BN_CLICKED, OnBnClickedCheckViewPassword) COMMAND_HANDLER(IDC_EDIT_MLOGIN_PASSWORD, EN_SETFOCUS, OnEnSetfocusEdit) COMMAND_HANDLER(IDC_EDIT_MLOGIN_PASSWORD, EN_KILLFOCUS, OnEnKillfocusEdit) END_MSG_MAP() LRESULT OnInitDialog(UINT /*uMsg*/, WPARAM /*wParam*/, LPARAM /*lParam*/, BOOL& /*bHandled*/) { Dbg("Enter OnInitDialog"); int cx = GetSystemMetrics(SM_CXSCREEN); RECT rcDlg; ::GetWindowRect(m_hWnd, &rcDlg); ::SetWindowPos(m_hWnd, NULL, (cx + rcDlg.left - rcDlg.right)/2, 40, -1, -1, SWP_NOSIZE | SWP_NOZORDER | SWP_NOACTIVATE); return TRUE; } LRESULT OnOK(WORD /*wNotifyCode*/, WORD wID, HWND /*hWndCtl*/, BOOL& /*bHandled*/) { CMobileDlg::CloseVirtualKeyboard(); UpdateValue(); EndDialog(1); return 0; } HBRUSH OnCtlColorStatic(CDCHandle dc, CStatic wndStatic) { if (GetDlgItem(IDC_STATIC_MLOGIN_TIP).m_hWnd == wndStatic.m_hWnd) { dc.SetTextColor(RGB(255, 0, 0)); dc.SetBkColor(RGB(195, 195, 195)); return (HBRUSH)GetStockObject(LTGRAY_BRUSH); } else { SetMsgHandled(FALSE); return 0; } } LRESULT OnEnSetfocusEdit(WORD /*wNotifyCode*/, WORD /*wID*/, HWND /*hWndCtl*/, BOOL& bHandled) { CMobileDlg::OpenVirtualKeyboard(); return 0; } LRESULT OnEnKillfocusEdit(WORD /*wNotifyCode*/, WORD /*wID*/, HWND /*hWndCtl*/, BOOL& bHandled) { return 0; } LRESULT OnCancel(WORD /*wNotifyCode*/, WORD wID, HWND /*hWndCtl*/, BOOL& /*bHandled*/) { CMobileDlg::CloseVirtualKeyboard(); EndDialog(0); return -1; } LRESULT OnBnClickedCheckViewPassword(WORD wNotifyCode, WORD wID, HWND hWndCtl, BOOL& /*bHandled*/) { CEdit edit = (CEdit)this->GetDlgItem(IDC_EDIT_MLOGIN_PASSWORD); if(IsDlgButtonChecked(wID)) { edit.SetPasswordChar(0); } else { edit.SetPasswordChar('*'); } edit.RedrawWindow(); return 0; } private: void UpdateValue() { CEdit edit = GetDlgItem(IDC_EDIT_MLOGIN_PASSWORD); int nLen = edit.GetWindowTextLength(); edit.GetWindowText(m_strLoginPassword.GetBuffer(nLen), nLen + 1); m_strLoginPassword.ReleaseBuffer(); } };