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

📄 csearchcontactdlg.cpp

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

#include "Stdafx.h"
#include "resource.h"
#include "CSearchContactDlg.h"
#include "CContacts.h"
#include "CContactsListDlg.h"
//////////////////////////////////////////////////////////////////////
// Construction/Destruction
//////////////////////////////////////////////////////////////////////

CSearchContactDlg g_searchcontactdlg;
extern HINSTANCE g_hInst;
extern TCHAR g_group[GROUP_NUMBER][16];
extern CContactsListDlg g_contactlistdlg;
CSearchContactDlg::CSearchContactDlg()
{

}

CSearchContactDlg::~CSearchContactDlg()
{

}

BOOL CSearchContactDlg::DlgBox(CSearchContactDlg &dlg,HWND parent, HINSTANCE hInstance,int searchflag)
{
	dlg.m_searchflag = searchflag;
	dlg.m_ok = FALSE;
	int m_result = DialogBox(hInstance,MAKEINTRESOURCE(IDD_DIALOG_SERACHCONTACTDLG),parent,(DLGPROC)SearchContactDlgProc);
	if(m_result == -1)
		return FALSE;
	return TRUE;
}

BOOL CALLBACK SearchContactDlgProc(const HWND hDlg, const UINT uiMessage, const WPARAM wParam, const LPARAM lParam)
{
	BOOL	bProcessedMsg = TRUE;
	
	switch(uiMessage)
	{
		case WM_INITDIALOG:
			CSearchContactDlg::InitialDlg(g_searchcontactdlg,hDlg);
			break;
			
		case WM_COMMAND:
			switch (LOWORD(wParam)) 
			{
			case ID_MENUITEM_NEWCONTACTADD:
				CSearchContactDlg::DestroyDlg(g_searchcontactdlg,hDlg,g_contactlistdlg.m_buffer,M_SEARCHCONTACTBUFFER);
				g_searchcontactdlg.m_ok = TRUE;
				break;

			case ID_MENUITEM_NEWCANTACTCANCEL:
				CSearchContactDlg::DestroyDlg(g_searchcontactdlg,hDlg,g_contactlistdlg.m_buffer,M_SEARCHCONTACTBUFFER);
				g_searchcontactdlg.m_ok = FALSE;
				break;

			default:
				bProcessedMsg = FALSE;
				break;
			}
			break;	

		case WM_CLOSE:
			CSearchContactDlg::DestroyDlg(g_searchcontactdlg,hDlg,g_contactlistdlg.m_buffer,M_SEARCHCONTACTBUFFER);
			break;
	
		case WM_HOTKEY:
			 if(VK_TBACK == HIWORD(lParam)) 
			{
				
            }
			else
				bProcessedMsg = FALSE;
            break;

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

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

BOOL CSearchContactDlg::InitialDlg(CSearchContactDlg &dlg, HWND hDlg)
{
	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
	LoadString(g_hInst,IDS_STRING_SEARCHCONTACT,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));

	
	//限制编辑框内容长度
	SendMessage(GetDlgItem(hDlg,IDC_EDIT_ADDRESS),EM_LIMITTEXT,39,0);
	SendMessage(GetDlgItem(hDlg,IDC_EDIT_NAME),EM_LIMITTEXT,39,0);


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

	SendMessage(GetDlgItem(hDlg, IDC_LIST), LB_SETCURSEL, 0, 0);
	SendMessage(GetDlgItem(hDlg, IDC_SPIN), UDM_SETBUDDY, (WPARAM)GetDlgItem(hDlg, IDC_LIST), 0);
	
	if(dlg.m_searchflag == SEARCH_BY_NAME)
	{
		EnableWindow(GetDlgItem(hDlg,IDC_EDIT_ADDRESS),FALSE);
		EnableWindow(GetDlgItem(hDlg,IDC_LIST),FALSE);
		EnableWindow(GetDlgItem(hDlg,IDC_SPIN),FALSE);
	}
	if(dlg.m_searchflag == SEARCH_BY_ADDRESS)
	{
		EnableWindow(GetDlgItem(hDlg,IDC_EDIT_NAME),FALSE);
		EnableWindow(GetDlgItem(hDlg,IDC_LIST),FALSE);
		EnableWindow(GetDlgItem(hDlg,IDC_SPIN),FALSE);
	}
	if(dlg.m_searchflag == SEARCH_BY_GROUP)
	{
		EnableWindow(GetDlgItem(hDlg,IDC_EDIT_ADDRESS),FALSE);
		EnableWindow(GetDlgItem(hDlg,IDC_EDIT_NAME),FALSE);
	}
	return TRUE;
}

BOOL CSearchContactDlg::DestroyDlg(CSearchContactDlg &dlg, HWND hDlg,TCHAR* buffer,int buffersize)
{
	if(dlg.m_searchflag == SEARCH_BY_NAME)
	{
		GetWindowText(GetDlgItem(hDlg,IDC_EDIT_NAME),buffer,buffersize);
	}
	if(dlg.m_searchflag == SEARCH_BY_ADDRESS)
	{
		GetWindowText(GetDlgItem(hDlg,IDC_EDIT_ADDRESS),buffer,buffersize);
	}
	if(dlg.m_searchflag == SEARCH_BY_GROUP)
	{
		dlg.m_group = SendMessage(GetDlgItem(hDlg, IDC_LIST), LB_GETCURSEL, 0, 0);
	}
	if(!EndDialog(hDlg,dlg.m_result))
		return FALSE;
	return TRUE;
}

⌨️ 快捷键说明

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