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

 

 


Tema destacado: Como proteger una cartera - billetera de Bitcoin


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  Como madres muevo un control en run-time?
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Como madres muevo un control en run-time?  (Leído 3,018 veces)
Yoghurt

Desconectado Desconectado

Mensajes: 122


Si alguien se molesto en escribir, justo es leer.


Ver Perfil WWW
Como madres muevo un control en run-time?
« en: 13 Enero 2013, 20:52 pm »

Hola buenos días. He buscado en muchos lugares y muy pocas webs hablan de como mover controles en tiempo de ejecución mas encima la web esta plagado de C# FoxPro .Net y otas variaciones que ni me interesan.  Lo que yo uso es el estandart C99 o C11 que es el más nuevo.

PellesC es mi IDE. Usando Windows.h

Bueno, como muevo un insignificante boton? ...tambien debo ocultar otro boton, un textbox y un label además de cambiarle el texto al boton que voy a mover de posición.

La ayuda se agradece muchísimo pues estoy aprendiendo recien C99.


En línea

x64core


Desconectado Desconectado

Mensajes: 1.908


Ver Perfil
Re: Como madres muevo un control en run-time?
« Respuesta #1 en: 14 Enero 2013, 06:51 am »

MoveWindow para mover
ShowWindow para mostrar/ocultar
SendMessage para cambiar texto

solamente necesitas el handle al control


En línea

BlackZeroX
Wiki

Desconectado Desconectado

Mensajes: 3.158


I'Love...!¡.


Ver Perfil WWW
Re: Como madres muevo un control en run-time?
« Respuesta #2 en: 15 Enero 2013, 06:46 am »

SendMessage tiene una infinidad de funciones (Te podría "sustituir" MoveWindow(), ShowWindow() emular clicks, pulsaciones, etc ya que se especia-lisa en mandar mensajes).

SetWindowText para cambiar texto.

Dulces Lunas!¡.
En línea

The Dark Shadow is my passion.
x64core


Desconectado Desconectado

Mensajes: 1.908


Ver Perfil
Re: Como madres muevo un control en run-time?
« Respuesta #3 en: 15 Enero 2013, 08:14 am »

SendMessage tiene una infinidad de funciones (Te podría "sustituir" MoveWindow(), ShowWindow() emular clicks, pulsaciones, etc ya que se especia-lisa en mandar mensajes).

SetWindowText para cambiar texto.

Dulces Lunas!¡.


SendMessage no puede "sustituir" como dices, si se utiliza SendMessage se estara saltando Mensajes de proceso de Windows tales como actualización de tamaño de
objetos de Ventanas, actualización de la region del cliente, mensajes que son usados por aplicaciones ( incluso por otros procesos ). por ejemplo
WM_PAINT para redibujar el area que ha sido cubierta por otra ventana/control de otros proceso. Crees que Microsoft creo tales funciones para nada? 
Así que porque implementar un ShowWindow o MoveWindow y hacer todo el trabajo manualmente?

Además, no hay razon de usar SetWindowText debido a que esta funcion termina usando los mensajes de windows. SendMessage es mejor
debido a que no solo puede cambiar el texto ( en este caso ) de un control del llamador sino también de otra aplicación/proceso.
Aprender muy bien a usar las funciones que ofrece Windows.
En línea

BlackZeroX
Wiki

Desconectado Desconectado

Mensajes: 3.158


I'Love...!¡.


Ver Perfil WWW
Re: Como madres muevo un control en run-time?
« Respuesta #4 en: 15 Enero 2013, 08:19 am »


SendMessage no puede "sustituir" como dices, si se utiliza SendMessage se estara saltando Mensajes de proceso de Windows tales como actualización de tamaño de
objetos de Ventanas, actualización de la region del cliente, mensajes que son usados por aplicaciones ( incluso por otros procesos ). por ejemplo
WM_PAINT para redibujar el area que ha sido cubierta por otra ventana/control de otros proceso. Crees que Microsoft creo tales funciones para nada?  
Así que porque implementar un ShowWindow o MoveWindow y hacer todo el trabajo manualmente?

Además, no hay razon de usar SetWindowText debido a que esta funcion termina usando los mensajes de windows. SendMessage es mejor
debido a que no solo puede cambiar el texto ( en este caso ) de un control del llamador sino también de otra aplicación/proceso.
Aprender muy bien a usar las funciones que ofrece Windows.


SendMessage tiene una infinidad de funciones (Te podría "sustituir" MoveWindow(), ShowWindow() emular clicks, pulsaciones, etc ya que se especia-lisa en mandar mensajes).

SetWindowText para cambiar texto.

Dulces Lunas!¡.

¿¿??

SetWindowText() también requiere el handle (de cualquier ventana accesible). Al final esta API llama a sendmessage() pero no te "enredas" con los mensajes es un poco mas simple.

P.D.: Cuando se manda el mensaje con SendMessage() me PARECE que se tiene que repintar el DC...

Dulces Lunes.
« Última modificación: 15 Enero 2013, 08:28 am por BlackZeroX (Astaroth) » En línea

The Dark Shadow is my passion.
x64core


Desconectado Desconectado

Mensajes: 1.908


Ver Perfil
Re: Como madres muevo un control en run-time?
« Respuesta #5 en: 15 Enero 2013, 08:28 am »

¿¿??

SetWindowText() también requiere el handle (de cualquier ventana accesible).

Dulces Lunes.

Bien entonces no siempre es bueno solo usar SendMessage no crees?
En cuanto a SetWindowtext La verdad que veo una función inútil, lo único que comprueba si es una handle valido y es perteneciente
al proceso del llamador de lo contrario no lo envía. pero si insistes con SetWindowtext porque crees que es mejor SetWindowText para cambiar el
texto de un Control o ventana hija ( como limitación ) en lugar de SendMessage con WM_SETTEXT?


Al final esta API llama a sendmessage()

Seguro, eso dije.

pero no te "enredas" con los mensajes es un poco mas simple.

Enredarse al escribir esto:

SendMessageW(Hwnd,WM_SETTEXT,0,lpStr);

?

P.D.: Cuando se manda el mensaje con SendMessage() me PARECE que se tiene que repintar el DC...

El texto no es una propiedad grafica nativa , no es necesario actualizar el area del cliente, no encontré algun texto que dijera incluso en la documentación oficial que era necesario actualizar el cliente. incluso se puede comprobar simplemente usando SendMessage + WM_SETTEXT .
de todas maneras si fuera necesario repintar es lo mismo que decir que usando SetWindowText tambien se necesita hacerlo.
« Última modificación: 15 Enero 2013, 22:11 pm por x64Core » En línea

BlackZeroX
Wiki

Desconectado Desconectado

Mensajes: 3.158


I'Love...!¡.


Ver Perfil WWW
Re: Como madres muevo un control en run-time?
« Respuesta #6 en: 15 Enero 2013, 08:36 am »

Total ya tienes dos opciones define tu vertiente:

SetWindowtext().
SendMessage() con WM_SETTEXT.

Solo mencione una alternativa. Lo del DC creo que me exprese mal quería decir que se auto pintaba pero da igual no es el caso este tema le servira a mas de una persona.

P.D.: Me parece que el caso o problema es en la propia instancia del programa.
P.D.: Se nota que sabes bastante pero no hay necesidad de restregar cada palabra que necesidad de demostrar, me pregunto que diría un psicologo.

Dulces Lunas!¡.
« Última modificación: 15 Enero 2013, 08:51 am por BlackZeroX (Astaroth) » En línea

The Dark Shadow is my passion.
Yoghurt

Desconectado Desconectado

Mensajes: 122


Si alguien se molesto en escribir, justo es leer.


Ver Perfil WWW
Re: Como madres muevo un control en run-time?
« Respuesta #7 en: 18 Enero 2013, 20:18 pm »

Gracias! Vaya que manojo de variaciones. Probaré algunas =) 
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
como muevo los archivos de java de un disco usb extraible al disco duro (c:)
Java
chilo 2 4,806 Último mensaje 8 Abril 2009, 13:06 pm
por chilo
Pantalla negra y si la muevo se enciende
Hardware
hectorynata 4 8,611 Último mensaje 18 Noviembre 2011, 03:37 am
por hectorynata
Blades of time sin el control de xbox?
Juegos y Consolas
sempus 0 3,290 Último mensaje 30 Septiembre 2012, 03:03 am
por sempus
ayuda como muevo un archivo
Programación Visual Basic
General Dmitry Vergadoski 8 3,052 Último mensaje 11 Agosto 2013, 12:18 pm
por noalg
Día de las madres! « 1 2 3 »
Foro Libre
r00t31 25 9,907 Último mensaje 11 Mayo 2017, 17:47 pm
por Eleкtro
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines