obtener hdc de un userform

17/11/2008 - 23:52 por Ivan | Informe spam
hola a todos

¿sabeis como podria obtener le dispositivo de contexto (hdc) de un
userForm?

algo tipo al API findWindow o similar para el Hwnd pero para el Hdc

seria de cara a unas pruebas que estoy haciendo con diversas APIs del
GDI y los userForm

bueno, lo dicho, si sabeis algo os lo agradezco

un saludo
Ivan

Preguntas similare

Leer las respuestas

#6 Héctor Miguel
30/11/2008 - 03:02 | Informe spam
hola, Vinchenzo !

(como siempre...) bienvenidos tus saludos y sobre todo... "su contexto"
(contexto agregado a "mi coleccion" de Vinchen-tips) :))

hector.

__ OP __
¡Un saludo!, ...ya sabéis que me gusta venir de vez en cuando a saludar sin que parezca un OT ;-)

Solo quería comentar, esclarecer, o poner una pincelada si lo preferís, conferme el término 'hDC'
se refiere en efecto a un controlador de un contexto de dispositivo (Handle to a Device Context).

El dispositivo de contexto es una estructura interna que incluye todas las "herramientas" necesarias para "dibujar, pintar y colorear"
mediante las funciones de la interfaz de dispositivos gráficos (Graphics Device Interface) gracias al controlador obtenido.
El DC mantiene la información de estos objetos, y estas "herramientas de dibujo" (objetos) lo forman el papel o lienzo
el lápiz para dibujar líneas, una brocha para pintar y rellenar, una paleta de colores, un mapa de bits, y un par de objetos más.
Estos objetos gráficos tienen asociadas ciertas propiedades, por ejemplo un color de fondo, un estilo y color para el lápiz y la brocha
su grosor, el nombre de una fuente y su tamaño, etc.

No manipularemos el dispositivo de contexto directamente, siempre será mediante las funciones de la GDI
y es importante remarcar la segunda función que comentó Héctor, "ReleaseDC". Cada vez que termines de usar el hDC
no olvides llamar a esta función para liberar el controlador, o de lo contrario tendrás fugas de memoria durante la ejecución.
Si no se gestionaran correctamente los objetos de GDI se podría obtener un impacto muy negativo en los recursos del sistema.

La función GetDC te devolverá el contexto de dispositivo del área cliente de la ventana que especifiques
y si no especificas ninguna te devolverá el de la pantalla.
Si necesitas tener también acceso al área no-cliente de la ventana usarás la función GetWindowDC. GetDCEx es la versión extendida de GetDC, y te podría proporcionar opciones interesantes.

En .Net no necesitarías incluir las llamadas implícitamente a las funciones de la GDI
supongo que a menos que necesites manipular el dispositivo de alguna ventana de otro proceso
en .Net tienes el espacio de nombres 'System.Drawing' que encapsula la GDI+, el cual no he revisado más que muy por encima
y hace varios meses ya, tus conocimientos están más avanzados que los míos en .Net.

Bueno, seguiremos en contacto.

Saludos cordiales, compañeros.
Respuesta Responder a este mensaje
#7 Ivan
30/11/2008 - 04:17 | Informe spam
hola Vinchenzo,

como siempre, encantado de saludarte. Y como Hector [un saludo :-)],
añado a mi saca particular tus apuntes,

algunos de los cuales ("ReleaseDC" pej), por otro lado creo que medio
explican mas de un disgustillo que he tenido ultimamente con mis
jugueteos con los graficos ... ire con mas tiento en adelante :-D

en .Net tienes el espacio de
nombres 'System.Drawing' que encapsula la GDI+,


el cual no he revisado más
que muy por encima, y hace varios meses ya, tus conocimientos están más
avanzados que los míos en .Net.



sin animo de 'pelotear', creo que el dia que 'yo' me acerque, aunque
sea de lejos, a tus (vuestros) conocimientos en este mundo, ya sea
net, vba, vb, o , me podre dar por satisfecho [o no ...:-)],
aunque sera seguro que para entonces vosotros volvereis a estar un
monton de peldaños por encima, ... por suerte para mi :-)))

un saludo y me alegro de 'veros'
Ivan
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una pregunta AnteriorRespuesta Tengo una respuesta
Search Busqueda sugerida