// DLG_Setup.cpp : implementation file // #include "stdafx.h" #include "SmsCenter.h" #include "DLG_Setup.h" #ifdef _DEBUG #define new DEBUG_NEW #undef THIS_FILE static char THIS_FILE[] = __FILE__; #endif ///////////////////////////////////////////////////////////////////////////// // DLG_Setup dialog DLG_Setup::DLG_Setup(CWnd* pParent /*=NULL*/) : CDialog(DLG_Setup::IDD, pParent) { //{{AFX_DATA_INIT(DLG_Setup) //}}AFX_DATA_INIT memset(&m_Setup,0,sizeof(m_Setup)); } void DLG_Setup::DoDataExchange(CDataExchange* pDX) { CDialog::DoDataExchange(pDX); //{{AFX_DATA_MAP(DLG_Setup) DDX_Control(pDX, IDC_SETUP_IP_IPADDRESS, m_L_Address); DDX_Control(pDX, IDC_SETUP_DB_USER3, m_E_DBUser3); DDX_Control(pDX, IDC_SETUP_DB_USER2, m_E_DBUser2); DDX_Control(pDX, IDC_SETUP_DB_PASSWORD3, m_E_DBPassword3); DDX_Control(pDX, IDC_SETUP_DB_PASSWORD2, m_E_DBPassword2); DDX_Control(pDX, IDC_SETUP_DB_NAME3, m_E_DBName3); DDX_Control(pDX, IDC_SETUP_DB_NAME2, m_E_DBName2); DDX_Control(pDX, IDC_SETUP_IP_FILENAME, m_E_IPName); DDX_Control(pDX, IDC_SETUP_MQ_SERVER, m_E_MQ_Server); DDX_Control(pDX, IDC_SETUP_MQ_QSENDP, m_E_MQ_QSendP); DDX_Control(pDX, IDC_SETUP_MQ_QSENDB, m_E_MQ_QSendB); DDX_Control(pDX, IDC_SETUP_MQ_QRECV, m_E_MQ_QRecv); DDX_Control(pDX, IDC_SETUP_MQ_QM, m_E_MQ_QM); DDX_Control(pDX, IDC_SETUP_DB_USERS, m_S_DBUser); DDX_Control(pDX, IDC_SETUP_DB_PASSWORDS, m_S_DBPassword); DDX_Control(pDX, IDC_SETUP_DB_USER, m_E_DBUser); DDX_Control(pDX, IDC_SETUP_DB_PASSWORD, m_E_DBPassword); DDX_Control(pDX, IDC_SETUP_DB_TYPE, m_L_DBType); DDX_Control(pDX, IDC_SETUP_DB_SELDB, m_B_DBSelDB); DDX_Control(pDX, IDC_SETUP_DB_NAME, m_E_DBName); //}}AFX_DATA_MAP DDX_Control(pDX, IDC_SETUP_ZLIB, m_B_Zlib); DDX_Control(pDX, IDC_SETUP_ZLIB_MANAGER, m_B_Zlib_Manager); DDX_Control(pDX, IDC_SETUP_XY, m_B_XY); DDX_Control(pDX, IDC_SETUP_DB_PROVIDER, m_E_Provider); } BEGIN_MESSAGE_MAP(DLG_Setup, CDialog) //{{AFX_MSG_MAP(DLG_Setup) ON_CBN_SELCHANGE(IDC_SETUP_DB_TYPE, OnSelchangeSetupDbType) ON_BN_CLICKED(IDC_SETUP_DB_SELDB, OnSetupDbSeldb) ON_BN_CLICKED(IDC_SETUP_IP_FILENAME_SEL, OnSetupIpFilenameSel) //}}AFX_MSG_MAP ON_BN_CLICKED(IDOK, &DLG_Setup::OnBnClickedOk) END_MESSAGE_MAP() ///////////////////////////////////////////////////////////////////////////// // DLG_Setup message handlers void DLG_Setup::SetPara(SC_Setup setup) { m_Setup = setup; } SC_Setup DLG_Setup::GetPara() { return m_Setup; } BOOL DLG_Setup::OnInitDialog() { CDialog::OnInitDialog(); // TODO: Add extra initialization here m_L_DBType.SetCurSel( m_Setup.uiDBType ); m_E_DBName.SetWindowText( m_Setup.szDBName ); m_E_DBUser.SetWindowText( m_Setup.szDBUser ); m_E_DBPassword.SetWindowText( m_Setup.szDBPasswd ); m_E_DBName2.SetWindowText( m_Setup.szDBName2 ); m_E_DBUser2.SetWindowText( m_Setup.szDBUser2 ); m_E_DBPassword2.SetWindowText( m_Setup.szDBPasswd2 ); m_E_DBName3.SetWindowText( m_Setup.szDBName3 ); m_E_DBUser3.SetWindowText( m_Setup.szDBUser3 ); m_E_DBPassword3.SetWindowText( m_Setup.szDBPasswd3 ); m_E_Provider.SetWindowText(m_Setup.szProvider); m_E_MQ_Server.SetWindowText( m_Setup.szMQ_Server ); m_E_MQ_QM.SetWindowText( m_Setup.szMQ_QM ); m_E_MQ_QRecv.SetWindowText( m_Setup.szMQ_QRecv ); m_E_MQ_QSendP.SetWindowText( m_Setup.szMQ_QSendP ); m_E_MQ_QSendB.SetWindowText( m_Setup.szMQ_QSendB ); m_E_IPName.SetWindowText( m_Setup.szIPName ); OnSelchangeSetupDbType(); //取本机所的IP地址 WORD wVersionRequested; WSADATA wsaData; //Start up WinSock wVersionRequested = MAKEWORD(2, 2); WSAStartup(wVersionRequested, &wsaData); char HostName[128]={0}; LPHOSTENT lpHostEnt; struct in_addr addr[50]={0}; if ( m_Setup.addr == htonl(INADDR_ANY)) m_L_Address.SetCurSel(0); if (gethostname(HostName,sizeof(HostName)) !=SOCKET_ERROR)// 得到本主机名 { lpHostEnt=gethostbyname(HostName);//利用得到的主机名去获得主机结构 if (lpHostEnt) { for (int i=0; lpHostEnt->h_addr_list[i]!=0; i++)//从主机地址表中得到IP地址 { memcpy(&addr[i],lpHostEnt->h_addr_list[i], sizeof(in_addr)); #ifdef UNICODE int iItem=m_L_Address.AddString(CA2W(inet_ntoa(addr[i]))); if ( addr[i].S_un.S_addr==m_Setup.addr ) m_L_Address.SetCurSel(iItem); #else int iItem=m_L_Address.AddString(inet_ntoa(addr[i])); if ( addr[i].S_un.S_addr==m_Setup.addr ) m_L_Address.SetCurSel(iItem); #endif } } } //Label4- >Caption=inet_ntoa(addr[0]); //Label5- >Caption=inet_ntoa(addr[1]); m_B_Zlib.SetCheck(m_Setup.bZlib); m_B_Zlib_Manager.SetCheck(m_Setup.bZlibManager); m_B_XY.SetCheck(m_Setup.bXY); return TRUE; // return TRUE unless you set the focus to a control // EXCEPTION: OCX Property Pages should return FALSE } void DLG_Setup::OnSelchangeSetupDbType() { m_Setup.uiDBType = m_L_DBType.GetCurSel(); if ( m_Setup.uiDBType == DB_SQLSERVER ) { m_B_DBSelDB.ShowWindow( SW_HIDE ); m_E_DBUser.ShowWindow( SW_SHOW ); m_E_DBPassword.ShowWindow( SW_SHOW ); m_S_DBUser.ShowWindow( SW_SHOW ); m_S_DBPassword.ShowWindow( SW_SHOW ); } else { m_B_DBSelDB.ShowWindow( SW_SHOW ); m_E_DBUser.ShowWindow( SW_HIDE ); m_E_DBPassword.ShowWindow( SW_SHOW ); m_S_DBUser.ShowWindow( SW_HIDE ); m_S_DBPassword.ShowWindow( SW_SHOW ); } } void DLG_Setup::OnSetupDbSeldb() { static TCHAR BASED_CODE szFilter[] = _T("Access MDB Files (*.mdb)|*.mdb|All Files (*.*)|*.*||"); CFileDialog dlg(TRUE,_T("mdb"),NULL, OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT,szFilter); if (dlg.DoModal() == IDOK) { m_E_DBName.SetWindowText(dlg.GetPathName()); } } void DLG_Setup::OnSetupIpFilenameSel() { // static TCHAR BASED_CODE szFilter[] = _T("Access Files (*.mdb)|*.mdb|All Files (*.*)|*.*||"); // CFileDialog dlg(TRUE,_T("mdb"),_T("ip.mdb"), OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT,szFilter); // if (dlg.DoModal() == IDOK) // { // m_E_IPName.SetWindowText(dlg.GetPathName()); // } } void DLG_Setup::OnBnClickedOk() { //取参数 m_Setup.uiDBType = m_L_DBType.GetCurSel(); m_E_DBName.GetWindowText( m_Setup.szDBName , sizeof(m_Setup.szDBName) ); AllTrim(m_Setup.szDBName); m_E_DBUser.GetWindowText( m_Setup.szDBUser , sizeof(m_Setup.szDBUser) ); AllTrim(m_Setup.szDBUser); m_E_DBPassword.GetWindowText( m_Setup.szDBPasswd , sizeof(m_Setup.szDBUser) ); AllTrim(m_Setup.szDBUser); m_E_DBName2.GetWindowText( m_Setup.szDBName2 , sizeof(m_Setup.szDBName2) ); AllTrim(m_Setup.szDBName2); m_E_DBUser2.GetWindowText( m_Setup.szDBUser2 , sizeof(m_Setup.szDBUser2) ); AllTrim(m_Setup.szDBUser2); m_E_DBPassword2.GetWindowText( m_Setup.szDBPasswd2 , sizeof(m_Setup.szDBUser2) ); AllTrim(m_Setup.szDBUser2); m_E_DBName3.GetWindowText( m_Setup.szDBName3 , sizeof(m_Setup.szDBName3) ); AllTrim(m_Setup.szDBName3); m_E_DBUser3.GetWindowText( m_Setup.szDBUser3 , sizeof(m_Setup.szDBUser3) ); AllTrim(m_Setup.szDBUser3); m_E_DBPassword3.GetWindowText( m_Setup.szDBPasswd3 , sizeof(m_Setup.szDBUser3) ); AllTrim(m_Setup.szDBUser3); m_E_Provider.GetWindowText(m_Setup.szProvider, sizeof(m_Setup.szProvider)); AllTrim(m_Setup.szProvider); m_E_MQ_Server.GetWindowText( m_Setup.szMQ_Server , sizeof(m_Setup.szMQ_Server) ); AllTrim(m_Setup.szMQ_Server); m_E_MQ_QM.GetWindowText( m_Setup.szMQ_QM , sizeof(m_Setup.szMQ_QM) ); AllTrim(m_Setup.szMQ_QM); m_E_MQ_QRecv.GetWindowText( m_Setup.szMQ_QRecv , sizeof(m_Setup.szMQ_QRecv) ); AllTrim(m_Setup.szMQ_QRecv); m_E_MQ_QSendP.GetWindowText( m_Setup.szMQ_QSendP , sizeof(m_Setup.szMQ_QSendP) ); AllTrim(m_Setup.szMQ_QSendP); m_E_MQ_QSendB.GetWindowText( m_Setup.szMQ_QSendB , sizeof(m_Setup.szMQ_QSendB) ); AllTrim(m_Setup.szMQ_QSendB); m_E_IPName.GetWindowText( m_Setup.szIPName , sizeof(m_Setup.szIPName));AllTrim(m_Setup.szIPName); if ( _tcslen( m_Setup.szDBName) <= 0 ) { MessageBox( _T("数据库地址不能为空,请输入!") , _T("错误") , MB_ICONWARNING ); m_E_DBName.SetFocus(); return ; } CString strAddr ; m_L_Address.GetWindowText(strAddr); if ( strAddr == CString(_T("所有")) ) { m_Setup.addr = htonl(INADDR_ANY); } else { #ifdef UNICODE m_Setup.addr = inet_addr( CW2A(strAddr) ); #else m_Setup.addr = inet_addr( strAddr ); #endif } m_Setup.bZlib = m_B_Zlib.GetCheck(); m_Setup.bZlibManager = m_B_Zlib_Manager.GetCheck(); m_Setup.bXY = m_B_XY.GetCheck(); CDialog::OnOK(); }