Foros del Web » Programación para mayores de 30 ;) » C/C++ »

Programación con Windows

Estas en el tema de Programación con Windows en el foro de C/C++ en Foros del Web. Bunas, estoy recordando la programación en windows y tengo un problema, cada vez que inserto una cadena de caracteres en un ComboBox en vez de ...
  #1 (permalink)  
Antiguo 21/12/2007, 17:29
 
Fecha de Ingreso: diciembre-2007
Mensajes: 2
Antigüedad: 16 años, 5 meses
Puntos: 0
Programación con Windows

Bunas, estoy recordando la programación en windows y tengo un problema, cada vez que inserto una cadena de caracteres en un ComboBox en vez de el texto escrito me salen unos cuadraditos como si no reconociese la codificación, o alguna otra cosa.

Os pongo un poco de codigo para ver si me podeis ayudar.

Muchas grácias por adelantado!

Código:
case WM_INITDIALOG:{
			HWND hSoundDeviceCombo2 = GetDlgItem( hDlg, IDC_COMBO1 );
			// Add the string to the combo box
			char* mes[] = {"Antonio", "Fernando", "Carlos", "Santiago",
      "Pilar", "María", "Julio", "Federico", "Félix"};
			
			SendDlgItemMessage(hDlg, IDC_COMBO1, CB_ADDSTRING, 0, (LPARAM)mes[1]);
			SendMessage( hSoundDeviceCombo2,   CB_SETCURSEL, 0, 0 );
  #2 (permalink)  
Antiguo 22/12/2007, 05:28
 
Fecha de Ingreso: diciembre-2007
Mensajes: 2
Antigüedad: 16 años, 5 meses
Puntos: 0
Re: Programación con Windows

Ya lo solucioné.
El problema és de el tipo de carácteres que utilizas.
Esto es lo que encontre en un post de internet:

In a nutshell -

LPTSTR translates as a char pointer or a wchar_t pointer depending on whether the UNICODE token is defined or not. UNICODE is native on WNT/2K/XP and ANSI is native on W9x. NT systems do a good job of automatically converting ANSI strings to UNICODE where needed, but W9x doesn't perform the reverse quite so well.

If you have a string literal value that you want in unicode when the UNICODE token is defined, use either the TEXT or _T macros.

LPTSTR myString = _T("Hello World!");

When UNICODE is not defined, the above is the same as

char *myString = "Hello World!";

And when UNICODE is defined, the above is the same as

wchar_t *myString = L"Hello World!";

The 'L' prepending the string literal informs the compiler to render the string using wide characters, aka unicode.


Espero que ayude a alguien más.

;)
http://www.gamedev.net/community/forums/topic.asp?topic_id=185015
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 21:31.