[MFC] Barra de ferramentas multilíngue

00. Índice

01. Visão geral do caso

Um bom software deve ser vendido em todo o mundo. Se o software for todo em inglês, causará transtornos aos usuários que não sabem inglês. Portanto, na fase de desenvolvimento de software, prepare-se para vários idiomas e projete os recursos correspondentes para todas as linguagens., os aplicativos criados pelo Visual C ++ podem alterar dinamicamente esses recursos e o exemplo realiza a alteração dinâmica dos recursos da barra de ferramentas. Resultados conforme mostrado abaixo.

[Falha na transferência da imagem do link externo. O site de origem pode ter um mecanismo anti-leeching. Recomenda-se salvar a imagem e carregá-la diretamente (img-HnBjsv3i-1615024814211) (assets / image-20210306175955432.png)]

02. Ambiente de desenvolvimento

Ambiente do sistema: Windows 10

Ambiente de desenvolvimento: Visual Studio 2019

03. Tecnologia Chave

Para realizar a barra de ferramentas multilíngue, você precisa projetar a barra de ferramentas para cada idioma separadamente.Como mostrado na figura abaixo, a barra de ferramentas em chinês e a barra de ferramentas em inglês são projetadas separadamente.
Insira a descrição da imagem aqui

Não apenas o ícone do botão da barra de ferramentas deve ser projetado em chinês e inglês, mas também o atributo de idioma da barra de ferramentas deve ser modificado. As propriedades da barra de ferramentas são mostradas na figura abaixo.

04. Programação

(1) Crie um novo aplicativo baseado em diálogo.

(2) Adicione o recurso da barra de ferramentas chinesa IDR_TOOLCHI e o recurso da barra de ferramentas inglesa IDR_TOOLEN ao projeto.
Insira a descrição da imagem aqui

(3) A função de realização OnEnglish do botão "english" realiza a troca da barra de ferramentas em inglês, o código é o seguinte.


void CMy6DialogDlg::OnBnClickedButtonchi()
{
    
    
	// TODO: 在此添加控件通知处理程序代码
	//加载中文工具栏
	m_ToolBar.LoadToolBar(IDB_TOOLCHI);

	RepositionBars(AFX_IDW_CONTROLBAR_FIRST, AFX_IDW_CONTROLBAR_LAST, 0);
}


void CMy6DialogDlg::OnBnClickedButtoneng()
{
    
    
	// TODO: 在此添加控件通知处理程序代码
	m_ToolBar.LoadToolBar(IDB_TOOLEN);

	RepositionBars(AFX_IDW_CONTROLBAR_FIRST, AFX_IDW_CONTROLBAR_LAST, 0);
}


BOOL CMy6DialogDlg::OnEraseBkgnd(CDC* pDC)
{
    
    
	 //TODO: 在此添加消息处理程序代码和/或调用默认值
	CRect rect;
	GetWindowRect(&rect);
	CDC memDC;
	CBitmap bitmap;
	CBitmap* bmp = NULL;
	bitmap.LoadBitmap(IDB_BITMAP1);//装载背景位图
	memDC.CreateCompatibleDC(pDC);
	bmp = memDC.SelectObject(&bitmap);
	pDC->BitBlt(0, 0, rect.Width(), rect.Height(), &memDC, 0, 0, SRCCOPY);
	if (bmp) memDC.SelectObject(bmp);

	return TRUE;
}

05. Método secreto da mente

Recursos para Visual C ++

Usando o Visual C ++ para desenvolver aplicativos, é necessário entender o conceito de recursos. No Visual C ++, ícones, bitmaps, caixas de diálogo, barras de ferramentas e strings são todos chamados de recursos. Os recursos têm atributos de linguagem e os aplicativos podem chamar os mesmos Recursos diferentes para atributos de linguagem.

06. Baixe o código fonte

Download: 【MFC】 Multilingual Toolbar.rar

07. Apêndice

Referência: "Visual C ++ From Entry to Proficiency (Project Case Edition)"

Acho que você gosta

Origin blog.csdn.net/dengjin20104042056/article/details/114449959
Recomendado
Clasificación