// DLG_GroupSelect.cpp : implementation file // #include "stdafx.h" #include "corpsms.h" #include "DLG_GroupSelect.h" #ifdef _DEBUG #define new DEBUG_NEW #undef THIS_FILE static char THIS_FILE[] = __FILE__; #endif ///////////////////////////////////////////////////////////////////////////// // DLG_GroupSelect dialog DLG_GroupSelect::DLG_GroupSelect(CWnd* pParent /*=NULL*/) : CDialog(DLG_GroupSelect::IDD, pParent) { //{{AFX_DATA_INIT(DLG_GroupSelect) // NOTE: the ClassWizard will add member initialization here //}}AFX_DATA_INIT m_lUserID = -1; m_strGroup = "私人通讯录"; m_bGroup = false; } void DLG_GroupSelect::DoDataExchange(CDataExchange* pDX) { CDialog::DoDataExchange(pDX); //{{AFX_DATA_MAP(DLG_GroupSelect) DDX_Control(pDX, IDC_USERSELECT_TREE, m_wndTree); //}}AFX_DATA_MAP } BEGIN_MESSAGE_MAP(DLG_GroupSelect, CDialog) //{{AFX_MSG_MAP(DLG_GroupSelect) ON_NOTIFY(NM_DBLCLK, IDC_USERSELECT_TREE, OnDblclkUserselectTree) //}}AFX_MSG_MAP END_MESSAGE_MAP() ///////////////////////////////////////////////////////////////////////////// // DLG_GroupSelect message handlers BOOL DLG_GroupSelect::OnInitDialog() { CDialog::OnInitDialog(); //创建图像列表 m_Image.Create( 20 , 20 , ILC_COLOR32|ILC_MASK , 5 , 1); CBitmap bmp; bmp.LoadBitmap( IDB_F_FOLDER ); m_Image.Add( &bmp , RGB(255,255,255) ); //文件夹 bmp.DeleteObject(); bmp.LoadBitmap( IDB_F_FOLDER_O ); m_Image.Add( &bmp , RGB(255,255,255) ); //文件夹-打开 bmp.DeleteObject(); bmp.LoadBitmap( IDB_F_GADDRESS ); m_Image.Add( &bmp , RGB(255,255,255) ); //公用地址本 bmp.DeleteObject(); bmp.LoadBitmap( IDB_L_USER_NOR ); m_Image.Add( &bmp , RGB(193,193,193) ); //用户 m_wndTree.SetBkColor( RGB(180,213,170) ); m_wndTree.SetImageList(&m_Image, TVSIL_NORMAL ); m_MainItem = m_wndTree.InsertItem( _T("私人通讯录") , 2 , 2 ); m_wndTree.SetItemData( m_MainItem , -1 ); ShowGGroup( m_MainItem , _T("") ); m_wndTree.Expand(m_MainItem,TVE_EXPAND); m_wndTree.SelectItem( m_MainItem ); return TRUE; // return TRUE unless you set the focus to a control // EXCEPTION: OCX Property Pages should return FALSE } void DLG_GroupSelect::SetParam(CMainFrame *pFrame) { m_pMainFrame = pFrame; m_AdoRS.SetAdoConnection( &pFrame->m_adoConnection ); } long DLG_GroupSelect::GetParam(CString &strGroup) { strGroup = m_strGroup; return 1; } BOOL DLG_GroupSelect::ShowGGroup(HTREEITEM hMainItem, TCHAR *pGroupID) { CAdoRecordSet AdoRS; AdoRS.SetAdoConnection( &m_pMainFrame->m_adoConnection ); TCHAR szSelect[128]={0}; _stprintf( szSelect , _T("select * from paddress where GroupID like '%s_' AND UserType='0' ") , pGroupID ); BOOL b = AdoRS.Open( szSelect ); long lCount = AdoRS.GetRecordCount(); if ( b && lCount ) { AdoRS.MoveFirst(); while( !AdoRS.IsEOF() ) { TCHAR szGroupID[16]={0}; TCHAR szName[16]={0}; long lUserID=0; AdoRS.GetCollect( _T("GroupID") , szGroupID ); AdoRS.GetCollect( _T("Name") , szName ); AdoRS.GetCollect( _T("UserID") , lUserID ); HTREEITEM hItem = m_wndTree.InsertItem( szName , 0,1 , hMainItem ); m_wndTree.SetItemData( hItem , lUserID ); ShowGGroup( hItem , szGroupID ); AdoRS.MoveNext(); } } return true; } void DLG_GroupSelect::OnDblclkUserselectTree(NMHDR* pNMHDR, LRESULT* pResult) { *pResult = 0; OnOK(); } void DLG_GroupSelect::OnOK() { HTREEITEM hItem = m_wndTree.GetSelectedItem(); if ( !hItem ) { MessageBox( _T("你必须从左边的树状列表中选择一个查询对象!"),_T("错误"),MB_ICONWARNING); return ; } if ( m_MainItem == hItem ) { MessageBox( _T("你不能选择根目录做为保存组!"),_T("错误"),MB_ICONWARNING); return ; } m_strGroup = m_wndTree.GetItemText(hItem); m_lUserID = m_wndTree.GetItemData(hItem); int iImage=0; int iSImage=0; m_wndTree.GetItemImage(hItem,iImage,iSImage); if ( iImage==0 || iImage== 2 ) m_bGroup = true; else m_bGroup = false; CDialog::OnOK(); }