Ver Mensaje Individual
  #1 (permalink)  
Antiguo 07/10/2010, 08:40
Asaak^
 
Fecha de Ingreso: agosto-2007
Mensajes: 20
Antigüedad: 16 años, 8 meses
Puntos: 1
mostrar caracteres chinos en un edit box en concreto

Hola a todos,

Dispongo de una aplicación muy extensa realizada en visual c++ 6.0. Necesitaría visualizar correctamente en un edit box caracteres chinos. he probado con un código de este estilo :

Código:
		// create UNICODE Font and apply it to the controls.	
	CDC *pDC = GetDC();
	CFont m_font;
	
	// create UNICODE font
	LOGFONT	lf;
	memset(&lf, 0, sizeof(lf));			
	lf.lfHeight = 20;
	lf.lfWeight = FW_NORMAL;
	lf.lfOutPrecision = OUT_TT_ONLY_PRECIS;
	lf.lfCharSet = GB2312_CHARSET;
	strcpy(lf.lfFaceName, _T("SimSun")); //copia el tipus de lletra a lf.lfFaceName ( canviat strcpy )

	m_font.CreateFontIndirect(&lf);
	
	// apply the font to the controls
	m_Lliure1.SetFont(&m_font,true);

	// release the device context.
	ReleaseDC(pDC);
compila, pongo los caracteres en el editbox pero cuando los confirmos con doble espacio a través del teclado virtual para chino me aparece un ? por cada símbolo.

Creo que es porque no tengo las directivas _UNICODE en el settings->preprocessor ni tampoco la opción wWinMainCRTStartup en SETTINGS->LINK->OUTPUT. Si las activo, obtengo más de 300 errores de compilación, debido a lo extenso que es mi código y la multitud de apariciones relacionadas con strings i caracteres que tiene.

No es posible utilizar unicode solo para este edit box en concreto sin tener que cambiar todo el código? muchas gracias!