Stratos: Punto de Encuentro de Desarrolladores

¡Bienvenido a Stratos!

Acceder

Foros





Obtener Propiedades Sobre La Apariencia De Windows

Iniciado por [EX3], 11 de Enero de 2004, 05:32:55 AM

« anterior - próximo »

[EX3]

 Existe alguna forma a traves del API de Windows de obtener las propiedades de apariencia de Windows, como por ejemplo el tamaño en pixeles del borde de una ventana, el tamaño de la barra de titulos, etc etc...??

Salu2...
José Miguel Sánchez Fernández
.NET Developer | Game Programmer | Unity Developer

Blog | Game Portfolio | LinkedIn | Twitter | Itch.io | Gamejolt

fiero

 Pues para eso del tamaño puedes utilizar las funciones:

GetWindowRect: Devuelve el tamaño total de la ventana
GetClientRect: Devuelve el tamaño del área cliente de la ventana

Después restando esos rectángulos puedes averiguar el tamaño del borde, y de la barra de titulo+menu  y de la barra de estado.

Tambien puedes utilizar la función:

BOOL AdjustWindowRectEx(
 LPRECT lpRect,    // pointer to client-rectangle structure
 DWORD dwStyle,    // window styles
 BOOL bMenu,       // menu-present flag
 DWORD dwExStyle   // extended style
);

y metiendole primero bMenu=true y luego bMenu=false, y restando, puedes saber el tamaño del menu, ya que con las funciones anteriores podrias calcular el tamaño de la suma de menu+titulo...

Es todo lo que se me ocurre sobre tamaño de ventanas, mira la ayuda de estas funciones, a ver si es esto lo que necesitas.

un saludo
www.videopanoramas.com Videopanoramas 3D player

tewe76

 Muy interesante, fiero. Pero yendo un poqito más allá: además de saber el tamaño del titlebar,el menú,etc, me gustaría poder cambiarlo. ¿Hay alguna forma?

He estado ojeando las APIs, pero no encuentro nada :(
Tewe
www.TAPAZAPA.com : Funny and easy to play games for all ages! - Fairy Match - Brain Crash
www.LaRebelionDelBiberon.com : Experiencias de unos padres primerizos

[EX3]

 Weno, mas o menos creo ke me podre apañar entre GetWindowRect() y GetClientRect(). Mi problema es que necesito averiguar las coordenadas del rectangulo devuelto por GetClientRect() en la pantalla, pero como en cada ekipo el tamaño de la barra de titulo y los bordes pueden ser diferentes pos no seria posible precisar las coordenadas correctas del rectangulo. Solo necesitaria saber cual es el tamaño de la barra de titulos y el tamaño de borde de ventana.

Gracias por la ayuda  ;)

Salu2...
José Miguel Sánchez Fernández
.NET Developer | Game Programmer | Unity Developer

Blog | Game Portfolio | LinkedIn | Twitter | Itch.io | Gamejolt

BeRSeRKeR

 Creo que lo que buscas es la función:

Citarint GetSystemMetrics (
    int nIndex    // system metric or configuration setting to retrieve
);

a la cual le pasas el elemento de la ventana del cual quieres conocer sus dimensiones. Mírate las MSDN para los posibles valores del parámetro "nIndex".

Saludos.
¡Si te buscan en nombre de la ley, huye en nombre de la libertad!!

[EX3]

 Como no cai antes, ke despiste!  (nooo)  

Ya he solucionado el problema ke tenia para averiguar las coordenadas de posicion en pantalla del area de cliente de una ventana. Al final he utilizado una funcion he usado cientos de veces y ke no recordaba,  ClientToScreen() para ke me devolviera la posicion en pantalla del area de cliente y GetClientArea() para saber las dimensiones, asi ke el problemilla ke tenia en el otro post de Programacion grafica 3D->Captura de pantalla sobre la captura de pantalla en modo ventana ya esta solucionado.  :)

Gracias a todos por la ayuda  ;)

Salu2...
José Miguel Sánchez Fernández
.NET Developer | Game Programmer | Unity Developer

Blog | Game Portfolio | LinkedIn | Twitter | Itch.io | Gamejolt

tamat

 más dificil todavía, alguien puede decirme si usando SDL se pueden llegar a saber estas cosas? o si es factible usar SDL e incrustar llamadas al API de windows para esas cosas que SDL no cubre (como tamaño, posicion de la ventana, etc).

Gracias,
Por un stratos menos tenso

[EX3]

 Hombre, no se si SDL tendra funciones para eso, pero no veo por ke no seria factible hacerlo a traves del API de Windows. Hombre, si por factible te refieres a no tener ke programar eso en varias plataformas a parte de windows, pos si SDL trae las funciones, mejor ke mejor, trabajo ke te ahorras.

Salu2...
José Miguel Sánchez Fernández
.NET Developer | Game Programmer | Unity Developer

Blog | Game Portfolio | LinkedIn | Twitter | Itch.io | Gamejolt






Stratos es un servicio gratuito, cuyos costes se cubren en parte con la publicidad.
Por favor, desactiva el bloqueador de anuncios en esta web para ayudar a que siga adelante.
Muchísimas gracias.