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

📄 cnewcontactdlg.cpp

📁 这个基于嵌入式平台SMART PHONE电子邮件收发管理系统(MAIL MAN是一个电子邮件客户端软件。它以很小的体积
💻 CPP
字号:
// CNewContactDlg.cpp: implementation of the CNewContactDlg class.
//
//////////////////////////////////////////////////////////////////////

#include "stdafx.h"
#include "CNewContactDlg.h"
#include "resource.h"
#include "CContacts.h"
#include "ContactsManager.h"
//////////////////////////////////////////////////////////////////////
// Construction/Destruction
//////////////////////////////////////////////////////////////////////

CNewContactDlg g_newcontactdlg;
extern HINSTANCE g_hInst;
extern TCHAR g_group[GROUP_NUMBER][16];
extern CContactsManager g_contactmanager;
CNewContactDlg::CNewContactDlg()
{
	m_addcontact = FALSE;
}

CNewContactDlg::~CNewContactDlg()
{

}

BOOL CNewContactDlg::CreateDlg(HWND parent, HINSTANCE hInstance)
{
	m_result = DialogBox (hInstance, MAKEINTRESOURCE(IDD_DIALOG_NEWCONTACTS), parent, (DLGPROC)NewContactsDialogProc);
	if(m_result == -1)
		return FALSE;
	return TRUE;
}

BOOL CNewContactDlg::DestroyDlg(const HWND hDlg)
{
	if(!EndDialog(hDlg,m_result))
		return FALSE;
	return TRUE;
}

BOOL CALLBACK NewContactsDialogProc(const HWND hDlg, const UINT uiMessage, const WPARAM wParam, const LPARAM lParam)
{
	BOOL	bProcessedMsg = TRUE;
	
	switch(uiMessage)
	{
		case WM_INITDIALOG:
			if(!g_newcontactdlg.InitialDlg(hDlg))
			{
				g_newcontactdlg.DestroyDlg(hDlg);
			}
			break;
			
		case WM_COMMAND:
			switch (LOWORD(wParam)) 
			{
				case ID_MENUITEM_NEWCANTACTCANCEL:				
					 g_newcontactdlg.DestroyDlg(hDlg);
					 break;

				case ID_MENUITEM_NEWCONTACTADD:
					if(g_newcontactdlg.AddContact(hDlg))
						g_newcontactdlg.DestroyDlg(hDlg);
					break;

				default:
					bProcessedMsg = FALSE;
					break;
			}
			break;	
		
		case WM_CLOSE:	
			g_newcontactdlg.DestroyDlg(hDlg);
			break;

		case WM_HOTKEY:
			 if(VK_TBACK == HIWORD(lParam)) 
			{
				SHSendBackToFocusWindow(uiMessage, wParam, lParam);
            }
			else
				bProcessedMsg = FALSE;
            break;

		case WM_ACTIVATE:
			{
			  DWORD dwFlags = LOWORD(wParam);
             if(dwFlags != WA_INACTIVE)
			 {
				 
				 SetFocus(g_newcontactdlg.m_focus);
			 }
			 else
			 {
				  g_newcontactdlg.m_focus = GetFocus();
				  bProcessedMsg = FALSE;
			 }
			 break;
			}

		case WM_KEYDOWN:
			{
				int a = 12;
				a++;
				break;
			}
		case WM_NOTIFY:
         if(IDC_EDIT_DES == wParam)
         {
               int a = 12;
			   a++;
		 }
            break;

		default:
			bProcessedMsg = FALSE;
			break;
	}
	return bProcessedMsg;
}

BOOL CNewContactDlg::InitialDlg(HWND hDlg)
{
	int i;
	TCHAR		lpszSubTitle[30];

	// Specify that the dialog box should stretch full screen
	SHINITDLGINFO shidi;
	ZeroMemory(&shidi, sizeof(shidi));
    shidi.dwMask = SHIDIM_FLAGS;
    shidi.dwFlags = SHIDIF_SIZEDLGFULLSCREEN|SHIDIF_SIPDOWN;
    shidi.hDlg = hDlg;
            
	// Set up the menu bar
	SHMENUBARINFO shmbi;
	ZeroMemory(&shmbi, sizeof(shmbi));
    shmbi.cbSize = sizeof(shmbi);
    shmbi.hwndParent = hDlg;
    shmbi.nToolBarId = IDR_MENUBAR_NEWCONTACT;
    shmbi.hInstRes = g_hInst;

	// If we could not initialize the dialog box, return an error
	if (!(SHInitDialog(&shidi) && SHCreateMenuBar(&shmbi))) 
	{
		return FALSE;
	}

	// set the title bar
	if(m_addcontact)
	{
		LoadString(g_hInst,IDS_STRING_NEWCONTACT,lpszSubTitle,ARRAYSIZE(lpszSubTitle));
		if (lpszSubTitle)
			SetWindowText(hDlg, lpszSubTitle);
	}
	else
	{
		LoadString(g_hInst,IDS_STRING_CONTACTIMF,lpszSubTitle,ARRAYSIZE(lpszSubTitle));
		if (lpszSubTitle)
			SetWindowText(hDlg, lpszSubTitle);
	}

	//Overriding Back button functionality
	(void)SendMessage(shmbi.hwndMB, SHCMBM_OVERRIDEKEY, VK_TBACK, 
			  MAKELPARAM(SHMBOF_NODEFAULT | SHMBOF_NOTIFY, 
						 SHMBOF_NODEFAULT | SHMBOF_NOTIFY));

	for(i = 0;i < GROUP_NUMBER;++i)
	{
		SendMessage(GetDlgItem(hDlg, IDC_LIST_GROUP),LB_INSERTSTRING,-1, (LPARAM)g_group[i]);
	}


//限制编辑框内容长度
	SendMessage(GetDlgItem(hDlg,IDC_EDIT_ADDRESS),EM_LIMITTEXT,39,0);
	SendMessage(GetDlgItem(hDlg,IDC_EDIT_NAME),EM_LIMITTEXT,39,0);
	SendMessage(GetDlgItem(hDlg,IDC_EDIT_DES),EM_LIMITTEXT,99,0);
//根据是添加联系人或编辑联系来设定对话框的信息
	if(m_addcontact)
	{
		m_contacts.m_group = 0;
		m_contacts.m_oidRecord = 0;
		SetWindowText(GetDlgItem(hDlg,IDC_EDIT_ADDRESS),m_address);
	}
	else
	{
		SetWindowText(GetDlgItem(hDlg,IDC_EDIT_ADDRESS),m_contacts.m_mailaddress);
		SetWindowText(GetDlgItem(hDlg,IDC_EDIT_NAME),m_contacts.m_name);
		SetWindowText(GetDlgItem(hDlg,IDC_EDIT_DES),m_contacts.m_des);
	}
	SendMessage(GetDlgItem(hDlg, IDC_LIST_GROUP), LB_SETCURSEL, m_contacts.m_group, 0);
	SendMessage(GetDlgItem(hDlg, IDC_SPIN1), UDM_SETBUDDY, (WPARAM)GetDlgItem(hDlg, IDC_LIST_GROUP), 0);

	
	SetFocus(GetDlgItem(hDlg,IDC_EDIT_ADDRESS));
	m_focus = GetDlgItem(hDlg,IDC_EDIT_ADDRESS);
	return TRUE;
}

BOOL CNewContactDlg::AddContact(HWND hDlg)
{
	GetWindowText(GetDlgItem(hDlg,IDC_EDIT_ADDRESS),m_contacts.m_mailaddress,sizeof(m_contacts.m_mailaddress)/sizeof(TCHAR));
	if(lstrlen(m_contacts.m_mailaddress) == 0)
	{
		MessageBox(hDlg,_T("The E-mail Address can not be empty!"),_T("Error"),MB_OK|MB_ICONERROR);
		return FALSE;
	}

	GetWindowText(GetDlgItem(hDlg,IDC_EDIT_NAME),m_contacts.m_name,sizeof(m_contacts.m_name)/sizeof(TCHAR));
	GetWindowText(GetDlgItem(hDlg,IDC_EDIT_DES),m_contacts.m_des,sizeof(m_contacts.m_des)/sizeof(TCHAR));
	int index = SendMessage(GetDlgItem(hDlg, IDC_LIST_GROUP), LB_GETCURSEL, 0, 0);
	m_contacts.m_group = index;
	if(!g_contactmanager.EditContact(m_contacts))
	{
		g_contactmanager.OpenDataBase(0);
		g_contactmanager.EditContact(m_contacts);
	}
	
	if(m_addcontact == TRUE)
		MessageBox(hDlg,_T("Completed adding Contact!"),_T("Success"),MB_ICONASTERISK);
	return TRUE;
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -