?? dlgpbselect.cpp
字號:
// DlgPBSelect.cpp : implementation file
//
#include "stdafx.h"
#include "MoblieX.h"
#include "DlgPBSelect.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
/////////////////////////////////////////////////////////////////////////////
// CDlgPBSelect dialog
CDlgPBSelect::CDlgPBSelect(CWnd* pParent /*=NULL*/)
: CDialog(CDlgPBSelect::IDD, pParent)
{
//{{AFX_DATA_INIT(CDlgPBSelect)
m_name = _T("");
m_phoneNo = _T("");
//}}AFX_DATA_INIT
}
void CDlgPBSelect::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
//{{AFX_DATA_MAP(CDlgPBSelect)
DDX_Control(pDX, IDC_PHONE_NO, m_phoneNoCtrl);
DDX_Control(pDX, IDC_NAME, m_nameCtrl);
DDX_Control(pDX, IDC_ITEM_LIST, m_itemListCtrl);
DDX_CBString(pDX, IDC_NAME, m_name);
DDX_CBString(pDX, IDC_PHONE_NO, m_phoneNo);
//}}AFX_DATA_MAP
}
BEGIN_MESSAGE_MAP(CDlgPBSelect, CDialog)
//{{AFX_MSG_MAP(CDlgPBSelect)
ON_BN_CLICKED(IDC_FILTER, OnFilter)
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CDlgPBSelect message handlers
BOOL CDlgPBSelect::OnInitDialog()
{
CDialog::OnInitDialog();
int i, size = m_pb.GetPhoneBookSize();
for( i = 0; i < size; i++ )
{
m_nameCtrl.AddString( m_pb.GetItemName(i) );
m_phoneNoCtrl.AddString( m_pb.GetItemPhoneNo(i) );
}
//填充條目列表
OnFilter();
return TRUE; // return TRUE unless you set the focus to a control
// EXCEPTION: OCX Property Pages should return FALSE
}
void CDlgPBSelect::OnFilter()
{
DoFilter();
}
void CDlgPBSelect::DoFilter()
{
if( !IsWindow( GetSafeHwnd() ) )
{
return;
}
int i, size = m_pb.GetPhoneBookSize();
int itemCounter;
UpdateData();
m_itemListCtrl.ResetContent();
for( i = 0, itemCounter = 0; i < size; i++ )
{
if( ( m_name.IsEmpty() || (m_pb.GetItemName(i)).Find(m_name) >= 0 )
&& ( m_phoneNo.IsEmpty() || (m_pb.GetItemPhoneNo(i)).Find(m_phoneNo) >= 0 ) )
{
m_itemListCtrl.AddString( m_pb.GetItemShortDes(i) );
m_itemListCtrl.SetItemData( itemCounter, i );
itemCounter++;
}
}
}
void CDlgPBSelect::OnOK()
{
if( !MakeSelectPB() )
{
MessageBox( "沒有選擇任何條目" );
return;
}
CDialog::OnOK();
}
BOOL CDlgPBSelect::MakeSelectPB()
{
int selCount = m_itemListCtrl.GetSelCount();
int * pSelID;
int i, pbID;
BOOL re;
if( selCount == LB_ERR || selCount <= 0 )
{
return FALSE;
}
pSelID = new int[selCount];
selCount = m_itemListCtrl.GetSelItems( selCount, pSelID );
if( selCount == LB_ERR || selCount <= 0 )
{
re = FALSE;
}
else
{
m_pbSelect.RemoveAll();
for( i = 0; i < selCount; i++ )
{
pbID = m_itemListCtrl.GetItemData( pSelID[i] );
m_pbSelect.AddItem(
m_pb.GetItemID(pbID),
m_pb.GetItemName(pbID),
m_pb.GetItemPhoneNo(pbID) );
}
re = TRUE;
}
delete [] pSelID;
return re;
}
BOOL CDlgPBSelect::MakeSelectPhoneNoString(CString &str)
{
int i, size = m_pbSelect.GetPhoneBookSize();
CString sBuf;
if( size <= 0 )
{
return FALSE;
}
str = m_pbSelect.GetItemPhoneNo(0);
str.TrimLeft( m_phoneNoHead );
for( i = 1; i < size; i++ )
{
sBuf = m_pbSelect.GetItemPhoneNo(i);
sBuf.TrimLeft( m_phoneNoHead );
str += ';';
str += sBuf;
}
return TRUE;
}
BOOL CDlgPBSelect::MakeSelectNameString(CString &str)
{
int i, size = m_pbSelect.GetPhoneBookSize();
if( size <= 0 )
{
return FALSE;
}
str = m_pbSelect.GetItemName(0);
for( i = 1; i < size; i++ )
{
str += ';';
str += m_pbSelect.GetItemName(i);
}
return TRUE;
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -