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

📄 cmailsource.cpp

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

#include "stdafx.h"
#include "CMailSource.h"
#include "resource.h"
#include "harTransform.h"
//////////////////////////////////////////////////////////////////////
// Construction/Destruction
//////////////////////////////////////////////////////////////////////
CMailSource g_mailsourcedlg;
CMailSource::CMailSource()
{

}

CMailSource::~CMailSource()
{

}


BOOL CALLBACK CMailSourceProc(const HWND hDlg, const UINT uiMessage, const WPARAM wParam, const LPARAM lParam)
{
	BOOL	bProcessedMsg = TRUE;
	switch(uiMessage)
	{
		case WM_INITDIALOG:
			CMailSource::InitialDlg(g_mailsourcedlg,hDlg);
			break;
			
		case WM_COMMAND:
			switch (LOWORD(wParam)) 
			{
			case ID_MENUITEM_OK:
				CMailSource::DestroyDlg(g_mailsourcedlg,hDlg);
				break;
			default:
				bProcessedMsg = FALSE;
				break;
			}
			break;	

		case WM_CLOSE:
			CMailSource::DestroyDlg(g_mailsourcedlg,hDlg);
			break;
	

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

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


BOOL CMailSource::DlgBox(CMailSource &dlg, HINSTANCE hinst, HWND hwnd)
{
	dlg.m_result = DialogBox(hinst,MAKEINTRESOURCE(IDD_DIALOG_SOURCE),hwnd,(DLGPROC)CMailSourceProc);
	if(dlg.m_result == -1)
		return FALSE;
	return TRUE;
}

BOOL CMailSource::DestroyDlg(CMailSource &dlg, HWND hDlg)
{
	if(!EndDialog(hDlg,dlg.m_result))
		return FALSE;

	dlg.m_filename = NULL;
	return TRUE;
}

BOOL CMailSource::InitialDlg(CMailSource &dlg, HWND hDlg)
{
	TCHAR		lpszSubTitle[32];

	// 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_OK;
    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_MAILSOURCE,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));


	HANDLE hf;
	CharTransform trans;
	hf = CreateFile(dlg.m_filename,GENERIC_READ,FILE_SHARE_READ,NULL,OPEN_EXISTING,0,NULL);
	if(hf == NULL)
		return TRUE;
	DWORD as,size = GetFileSize(hf,NULL);
	if(size <= 0)
	{
		CloseHandle(hf);
		return TRUE;
	}

	char* buffer = new char[(size / 4)*4 + 4];
	ReadFile(hf,buffer,size,&as,NULL);
	TCHAR* text = trans.CharToTChar(buffer);
	delete []buffer;
	SetWindowText(GetDlgItem(hDlg,IDC_EDIT_S),text);
	delete []text;
	CloseHandle(hf);
	return TRUE;
}

⌨️ 快捷键说明

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