Autor
|
Tema: Duda con ventanas y c++ (Leído 2,154 veces)
|
5cr173R
Desconectado
Mensajes: 13
No tengo espada, yo hago de mi alma mi espada.
|
Buenas, estoy desarrollando un programa que reemplazara el escritorio de windows, algo asi como un wallpaper muy elaborado, pero necesito saber como mantener a mi ventana al nivel del escritorio (Lo mas abajo). El programa lo desarrollo en Game Maker 8, y la DLL en la que debe estar la funcion de mover la ventana abajo con Dev-C++. Se que con esta funcion:
SetWindowPos(wnd,HWND_BOTTOM,0,0,0,0,SWP_NOSIZE + SWP_NOMOVE);
empujo a la ventana, pero tengo que ejecutarla muchas veces para mantenerla abajo, y esto hace que la barra de tares parpadee y cuando le paso el foco a las ventanas normales, estas tambien parpadean.
Que me aconsejan? de antemano se les agradece y si quieren credito en el proyecto con mucho gusto los incluyo. Gracias
|
|
|
En línea
|
No tengo parientes, yo hago que la Tierra y el Cielo lo sean. No tengo hogar, yo hago que mi cuerpo lo sea. No tengo poder divino, yo hago de la honestidad mi poder. No tengo medios, yo hago mis medios de la docilidad. No tengo poder mágico, yo hago de mi personalidad mi magia. No tengo cuerpo, yo hago del estoicismo mi cuerpo. No tengo ojos, yo hago del relámpago mis ojos. Watashi wa bushi
|
|
|
engel lex
|
y si la ocultas? y si la escondes arriba del escritorio en posiciones negativas?
|
|
|
En línea
|
El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.
|
|
|
amchacon
Desconectado
Mensajes: 1.211
|
Sin ver el código, se me ocurre: while (1) // bucle { // Programa SetWindowPos(); Sleep(500); // Duermo el programa 500 ms. }
Lo que quiero decirte es que uses Sleep(); para hacer descansar el programa, al hacer menos operaciones debería de parpadear menos.
|
|
|
En línea
|
|
|
|
5cr173R
Desconectado
Mensajes: 13
No tengo espada, yo hago de mi alma mi espada.
|
y si la ocultas? y si la escondes arriba del escritorio en posiciones negativas?
No comprendo, que son posiciones negativas? En si es una ventana ajena al codigo en c++ (La dll la hago en C++ y la aplicacion en Game Maker), ya que game maker es un IDE escrito en delphi y utiliza funciones externas definidas desde librerias o DLLs, la fucion solo la puedo llamar entre cada actualizacion de ventana, asi que mi cuestion es si puedo definir a la ventana (Editar algun LONG con SetWindowLong) que la mantenga por debajo sin llamar varias veces a la funcion. Gracias
|
|
|
En línea
|
No tengo parientes, yo hago que la Tierra y el Cielo lo sean. No tengo hogar, yo hago que mi cuerpo lo sea. No tengo poder divino, yo hago de la honestidad mi poder. No tengo medios, yo hago mis medios de la docilidad. No tengo poder mágico, yo hago de mi personalidad mi magia. No tengo cuerpo, yo hago del estoicismo mi cuerpo. No tengo ojos, yo hago del relámpago mis ojos. Watashi wa bushi
|
|
|
5cr173R
Desconectado
Mensajes: 13
No tengo espada, yo hago de mi alma mi espada.
|
Sin ver el código, se me ocurre: while (1) // bucle { // Programa SetWindowPos(); Sleep(500); // Duermo el programa 500 ms. }
Lo que quiero decirte es que uses Sleep(); para hacer descansar el programa, al hacer menos operaciones debería de parpadear menos. Creo que veo la idea, pero la cosa es que el codigo que empuje la ventana va dentro de una DLL. La ventana que lo llama no esta escrita en C++, sino con Game Maker (Lenguaje GML). Llevo esto en la dll: #include <windows.h> DLLIMPORT double window_set_bottom (char* procesog) { HWND wnd = FindWindow(0,procesog); SetWindowPos(wnd,HWND_BOTTOM,0,0,0,0,SWP_NOSIZE + SWP_NOMOVE); } void DllMain () { }
Y en la aplicacion de Game Maker la defino con global.set_bottom = external_define("GMMFDLL.DLL",'window_set_bottom',dll_cdecl,ty_real,1,ty_string);
Y la llamo desde un evento asi external_call(global.set_bottom,"paradize") // donde paradize es mi aplicacion
Eso la empuja, pero al volver el foco a "Paradize", vuelve a ponerla arriba
|
|
|
En línea
|
No tengo parientes, yo hago que la Tierra y el Cielo lo sean. No tengo hogar, yo hago que mi cuerpo lo sea. No tengo poder divino, yo hago de la honestidad mi poder. No tengo medios, yo hago mis medios de la docilidad. No tengo poder mágico, yo hago de mi personalidad mi magia. No tengo cuerpo, yo hago del estoicismo mi cuerpo. No tengo ojos, yo hago del relámpago mis ojos. Watashi wa bushi
|
|
|
amchacon
Desconectado
Mensajes: 1.211
|
HWND wnd = FindWindow(0,procesog); SetWindowPos(wnd,HWND_BOTTOM,0,0,0,0,SWP_NOSIZE + SWP_NOMOVE);
Prueba a poner: HWND wnd = FindWindow(0,procesog); SetWindowPos(wnd,HWND_BOTTOM,0,0,0,0,SWP_NOSIZE + SWP_NOMOVE); Sleep(200);
|
|
|
En línea
|
|
|
|
5cr173R
Desconectado
Mensajes: 13
No tengo espada, yo hago de mi alma mi espada.
|
HWND wnd = FindWindow(0,procesog); SetWindowPos(wnd,HWND_BOTTOM,0,0,0,0,SWP_NOSIZE + SWP_NOMOVE);
Prueba a poner: HWND wnd = FindWindow(0,procesog); SetWindowPos(wnd,HWND_BOTTOM,0,0,0,0,SWP_NOSIZE + SWP_NOMOVE); Sleep(200);
Tendre que probarlo, si funciona te aviso, gracias por la ayuda
|
|
|
En línea
|
No tengo parientes, yo hago que la Tierra y el Cielo lo sean. No tengo hogar, yo hago que mi cuerpo lo sea. No tengo poder divino, yo hago de la honestidad mi poder. No tengo medios, yo hago mis medios de la docilidad. No tengo poder mágico, yo hago de mi personalidad mi magia. No tengo cuerpo, yo hago del estoicismo mi cuerpo. No tengo ojos, yo hago del relámpago mis ojos. Watashi wa bushi
|
|
|
|
Mensajes similares |
|
Asunto |
Iniciado por |
Respuestas |
Vistas |
Último mensaje |
|
|
Duda con ventanas en Tkinter en python
Scripting
|
XD YO
|
5
|
13,866
|
3 Febrero 2010, 05:28 am
por XD YO
|
|
|
Duda sobre codigo para centrar ventanas
« 1 2 »
Java
|
ZedGe
|
10
|
6,569
|
28 Junio 2011, 17:00 pm
por Valkyr
|
|
|
Visual Basic 2008 Duda Ventanas
.NET (C#, VB.NET, ASP)
|
Anonymatrix
|
3
|
1,951
|
20 Marzo 2013, 20:40 pm
por Danyfirex
|
|
|
[Duda] Movimiento de las ventanas. [C#]
Programación General
|
XorNet
|
2
|
1,694
|
12 Enero 2014, 19:23 pm
por z3nth10n
|
|