![]() |
Winapi Hola antes que cualquier otra cosoa saludos a todos, no he andado por aqui en mucho tiempo, pero ya me llegaron las vacaciones. Bueno, ahce algunos meses esta intentando hacer una pequeña interface POO para windows pero haro quiero continuar. Tengo varias interrogantes, la principal es como realcionas una instancia de las clases que estoy creando con el procedimiento de ventana. Osea, se creo un manejador para un evento, como ahcer que la instancia apripoado lo reciva. Creo algunos controles, sucede que planeaba pasar informacion atraves de la lpParam al crear la ventanta(mediente la llamada a CreateWindowEx()), pero solo puede recuperarla desde dentro del procedimiento de ventana, o porlo menos es la unica forma que conosco. Alguien tiene una mejor idea. Me gustari sbaer que hay una funcion de la api que toma como parametro un HWND y retorna LPCREATEPARAM o algo semejante Ademas, el procedimiento de ventana tiene un valo de retorno, deve haver alguna forma de obtenerlo, creo que eso me ayudaria. De antemano gracias. |
Re: Winapi Si quieres hacerlo POO, siempre puedes encerrar el código GUI dentro de tus propias clases (algo como la MFC, pero más sencillo y directo a tus necesidades). Yo hice algo así hace ya tiempo: Código: class windowDecir que no funcionaba nada mal, y era fácilmente portable... |
Re: Winapi es una buena opcion, si. Pero tengo mucho tiempo para encontrar una mejor, especificamente quiero que el procedimeinto de ventana llame a a funcionese de la clases (como en la mfc), en cuantos a las nececidades pues el objetivos es que sea general. Aun que pensandolo bien es una idea sencilla y util, vere como la puedo utilizar |
Re: Winapi Date cuenta de que usando esa manera no tendrás más problemas pasando punteros extraños a través de funciones de Windows, dado que, al tener tus propias clases, los datos que quieras ya los almacenas allí. Además de aislar el código GUI-Windows no portable del código de la aplicación propiamente dicha. |
Re: Winapi Pero como me deshago de los parametros para CREATESTRUCTURE, WINCLASSEX y HINSTANCE, son un dolor de cabesa. No entiendo como es que propones manejar estos tipos de datos. Puede ser un poco nas explicito. Si pudiera sinplemente crear una ventana(sin registrarla, como con 'edit','button'...) pero aun asi asignar el procedimiento de venta seria magnifico, tienes idea de la posibilidad de esto?. |
Re: Winapi No entiendo el problema específico que tienes... Tú pones el código para crear tu ventana (CreateWindowEx() y demás), en el constructor a ser posible, pasándole los argumentos que requieras... |
Re: Winapi que tal, si lo que estas haciendo NO es una tarea ni por mera practica...... por que no usas la MFC? si no te gusta, hay otras buenas alternativas: WTL wxWidgets gtk saludos, |
Re: Winapi Si realmente quieres aventurarte con el API de Windows. No veo forma de des ahcerte del procedimiento de ventana que a de asignarse al puntero de la estructura de la Clase de ventana. la forma en que puedes usarlo es como un procedimiento amigo de la clase o como un metodo estatico. en ambos casos no podrias acceder al puntero this. hay formas de poder obtenerlo. una es obtenerlo directamente en el Procedimiento de ventana o usar un metodo de la clase que realice las mismas funciones del procedimiento de ventana, similar a como ha mostrado en su ejemplo MaxExtreme. la mejor forma de obtener el puntero this es usando la funcion GetWindowLong, funcion que retorna un dato de la ventana (HWND) que pasas como parametro determinado por el indice o constante GWL_.... generalmente GWL_USERDATA. claro antes tienes que asignar este puntero(this) a tu ventana, ya sea con SetWindowLong, si lo obtendras con GetWindowLong o en el campo lParam de una estructura MDICREATESTRUCT pasandola en el ultimo parametro de la funcionCreateWindowEx. Las funciones GetWindowLong y SetWindowLong te seran muy utiles, y las respectivas constantes GWL_.... Saludos. |
Re: Winapi hola blackwind, es que la unica utilidad segura que ahora tengo en mente es la practica, dado que llo trabajo en vb y c#, pero espero que sea usable. Hola nivel7, creo que esa es mi respuesta, es he tenido pocos ides de como solucioanar ese problema, lu estuv intetando mediante lpparam CreateWindowEx, pero solo podia obtener desde el procedimiento. Pero bueno voy a sudiar esas funciones y luego coment como me fue. |
Re: Winapi Asi fue, GetWindowLong y SetWindowLong fueron sumamente utiles. Es tan simple como comvertir el valor en un puntero y listo. Gracias. |
Re: Winapi Hola, de nuevo con esta cantaleta, veran, tengo una clase que es la encargada de crear los controles como botenes y caja de texto, pero en el caso de edit, cuando se visualisa es una tira plana de fondo blanco, pero el botton se ve como estoy acostumbrado en 3D, me gustaria que me dijeran como puedo cambiar esto. Gracias. |
Re: Winapi No comprendo muy bien, pero si te refieres a que no se muestra en 3D, la verdad no estoy seguro si esta sea la solucion, pero podrias solucionarlo con WS_EX_CLIENTEDGE como estilo extendido. intentalo. |
Re: Winapi Hola nivel 7 disculpa la falta de atencio. Bueno prove lo que me dijistis me no tiene efecto. El problema es que creo una instancia de ventana windows, espec ificamente creo una ventana edit, pero su apariencia es la de un rectangulo con fondo blanco, y yo quiero que paresca una el texbox que estoa acostumbrado a ver. |
| La zona horaria es GMT -6. Ahora son las 23:02. |
Desarrollado por vBulletin® Versión 3.8.7
Derechos de Autor ©2000 - 2026, Jelsoft Enterprises Ltd.