⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 addressview.cpp

📁 地址本
💻 CPP
📖 第 1 页 / 共 2 页
字号:
		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 + -