[MFC] Barra de herramientas multilingüe

00. Tabla de contenido

01. Resumen del caso

Un buen software se vende en todo el mundo. Si todo el software está en inglés, causará inconvenientes a los usuarios que no saben inglés. Por lo tanto, en la etapa de desarrollo del software, prepárese para varios idiomas y diseñe los recursos correspondientes. para todos los lenguajes., las aplicaciones creadas con Visual C ++ pueden cambiar dinámicamente estos recursos, y el ejemplo da cuenta del cambio dinámico de los recursos de la barra de herramientas. Resultados como se muestra a continuación.

[Error en la transferencia de la imagen del enlace externo. Es posible que el sitio de origen tenga un mecanismo anti-sanguijuelas. Se recomienda guardar la imagen y subirla directamente (img-HnBjsv3i-1615024814211) (assets / image-20210306175955432.png)]

02. Entorno de desarrollo

Entorno del sistema: Windows 10

Entorno de desarrollo: Visual Studio 2019

03. Tecnología clave

Para realizar la barra de herramientas en varios idiomas, debe diseñar la barra de herramientas para cada idioma por separado.Como se muestra en la figura siguiente, la barra de herramientas en chino y la barra de herramientas en inglés están diseñadas por separado.
Inserte la descripción de la imagen aquí

No solo el icono del botón de la barra de herramientas debe estar diseñado en chino e inglés, sino que también debe modificarse el atributo de idioma de la barra de herramientas. Las propiedades de la barra de herramientas se muestran en la siguiente figura.

04. Programación

(1) Cree una nueva aplicación basada en cuadros de diálogo.

(2) Agregue el recurso de barra de herramientas chino IDR_TOOLCHI y el recurso de barra de herramientas en inglés IDR_TOOLEN al proyecto.
Inserte la descripción de la imagen aquí

(3) La función de realización OnEnglish del botón "english" realiza el cambio de la barra de herramientas en inglés, el código es el siguiente.


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 de la mente

Recursos para Visual C ++

Al utilizar Visual C ++ para desarrollar aplicaciones, es necesario comprender el concepto de recursos. En Visual C ++, los iconos, mapas de bits, cuadros de diálogo, barras de herramientas y cadenas se denominan recursos. Los recursos tienen atributos de lenguaje y las aplicaciones pueden llamar a los mismos Recursos diferentes para los atributos del idioma.

06. Descarga el código fuente

Descargar: 【MFC】 Multilingual Toolbar.rar

07. Apéndice

Referencia: "Visual C ++ From Entry to Proficiency (Project Case Edition)"

Supongo que te gusta

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