Autor
|
Tema: duda sobre strstr en c++ (WinApi) (Leído 8,212 veces)
|
xkiz ™
|
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 TACHAR szTitle[50]; char dumy[30]; char * pch; LoadString(hInst, 10, szTitle, sizeof(szTitle)); pch = strstr (szTitle,"&"); strncpy (pch,"&&",2); AppendMenu(hMenu, MF_GRAYED, 0, dumy);
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
|
A ver si entiendo bien tu resultado debería ser el siguiente:
"aaaa & bbb"
y no:
"aaaa &bbb"
|
|
|
En línea
|
|
|
|
xkiz ™
|
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
|
Prueba ponerlo duplicado "Texto && Mas Texto"
|
|
« Última modificación: 22 Septiembre 2011, 18:53 pm por Lambda »
|
En línea
|
|
|
|
xkiz ™
|
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
|
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 ™
|
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
|
#include <stdlib.h> #include <stdio.h> #include <string.h> char *strreplace(const char * str, const char * find, const char * replace){ int i,j,k, flag, pos = -1; char * nstr = (char*)malloc(bytes +1); flag = i; k = 0; for(j =i ; j <=(i +strlen(find )-1); j ++){ if(find[k] != str[j]) flag = -1; k++; } if(flag != -1) pos = flag; } int size = pos + strlen(replace ) - 1; int oldsize = pos + strlen(find ); int cont = 0; j = 0; for(i=0;i<=bytes-1;i++){ if(i>=pos && i<=size){ nstr[i] = replace[cont]; cont++; if(i==size) j=oldsize; } else { nstr[i] = str[j]; j++; } } return nstr; } int main(){ char * reemplazo = strreplace("Texto & texto", "&", "&&"); return 0; }
Fíjate si mi función de strreplace te funciona...
|
|
|
En línea
|
|
|
|
xkiz ™
|
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
|
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: "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: DrawTextExfijate la parte de DT_PREFIXONLY S2
|
|
|
En línea
|
|
|
|
|
Mensajes similares |
|
Asunto |
Iniciado por |
Respuestas |
Vistas |
Último mensaje |
|
|
Pregunta sobre ASM y WinAPI
« 1 2 »
ASM
|
Shrick
|
15
|
9,459
|
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
|
3,137
|
7 Agosto 2010, 16:27 pm
por bertamax
|
|
|
Ayuda sobre WINAPI
Programación C/C++
|
[NelSito*]
|
0
|
2,032
|
22 Octubre 2010, 21:37 pm
por [NelSito*]
|
|
|
Sobre menu en winapi
Programación C/C++
|
d00ze13
|
2
|
4,033
|
29 Marzo 2011, 17:46 pm
por d00ze13
|
|
|
duda con WinAPI para imprimir algo
Programación C/C++
|
raxor12
|
0
|
1,399
|
20 Febrero 2015, 05:11 am
por raxor12
|
|