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

📄 multilangview.cpp

📁 电脑编程技巧和源码。很不错的。
💻 CPP
字号:
// MultiLangView.cpp : implementation of the CMultiLangView class
//

#include "stdafx.h"
#include "MultiLang.h"

#include "MultiLangDoc.h"
#include "MultiLangView.h"

#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif

/////////////////////////////////////////////////////////////////////////////
// CMultiLangView

IMPLEMENT_DYNCREATE(CMultiLangView, CView)

BEGIN_MESSAGE_MAP(CMultiLangView, CView)
	//{{AFX_MSG_MAP(CMultiLangView)
	//}}AFX_MSG_MAP
	// Standard printing commands
	ON_COMMAND(ID_FILE_PRINT, CView::OnFilePrint)
	ON_COMMAND(ID_FILE_PRINT_DIRECT, CView::OnFilePrint)
	ON_COMMAND(ID_FILE_PRINT_PREVIEW, CView::OnFilePrintPreview)
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CMultiLangView construction/destruction

CMultiLangView::CMultiLangView()
{
	// TODO: add construction code here

}

CMultiLangView::~CMultiLangView()
{
}

BOOL CMultiLangView::PreCreateWindow(CREATESTRUCT& cs)
{
	// TODO: Modify the Window class or styles here by modifying
	//  the CREATESTRUCT cs

	return CView::PreCreateWindow(cs);
}

/////////////////////////////////////////////////////////////////////////////
// CMultiLangView drawing

void CMultiLangView::OnDraw(CDC* pDC)
{
	CMultiLangDoc* pDoc = GetDocument();
	ASSERT_VALID(pDoc);
//新添加的
	pDC->SetBkMode(TRANSPARENT);
	CMultiLangApp *app=(CMultiLangApp *)AfxGetApp();
	if(app->m_iLan==1)
	{
		pDC->TextOut(220,30,"German Format");
		pDC->TextOut(350,30,"English Format");
		pDC->TextOut(150,50,"Number:");
		pDC->TextOut(150,65,"Time:");
		pDC->TextOut(150,80,"Currency:");
		pDC->TextOut(150,95,"Date:");
	}
	else
	{
		pDC->TextOut(220,30,"德文格式");
		pDC->TextOut(350,30,"英文格式");
		pDC->TextOut(150,50,"数值:");
		pDC->TextOut(150,65,"时间:");
		pDC->TextOut(150,80,"货币:");
		pDC->TextOut(150,95,"日期:");
	}
	//显示数值
	char szNum[]="12345000.67890";
	char *pszBuf;
	int nSize;
	LCID lcid=MAKELCID(LANG_GERMAN,SORT_DEFAULT);
	//取得数值长度
	nSize=GetNumberFormat(lcid,0,szNum,NULL,NULL,0);
	pszBuf=new char[nSize];
    //按德文方式显示数值
	GetNumberFormat(lcid,0,szNum,NULL,pszBuf,nSize);
	pDC->TextOut(220,50,pszBuf);
	delete[] pszBuf;
	//取当前的系统时间长度
	nSize=GetTimeFormat(lcid,0,NULL,NULL,NULL,0);
	pszBuf=new char[nSize];
    //按德文方式显示时间
	GetTimeFormat(lcid,0,NULL,NULL,pszBuf,nSize);
	pDC->TextOut(220,65,pszBuf);
	delete[] pszBuf;

	//取当前的系统货币长度
	char szMoney[]="-123456.789";
	nSize=GetCurrencyFormat(lcid,0,szMoney,NULL,NULL,0);
	pszBuf=new char[nSize];
    //按德文方式显示货币
	GetCurrencyFormat(lcid,0,szMoney,NULL,pszBuf,nSize);
	pDC->TextOut(220,80,pszBuf);
	delete[] pszBuf;

	//取当前的系统日期长度
	nSize=GetDateFormat(lcid,0,NULL,NULL,NULL,0);
	pszBuf=new char[nSize];
    //按德文方式显示日期
	GetDateFormat(lcid,0,NULL,NULL,pszBuf,nSize);
	pDC->TextOut(220,95,pszBuf);
	delete[] pszBuf;

	//按英语方式显示
	lcid=MAKELCID(LANG_ENGLISH,SORT_DEFAULT);
	//取得数值长度
	nSize=GetNumberFormat(lcid,0,szNum,NULL,NULL,0);
	pszBuf=new char[nSize];
    //按英文方式显示数值
	GetNumberFormat(lcid,0,szNum,NULL,pszBuf,nSize);
	pDC->TextOut(350,50,pszBuf);
	delete[] pszBuf;
	//取当前的系统时间长度
	nSize=GetTimeFormat(lcid,0,NULL,NULL,NULL,0);
	pszBuf=new char[nSize];
    //按英文方式显示时间
	GetTimeFormat(lcid,0,NULL,NULL,pszBuf,nSize);
	pDC->TextOut(350,65,pszBuf);
	delete[] pszBuf;

	//取当前的系统货币长度
	nSize=GetCurrencyFormat(lcid,0,szMoney,NULL,NULL,0);
	pszBuf=new char[nSize];
    //按英文方式显示货币
	GetCurrencyFormat(lcid,0,szMoney,NULL,pszBuf,nSize);
	pDC->TextOut(350,80,pszBuf);
	delete[] pszBuf;

	//取当前的系统日期长度
	nSize=GetDateFormat(lcid,0,NULL,NULL,NULL,0);
	pszBuf=new char[nSize];
    //按英文方式显示日期
	GetDateFormat(lcid,0,NULL,NULL,pszBuf,nSize);
	pDC->TextOut(350,95,pszBuf);
	delete[] pszBuf;

//显示全程语言格式   --中文
	lcid=::GetThreadLocale();
	if(app->m_iLan==1)
	{
		if(!app->m_bSupported)
		{
			pDC->TextOut(150,155,"SetThreadLocale is only supported on Win NT system");
			pDC->TextOut(150,170,"Show Current default thread locale:");
		}
		else
			pDC->TextOut(150,170,"the current thread Locale is Chinese:");
		pDC->TextOut(150,190,"Number:");
		pDC->TextOut(150,205,"Time:");
		pDC->TextOut(150,220,"Currency:");
		pDC->TextOut(150,235,"Date:");
	}
	else
	{
		if(!app->m_bSupported)
		{
			pDC->TextOut(150,155,"仅仅Win NT系统支持SetThreadLocale函数");
			pDC->TextOut(150,170,"显示当前线程缺省语言:");
		}
		else
			pDC->TextOut(150,170,"当前线程语言格式为中文:");
		pDC->TextOut(150,190,"数值:");
		pDC->TextOut(150,205,"时间:");
		pDC->TextOut(150,220,"货币:");
		pDC->TextOut(150,235,"日期:");
	}
    //按线程方式显示数值
	nSize=GetNumberFormat(lcid,0,szNum,NULL,NULL,0);
	pszBuf=new char[nSize];
	GetNumberFormat(lcid,0,szNum,NULL,pszBuf,nSize);
	pDC->TextOut(300,190,pszBuf);
	delete[] pszBuf;
    //按线程方式显示时间
	nSize=::GetTimeFormat(lcid,0,NULL,NULL,pszBuf,0);
	pszBuf=new char[nSize];
	::GetTimeFormat(lcid,0,NULL,NULL,pszBuf,nSize);
	pDC->TextOut(300,205,pszBuf);
	delete[] pszBuf;
    //按线程方式显示货币
	nSize=GetCurrencyFormat(lcid,0,szMoney,NULL,NULL,0);
	pszBuf=new char[nSize];
	GetCurrencyFormat(lcid,0,szMoney,NULL,pszBuf,nSize);
	pDC->TextOut(300,220,pszBuf);
	delete[] pszBuf;
    //按线程方式显示日期
	nSize=GetDateFormat(lcid,0,NULL,NULL,NULL,0);
	pszBuf=new char[nSize];
	GetDateFormat(lcid,0,NULL,NULL,pszBuf,nSize);
	pDC->TextOut(300,235,pszBuf);
	delete[] pszBuf;
//结束新添加
}

/////////////////////////////////////////////////////////////////////////////
// CMultiLangView printing

BOOL CMultiLangView::OnPreparePrinting(CPrintInfo* pInfo)
{
	// default preparation
	return DoPreparePrinting(pInfo);
}

void CMultiLangView::OnBeginPrinting(CDC* /*pDC*/, CPrintInfo* /*pInfo*/)
{
	// TODO: add extra initialization before printing
}

void CMultiLangView::OnEndPrinting(CDC* /*pDC*/, CPrintInfo* /*pInfo*/)
{
	// TODO: add cleanup after printing
}

/////////////////////////////////////////////////////////////////////////////
// CMultiLangView diagnostics

#ifdef _DEBUG
void CMultiLangView::AssertValid() const
{
	CView::AssertValid();
}

void CMultiLangView::Dump(CDumpContext& dc) const
{
	CView::Dump(dc);
}

CMultiLangDoc* CMultiLangView::GetDocument() // non-debug version is inline
{
	ASSERT(m_pDocument->IsKindOf(RUNTIME_CLASS(CMultiLangDoc)));
	return (CMultiLangDoc*)m_pDocument;
}
#endif //_DEBUG

/////////////////////////////////////////////////////////////////////////////
// CMultiLangView message handlers

⌨️ 快捷键说明

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