CorpSms/DLG_GroupSelect.cpp
2025-02-27 16:58:16 +08:00

150 lines
3.9 KiB
C++

// 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();
}