FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Buscar | Temas de Hoy | Marcar Foros Como Leídos |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
||||
|
||||
[gdi] Cambiar DrawFocusRectangle
la verdad q ya no se q mas intentar, quiero cambiar el rectangulo de foco a una linea solida, y tal vez cambiar el color (pero con la linea solida ya me alcanza)
las últimas 6 horas de google fueron bastardas, basicamente quiero cambiar: a esto: en principio no parece tan complejo, asignar un TPen al canvas del listbox y listo (tambien estoy cambiando el relleno, por eso asigno un TBrush también):
por que me ignora entonces? no hay absolutamente nada que pueda cambiar el comportamiento, sin embargo el brush del mismo ejemplo va perfecto [cambia el azul tipico a gris] DrawFocusRect solo pide un Trect por lo q _deberia_ tomar el pen q esta usando el canvas, que es lo que estoy errando ? socorro Última edición por Kimero fecha: 10-09-2006 a las 08:38:52. |
#2
|
||||
|
||||
Si quieres dibujar un rectángulo debes de usar Rectangle, ya que DrawFocusRect siempre se dibuja igual independiente de los valores que asignes al canvas. Por otro lado no hace falta que crees un Pen y Canvas nuevos cada vez, sobre todo porque luego no los destruyes y quedan en memoria. Bueno yo lo haría así:
|
#3
|
||||
|
||||
closer
mas cerca pero todavia aparece el rectangulo 'dotted' del foco:
http://cablemodem.fibertel.com.ar/kimero/foco3.png lo bizarro es q cuando el listbox pierde el foco [pasandoselo a un boton por ej], obtengo el resultado q queria desde el principio: http://cablemodem.fibertel.com.ar/kimero/foco4.png tengo el deseo desde lo mas profundo de mi alma de aniquilar las lineas punteadas te dejo como tengo el codigo [un poco mas compacto y el brush.color fuera del if]
|
#4
|
||||
|
||||
Seguro que hay alguna opción para que windows no dibuje el rectángulo del foco, pero como no tengo ganas de buscarla ahora , podemos hacer lo siguiente. El rectángulo del foco se dibuja invirtiendo el color del fondo, pues bien, si nosotros lo dibujamos primero una inversión anula a la otra:
|
#5
|
||||
|
||||
Hola,
¿Puedes creerte Seoane, que a mí sí me entraron ganas de averiguar cómo quitar el rectángulo "del foco" y por mucho que busqué y busqué (y probé y probé) y no encontré nada aparente, y acaso, casualmente, di con la misma solución que la que has propuesto? ¡Pero exactamente la misma! Y no por los mismos pasos... porque, aunque leí en el SDK de Windows que la función "DrawFocusRect" se anula a sí misma, ya digo, ha sido por una casualidad que se me ocurriera probar con lo mismo que tú... de hecho ha sido cuando iba a publicarlo aquí cuando he visto que ya habías tú respondido (como no podía ser de otro modo) de la misma manera. ¿Qué cosas, no? Esto lo cuentas y no se cree, como suele decirse, pero, te aseguro que es completamente así, como lo he dicho. Aunque, puesto que yo he dado por casualidad con el asunto, no hay caso... así no hay manera. A mí me picó que el compañero Kimero se iniciara en estos Foros con este Tema y lo empezara así: Cita:
Pues nada. No podía dejar de decirlo. Por favor, por favor, por favor, un poquito de por favor, que nadie piense que me invento nada: juro solemnemente (siempre quise decir algo así) que llegé a la solución que se perseguía, y feo está que lo diga, pero más porque llegué por casualidad que por otra cosa... PD. A ver si vamos a ser almas gemelas o algo de eso tú... Última edición por dec fecha: 10-09-2006 a las 13:42:40. |
#6
|
||||
|
||||
aprobado
compacto y no afecta la velocidad en absoluto, con eso me alcanza. Cita:
EDIT: al margen, ya habia probado enviar dos DrawFocusRectangle, pero ya ni me acuerdo como tenia el codigo exactamente, no funcionaba como lo tenia yo. EDIT2: Cita:
y no me gusta tirarle mis problemas a los demas apenas aparecen, me molesto yo mismo horas [dias en este caso ] antes de salir a preguntar Última edición por Kimero fecha: 10-09-2006 a las 13:50:57. |
#7
|
||||
|
||||
Hola,
Cita:
Cita:
Cita:
|
#8
|
||||
|
||||
Vuelvo a molestar
Sigo encontrando delirios, el simple hecho de cambiar la fuente a otro color q no sea black hace q se anule 'la inversión' *se sienta a pensar. |
#9
|
||||
|
||||
Cita:
Cita:
|
#10
|
||||
|
||||
Lo unico q se me ocurre, es q el textout genera un rectangulo tambien, y éste interfiere con la doble llamada al focusrec, inviertiendo lo q habias invertido.
edit: experimentando con TextRect |
#11
|
||||
|
||||
Cita:
|
#12
|
||||
|
||||
Hola,
Cita:
|
#13
|
||||
|
||||
Cita:
MIL GRACIAS, te debo una. [pd: por q funcionaria el black entonces... ] |
#14
|
||||
|
||||
Cita:
// Saludos |
#15
|
||||
|
||||
Hola,
Cita:
|
#16
|
||||
|
||||
Cita:
|
#17
|
||||
|
||||
Je, je. La verdad creo que estaba difícil encontrar ese hilo pues el título no ayuda. Sin embargo Kimero ya sabía de la función DrawFocusRect, así que esas seis horas de Google se hubieran reducido buscando en estos foros
// Saludos |
#18
|
||||
|
||||
Cita:
Y no encontre ese hilo por el titulo, como bien decis [pregunta por el foco a la mitad del hilo]. Apenas vi q era un Xor le mandé un Draw.. pero la clave como dijo dec estaba en mandarlo solo cuando esta odFocused. Pero bueno todo solucionado, gracias. |
Herramientas | Buscar en Tema |
Desplegado | |
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
cambiar nombres | Cosgaya | Varios | 1 | 22-11-2005 16:13:42 |
Cambiar una constante | D@byt | Varios | 3 | 24-05-2005 16:03:11 |
cambiar registro | JoseQ | Varios | 6 | 22-07-2004 20:00:00 |
Cambiar el wallpaper | soul6301 | Varios | 1 | 30-05-2004 16:40:23 |
Cambiar el directorio de la BD | marys | Conexión con bases de datos | 1 | 18-06-2003 12:29:17 |
|