C/Visual C - Texto de un dialogo

 
Vista:

Texto de un dialogo

Publicado por Federico (40 intervenciones) el 26/03/2009 14:27:47
Hola estoy intentando tomar el texto de un textbox en VisualC++, pero me retorna vacio la cadena aqui les posteo el codigo

/*Creo el textBox*/
HWND hCntl;
hCntl = CreateWindowEx(0, L"EDIT" , L"", ES_LEFT | WS_CHILD | WS_VISIBLE | WS_BORDER | WS_TABSTOP, 140, 10, 200, 20, hWnd, (HMENU)IDC_TXTUSER, NULL, NULL);

/*Le pongo texto, hasta aca funciona perfectamente*/
SetDlgItemText(hWnd,IDC_TXTUSER, L"Prueba");

/*Tomo la longitud del texto*/
DWORD dwLength = 0;
dwLength = SendMessage(GetDlgItem(hWnd,IDC_TXTUSER), WM_GETTEXTLENGTH, 0, 0) ;

/*La longitud es la correcta*/

UINT Ret = 0;
LPWSTR s = L"";
Ret = GetDlgItemText(hWnd,IDC_TXTUSER,s,dwLength);

He probado con varios tipos para s pero de ninguna forma pude logralo, les agradazco su tiempo. El valor de Ret, por lo que tengo entendido la funcion fallo al recuperar el valor.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Texto de un dialogo

Publicado por jose (21 intervenciones) el 31/03/2009 01:57:50
UINT Ret = 0;
//LPWSTR s = L""; // <-- tipo de dato incorrecto ademas de ser solo un puntero.
char s[1024]; // <-- tipo de dato correcto de acuerdo al argumento del GetDlgItemText.

Ret = GetDlgItemText(hWnd,IDC_TXTUSER,s, dwLength+1 ); // +1 terminacion NULL.
MessageBox( hWnd, s, "", 0 );

// CHAR es una defincion de char
// PCHAR es una defincion de char * (puntero) arriba...

// UCHAR es una defincion de unsigned char
// PUCHAR es una defincion de UCHAR * (puntero) arriba...

// WCHAR es una defincion de unsigned short
// PWCHAR es una defincion de char * (puntero) etc...

// Estas definiciones son derivados de los tipos de datos básicos.
// No son tipos de datos diferentes, solo resumidos.

return true;
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Texto de un dialogo

Publicado por Federico (40 intervenciones) el 31/03/2009 04:32:54
Antes que nada agradezco tu ayuda, y comento algo mas que habia olvidado estoy trabajando todo en UNICODE como set de caracteres, lo cual me obliga a usar _tmain y todas las funciones reciben argumentos distintos, te comento qe solucione el asunto, no se si es la forma correcta, pero por lo que lei arriba tu manejo de tipo de datos es muy superiror al mio. efectivamente pase un array de chars a la funcion y luego para usarla en las funciones qe necesitaban unicode (manejo de active directory) use esto _com_util::ConvertStringToBSTR o parecido, desconozco tb la necesidad de usar la L delante de los strings unicode

de todas maneras Muchisimas gracias y espero en algun momento devolverte la mano que me diste.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

dialogo e4n un texto

Publicado por karen (1 intervención) el 16/04/2009 21:57:08
hola como estas q haces
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar