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

📄 cmessagebox.cpp

📁 可以实现对邮件的加密解密以及签名
💻 CPP
字号:
/*____________________________________________________________________________
		Copyright (C) 2002 PGP Corporation
        All rights reserved.

        $Id: CMessageBox.cpp,v 1.4 2002/08/06 20:10:46 dallen Exp $
____________________________________________________________________________*/

#include "pgpClassesConfig.h"

#include "CMessageBox.h"
#include "CString.h"

_USING_PGP

// Class CMessageBox member functions

CMessageBox::Button 
CMessageBox::Display(
	const char	*message, 
	const char	*title, 
	HWND		parentWindow, 
	Tone		tone, 
	Style		style, 
	Button		focus) const
{
	pgpAssertStrValid(message);

	MSGBOXPARAMS	mbParams;

	mbParams.cbSize				= sizeof(MSGBOXPARAMS);
	mbParams.hwndOwner			= parentWindow;
	mbParams.hInstance			= NULL;
	mbParams.lpszText			= message;
	mbParams.lpszCaption		= title;
	mbParams.lpszIcon			= NULL;
	mbParams.dwContextHelpId	= NULL;
	mbParams.lpfnMsgBoxCallback	= NULL;
	mbParams.dwLanguageId		= MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT);

	PGPUInt32	flags	= MB_SETFOREGROUND;
	PGPUInt32	button, toneFlag;

	switch (tone)
	{
	case kWarningTone:
		toneFlag = MB_ICONWARNING;
		break;

	case kInfoTone:
		toneFlag = MB_ICONINFORMATION;
		break;

	case kQuestionTone:
		toneFlag = MB_ICONQUESTION;
		break;

	case kStopTone:
		toneFlag = MB_ICONSTOP;
		break;

	default:
		pgpAssert(FALSE);
		break;
	}

	switch (style)
	{
	case kOkStyle:
		flags |= MB_OK | toneFlag;
		break;

	case kOkCancelStyle:
		switch (focus)
		{
		case kOkButton:
			button = MB_DEFBUTTON1;
			break;

		case kCancelButton:
			button = MB_DEFBUTTON2;
			break;

		default:
			pgpAssert(FALSE);
			break;
		}
		
		flags |= button | MB_OKCANCEL | toneFlag;
		break;

	case kYesNoStyle:
		switch (focus)
		{
		case kYesButton:
			button = MB_DEFBUTTON1;
			break;

		case kNoButton:
			button = MB_DEFBUTTON2;
			break;

		default:
			pgpAssert(FALSE);
			break;
		}

		flags |= button | MB_YESNO | toneFlag;
		break;

	case kYesNoCancelStyle:
		switch (focus)
		{
		case kYesButton:
			button = MB_DEFBUTTON1;
			break;

		case kNoButton:
			button = MB_DEFBUTTON2;
			break;

		case kCancelButton:
			button = MB_DEFBUTTON3;
			break;

		default:
			pgpAssert(FALSE);
			break;
		}

		flags |= button | MB_YESNOCANCEL | toneFlag;
		break;

	default:
		pgpAssert(FALSE);
		break;
	}

	mbParams.dwStyle = flags;
	button = MessageBoxIndirect(&mbParams);

	// Finally return the choice the user made in the message box.
	switch (button)
	{
	case 0:
		THROW_PGPERROR(kPGPError_Win32WindowOpFailed);
		break;
	case IDYES:
		return kYesButton;
	case IDNO:
		return kNoButton;
	case IDOK:
		return kOkButton;
	default:
		return kCancelButton;
	}
}

⌨️ 快捷键说明

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