elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Introducción a Git (Primera Parte)


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  duda sobre strstr en c++ (WinApi)
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] 2 Ir Abajo Respuesta Imprimir
Autor Tema: duda sobre strstr en c++ (WinApi)  (Leído 5,917 veces)
xkiz ™


Desconectado Desconectado

Mensajes: 1.252


Ver Perfil WWW
duda sobre strstr en c++ (WinApi)
« en: 22 Septiembre 2011, 15:08 pm »

hola gente, "trabajando" en un proyecto me tope con un problema tal vez un poco tonto pero la verdad, ya mi cabeza esta quemada y la verdad es que no me sale, por lo que vi en cplusplus el ejemplo de uso no es difícil pero me blockie y puf.

bue, estoy armando un menú el cual saco los string de cada ítem desde el recursos, hasta ahí todo bien, el tema es que entre estos string hay uno que es "aaaa & bbb" por ejemplo, contiene un carácter "&" el cual no logro hacer visible entre el texto del menú.
se que estos caracteres como & van antecedidos por el carácter "\" para que sean visibles, pero ese mismo string lo uso como titulo de la ventana.

googleando me tope con este ejemplo strstr y por lo que vi es simple el uso, pero no me sale

Código
  1. TACHAR szTitle[50];
  2. char dumy[30];
  3. char * pch;
  4.  
  5. LoadString(hInst, 10, szTitle, sizeof(szTitle));
  6. pch = strstr (szTitle,"&");
  7. strncpy (pch,"&&",2);
  8.  
  9. AppendMenu(hMenu, MF_GRAYED, 0, dumy);
  10.  

el resultado de eso es "aaaa &bbb".
ya me trabe y necesito ayuda con esto, me pudo.
pls help



« Última modificación: 22 Septiembre 2011, 16:25 pm por xkiz ™ » En línea

naderST


Desconectado Desconectado

Mensajes: 625



Ver Perfil WWW
Re: duda sobre strstr en c++ (WinApi)
« Respuesta #1 en: 22 Septiembre 2011, 18:11 pm »

A ver si entiendo bien tu resultado debería ser el siguiente:

"aaaa & bbb"

y no:

"aaaa &bbb"


En línea

xkiz ™


Desconectado Desconectado

Mensajes: 1.252


Ver Perfil WWW
Re: duda sobre strstr en c++ (WinApi)
« Respuesta #2 en: 22 Septiembre 2011, 18:42 pm »

si, osea ese mismo string szTitle lo uso para hacer un WM_SETTEXT y se visualiza bien así como esta en el String Table "aaaa & bbb" pero al pasarlo a un ítem del menú el carácter & se usa para poner el subrayado en una palabra, yo lo que necesito es que aparezca el carácter "&"
En línea

Lambda


Desconectado Desconectado

Mensajes: 371



Ver Perfil WWW
Re: duda sobre strstr en c++ (WinApi)
« Respuesta #3 en: 22 Septiembre 2011, 18:45 pm »

Prueba ponerlo duplicado "Texto && Mas Texto"
« Última modificación: 22 Septiembre 2011, 18:53 pm por Lambda » En línea

xkiz ™


Desconectado Desconectado

Mensajes: 1.252


Ver Perfil WWW
Re: duda sobre strstr en c++ (WinApi)
« Respuesta #4 en: 22 Septiembre 2011, 19:19 pm »

si podría ponerlo así, pero después entro en el mismo problema a la inversa, por que en el menú me queda bien, pero en la barra de titulo [SendMessage(hWnd, WM_SETTEXT,0, (LPARAM)dumy);] me queda con 2 "&", y para complicarmela un poco mas ese mismo texto lo tengo de tooltip del systry.
si le pongo "aaaa &&& bbb" tendría que restarle "&&" a donde le hago WM_SETTEXT...

me metí en un quilombo innecesario al cuete, help!
En línea

naderST


Desconectado Desconectado

Mensajes: 625



Ver Perfil WWW
Re: duda sobre strstr en c++ (WinApi)
« Respuesta #5 en: 22 Septiembre 2011, 19:47 pm »

Podrías hacer lo siguiente dejarlo como lo tenías en un principio y hacer una función strreplace como la de php no se si sabes como es, y reemplazas el & por && cuando vayas a asignarle el texto al menú y listo.
En línea

xkiz ™


Desconectado Desconectado

Mensajes: 1.252


Ver Perfil WWW
Re: duda sobre strstr en c++ (WinApi)
« Respuesta #6 en: 22 Septiembre 2011, 20:27 pm »

es lo que trato de hacer pero no me sale, osea en si tengo que hacer esto, sea para sumar & o bien para sacar & exedentes, e tema es que no se k procedimiento usar para esto, yo puse strstr por que es lo 1º que se me ocurrio, pero escucho sugerencias.
En línea

naderST


Desconectado Desconectado

Mensajes: 625



Ver Perfil WWW
Re: duda sobre strstr en c++ (WinApi)
« Respuesta #7 en: 22 Septiembre 2011, 20:29 pm »

Código
  1. #include <stdlib.h>
  2. #include <stdio.h>
  3. #include <string.h>
  4.  
  5. char *strreplace(const char * str, const char * find, const char * replace){
  6. int i,j,k, flag, pos = -1;
  7. int bytes = strlen(str)-strlen(find)+strlen(replace);
  8. char * nstr = (char*)malloc(bytes+1);
  9. memset(nstr, 0, bytes+1);
  10.  
  11. for(i = 0; i <= strlen(str)-strlen(find); i++){
  12. flag = i;
  13. k = 0;
  14. for(j=i; j<=(i+strlen(find)-1); j++){
  15. if(find[k] != str[j])
  16. flag = -1;
  17. k++;
  18. }
  19.  
  20. if(flag != -1)
  21. pos = flag;
  22. }
  23.  
  24.    int size = pos + strlen(replace) - 1;
  25.    int oldsize = pos + strlen(find);
  26. int cont = 0;
  27. j = 0;
  28.  
  29.    for(i=0;i<=bytes-1;i++){
  30.        if(i>=pos && i<=size){
  31.            nstr[i] = replace[cont];
  32.            cont++;
  33.            if(i==size)
  34.                j=oldsize;
  35.        } else {
  36.            nstr[i] = str[j];
  37.            j++;
  38.        }
  39.    }
  40.  
  41. return nstr;
  42. }
  43.  
  44. int main(){
  45. char * reemplazo = strreplace("Texto & texto", "&", "&&");
  46. printf("%s\n" ,reemplazo);
  47. free(reemplazo);
  48.  
  49. return 0;
  50. }
  51.  

Fíjate si mi función de strreplace te funciona...
En línea

xkiz ™


Desconectado Desconectado

Mensajes: 1.252


Ver Perfil WWW
Re: duda sobre strstr en c++ (WinApi)
« Respuesta #8 en: 23 Septiembre 2011, 00:25 am »

la verdad si me sirvió, ahora tengo que analizar lo que hacer para ver si logro entender la lógica.


gracias
En línea

Karman


Desconectado Desconectado

Mensajes: 673



Ver Perfil WWW
Re: duda sobre strstr en c++ (WinApi)
« Respuesta #9 en: 23 Septiembre 2011, 05:05 am »

bue, estoy armando un menú el cual saco los string de cada ítem desde el recursos, hasta ahí todo bien, el tema es que entre estos string hay uno que es "aaaa & bbb" por ejemplo, contiene un carácter "&" el cual no logro hacer visible entre el texto del menú.
se que estos caracteres como & van antecedidos por el carácter "\" para que sean visibles, pero ese mismo string lo uso como titulo de la ventana.

quien te dijo que tenes que agregarle "\" ? el caracter "&" no tiene nada especial... si no te aparece subrayado debe ser por otra cosa y con respecto a tu ejemplo:

Citar
"aaaa & bbb"

eso no va a funcionar por el espacio en blanco... a lo sumo "aaaa &bbb".

esta es la función encargada de dibujar los strings en los menús: DrawTextEx

fijate la parte de DT_PREFIXONLY

S2
En línea

Páginas: [1] 2 Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Pregunta sobre ASM y WinAPI « 1 2 »
ASM
Shrick 15 7,630 Último mensaje 27 Noviembre 2009, 14:16 pm
por dark_hat
Equivalencia de función WINAPI unsigned int WINAPI myRun en Windows con Ubuntu
Programación C/C++
bertamax 2 2,133 Último mensaje 7 Agosto 2010, 16:27 pm
por bertamax
Ayuda sobre WINAPI
Programación C/C++
[NelSito*] 0 1,303 Último mensaje 22 Octubre 2010, 21:37 pm
por [NelSito*]
Sobre menu en winapi
Programación C/C++
d00ze13 2 3,142 Último mensaje 29 Marzo 2011, 17:46 pm
por d00ze13
duda con WinAPI para imprimir algo
Programación C/C++
raxor12 0 649 Último mensaje 20 Febrero 2015, 05:11 am
por raxor12
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines