📄 addressview.cpp
字号:
if (iTruncIndex != -1) {
cs=person.m_strHomeStreet.Left(iTruncIndex);
}
break;
case ADDR_HOME_CITY: cs = person.m_strHomeCity; break;
case ADDR_HOME_POSTAL_CODE: cs = person.m_strHomePostalCode; break;
case ADDR_HOME_STATE: cs = person.m_strHomeState; break;
case ADDR_HOME_COUNTRY: cs = person.m_strHomeCountry; break;
case ADDR_HOME_PHONE: cs = person.m_strHomePhone; break;
case ADDR_HOME_FAX: cs = person.m_strHomeFax; break;
case ADDR_CAR_PHONE: cs = person.m_strCarPhone; break;
case ADDR_PERSONAL_WEB_PAGE: cs = person.m_strPersonalWebPage; break;
case ADDR_BUSINESS_STREET:
iTruncIndex = person.m_strBusinessStreet.Find('\r');
cs = person.m_strBusinessStreet;
if (iTruncIndex != -1) {
cs=person.m_strBusinessStreet.Left(iTruncIndex);
}
break;
case ADDR_BUSINESS_CITY: cs = person.m_strBusinessCity; break;
case ADDR_BUSINESS_POSTAL_CODE:cs = person.m_strBusinessPostalCode; break;
case ADDR_BUSINESS_STATE: cs = person.m_strBusinessState; break;
case ADDR_BUSINESS_COUNTRY: cs = person.m_strBusinessCountry; break;
case ADDR_BUSINESS_WEB_PAGE: cs = person.m_strBusinessWebPage; break;
case ADDR_BUSINESS_PHONE: cs = person.m_strBusinessPhone; break;
case ADDR_BUSINESS_FAX: cs = person.m_strBusinessFax; break;
case ADDR_PAGER: cs = person.m_strPager; break;
case ADDR_COMPANY: cs = person.m_strCompany; break;
case ADDR_JOB_TITLE: cs = person.m_strJobTitle; break;
case ADDR_DEPARTMENT: cs = person.m_strDepartment; break;
case ADDR_OFFICE_LOCATION: cs = person.m_strOfficeLocation; break;
case ADDR_NOTES: cs = person.m_strNotes; break;
default: cs.Format("%d, %d", lCode, rc);
}
}
/////////////////////////////////////////////////////////////////////////////
// CAddressView message handlers
void CAddressView::OnGetdispinfoAddresslist(NMHDR* pNMHDR, LRESULT* pResult)
{
LV_DISPINFO* pDispInfo = (LV_DISPINFO*)pNMHDR;
*pResult = 0;
long index = pDispInfo->item.iItem;
long subItem = pDispInfo->item.iSubItem;
long objCode = pDispInfo->item.lParam;
if(pDispInfo->item.mask & LVIF_TEXT)
{
CString cs;
GetTextCallback(index, subItem, objCode, cs);
lstrcpyn(pDispInfo->item.pszText, cs, pDispInfo->item.cchTextMax);
*pResult = 1;
}
if(pDispInfo->item.mask & LVIF_IMAGE) pDispInfo->item.iImage = 0;//set image to first in list
}
void CAddressView::OnItemchangedAddresslist(NMHDR* pNMHDR, LRESULT* pResult)
{
NM_LISTVIEW* pNMListView = (NM_LISTVIEW*)pNMHDR;
// TODO: Add your control notification handler code here
*pResult = 0;
}
void CAddressView::OnUpdate(CView* , LPARAM , CObject* )
{
if ((GetDocument()->m_PersonArray.GetSize() - wndList.GetItemCount()) < 0) {
wndList.DeleteAllItems();
wndList.InsertItemEx(0,0);
}
for (int i = wndList.GetItemCount()+1; i <= GetDocument()->m_PersonArray.GetSize() ; i++ ) {
wndList.InsertItemEx(i,i);
}
wndList.Invalidate();
}
// Delete a Person record
void CAddressView::OnDelete()
{
int i = wndList.GetNextItem(-1, LVNI_SELECTED);
DWORD dwRow;
CString strMessage;
if (i < 0) return;
dwRow= wndList.GetItemData(i) - 1;
strMessage.Format("Confirm delete of %s", (LPCTSTR) GetDocument()->m_PersonArray[dwRow].m_strName);
if (AfxMessageBox(strMessage, MB_YESNO|MB_ICONQUESTION| MB_DEFBUTTON2) == IDYES) {
wndList.DeleteAllItems();
GetDocument()->m_PersonArray.RemoveAt(dwRow);
GetDocument()->SetModifiedFlag();
for (int i = 1 ; i <= GetDocument()->m_PersonArray.GetSize() ; i++ ) {
wndList.InsertItemEx(i,i);
}
wndList.Invalidate();
}
}
void CAddressView::OnHeaderformat()
{
wndList.OnGfxFormatheader();
}
void CAddressView::OnCustomizeheader()
{
wndList.OnGfxCustomizehead();
}
void CAddressView::OnAutopreview()
{
if (wndList.GetAutoPreviewHeight() <= 0) wndList.SetAutoPreviewHeight(30);
else wndList.SetAutoPreviewHeight(0);
}
void CAddressView::OnUpdateAutopreview(CCmdUI* pCmdUI)
{
if (wndList.GetAutoPreviewHeight() <= 0) {
pCmdUI->SetCheck(0);
} else {
pCmdUI->SetCheck(1);
}
pCmdUI->Enable(wndList.GetCategoryManager() == NULL);
}
void CAddressView::OnProperties()
{
wndList.DisplayProperties();
}
void CAddressView::OnDial()
{
int i = wndList.GetNextItem(-1, LVNI_SELECTED);
DWORD dwRow;
if (i < 0) return;
dwRow= wndList.GetItemData(i) - 1;
if (GetDocument()->m_PersonArray[dwRow].m_strHomePhone.IsEmpty())
OnDialbusiness();
else
OnDialhome();
}
void CAddressView::OnDialhome()
{
int i = wndList.GetNextItem(-1, LVNI_SELECTED);
CString strNumber;
CString strName;
DWORD dwRow;
if (i < 0) return;
dwRow= wndList.GetItemData(i) - 1;
strNumber = GetDocument()->m_PersonArray[dwRow].m_strHomePhone;
if (strNumber.IsEmpty())
return;
strName = GetDocument()->m_PersonArray[dwRow].m_strName;
if (tapiRequestMakeCall(strNumber,"Address",strName, "Home Number")!=0) {
AfxMessageBox("Unable to dial the number");
}
}
void CAddressView::OnDialbusiness()
{
int i = wndList.GetNextItem(-1, LVNI_SELECTED);
CString strNumber;
CString strName;
DWORD dwRow;
if (i < 0) return;
dwRow= wndList.GetItemData(i) - 1;
strNumber = GetDocument()->m_PersonArray[dwRow].m_strBusinessPhone;
if (strNumber.IsEmpty())
return;
strName = GetDocument()->m_PersonArray[dwRow].m_strName;
if (tapiRequestMakeCall(strNumber,"Address",strName, "Business Number")!=0) {
AfxMessageBox("Unable to dial the number");
}
}
// Send an e-mail
void CAddressView::OnEmail()
{
int i = wndList.GetNextItem(-1, LVNI_SELECTED);
CString strEMail;
CString strURL;
DWORD dwRow;
if (i < 0) return;
dwRow= wndList.GetItemData(i) - 1;
strEMail = GetDocument()->m_PersonArray[dwRow].m_strEMail;
if (strEMail.IsEmpty())
return;
strURL.Format("mailto:%s",(LPCTSTR) strEMail);
CHyperLink::GotoURL(strURL, SW_SHOWNORMAL);
}
void CAddressView::OnUpdateDialbusiness(CCmdUI* pCmdUI)
{
CString strNumber;
int i = wndList.GetNextItem(-1, LVNI_SELECTED);
if ( i<0) {
pCmdUI->Enable(FALSE);
return;
}
DWORD dwRow;
dwRow= wndList.GetItemData(i) - 1;
strNumber = GetDocument()->m_PersonArray[dwRow].m_strBusinessPhone;
if (strNumber.IsEmpty()) {
pCmdUI->Enable(FALSE);
return;
}
pCmdUI->Enable(TRUE);
}
void CAddressView::OnUpdateDialhome(CCmdUI* pCmdUI)
{
CString strNumber;
int i = wndList.GetNextItem(-1, LVNI_SELECTED);
if ( i<0) {
pCmdUI->Enable(FALSE);
return;
}
DWORD dwRow;
dwRow= wndList.GetItemData(i) - 1;
strNumber = GetDocument()->m_PersonArray[dwRow].m_strHomePhone;
if (strNumber.IsEmpty()) {
pCmdUI->Enable(FALSE);
return;
}
pCmdUI->Enable(TRUE);
}
void CAddressView::OnUpdateEmail(CCmdUI* pCmdUI)
{
int i = wndList.GetNextItem(-1, LVNI_SELECTED);
if ( i<0) {
pCmdUI->Enable(FALSE);
return;
}
DWORD dwRow;
dwRow= wndList.GetItemData(i) - 1;
if (GetDocument()->m_PersonArray[dwRow].m_strEMail.IsEmpty()) {
pCmdUI->Enable(FALSE);
return;
}
pCmdUI->Enable(TRUE);
}
void CAddressView::OnUpdateProperties(CCmdUI* pCmdUI)
{
int i = wndList.GetNextItem(-1, LVNI_SELECTED);
if ( i<0) {
pCmdUI->Enable(FALSE);
return;
}
pCmdUI->Enable(TRUE);
}
void CAddressView::OnUpdateDelete(CCmdUI* pCmdUI)
{
int i = wndList.GetNextItem(-1, LVNI_SELECTED);
if ( i<0) {
pCmdUI->Enable(FALSE);
return;
}
pCmdUI->Enable(TRUE);
}
void CAddressView::OnUpdateDial(CCmdUI* pCmdUI)
{
int i = wndList.GetNextItem(-1, LVNI_SELECTED);
if ( i<0) {
pCmdUI->Enable(FALSE);
return;
}
DWORD dwRow;
dwRow= wndList.GetItemData(i) - 1;
if (GetDocument()->m_PersonArray[dwRow].m_strHomePhone.IsEmpty()
&& GetDocument()->m_PersonArray[dwRow].m_strBusinessPhone.IsEmpty()) {
pCmdUI->Enable(FALSE);
return;
}
pCmdUI->Enable(TRUE);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -