Título: Centrar texto en un listbox Publicado por: karmany en 25 Agosto 2006, 21:23 pm Esta es una pregunta que llevo mucho tiempo intentando resolver y sin éxito..
A ver si alguno sabe cómo centrar texto en un listbox.. Hasta ahora lo que he hecho es utilizar la letra Courier que es proporcional y así calculo el centro sabiendo los caracteres que caben en un listbox. A ver si a alguien se le ocurre algo mejor.. Gracias Título: Re: Centrar texto en un listbox Publicado por: karmany en 26 Agosto 2006, 23:14 pm Al final he conseguido algo que puede ser útil. El problema es que alineo el texto utilizando espacios y el problema de los espacios es que ocupan varios píxeles, dependiendo de cada letra. Por este motivo la alineación es buena pero no es perfecta, por culpa de estos píxeles de los espacios..
He intentado insertar datos al listbox utilizando sendmessage: SendMessage(List1.hwnd, LB_ADDSTRING, 0, ByVal "dato"), pero no he conseguido ver ninguna constante de SendMessage que permita empezar a escribir en una determinada coordenada.. Si alguien tiene alguna idea más o a qué API podría echar un vistazo...(se tiene que poder hacer de alguna forma.) Dejo mi código. Sólo hay que poner un listbox: List1 y un Label: Label1. Código: '******************************************************* Título: Re: Centrar texto en un listbox Publicado por: karmany en 29 Agosto 2006, 17:04 pm Después de comerme bastante la cabeza he hecho por fín un código que alinea texto en un listbox.
Estoy dando los últimos retoques. Lo subiré también a la Web de elGuille. Terminado por fín-- El código completo está bien explicado en la web de elGuille: http://www.elguille.info/colabora/vb2006/karmany_centrartextolistbox.htm He estado también intentando hacer lo mismo de alguna forma más sencilla(y que fuera perfectamente precisa), pero no he conseguido hacer funcionar nada más. Pienso que con estos dos ejemplos que he puesto ya no tiene que haber ningún problema. Lo único es que si pones un título, no lo pongas en sus propiedades centrado(ej. un textbox o label centrado), ya que como también he dicho, a veces el ancho del listbox no se puede calcular correctamente y se verá el título desplazado. Y eso queda muy poco estético. El título hay que tratarlo como un ítem más, así devolverá un valor que después habrá que transformar a scalemode del form y por último hay que pensar en la distancia que hay entre la izquierda del form y la izquierda del list que en definitiva es el Left del List. Bueno si tienes alguna duda respecto a esto, házmelo saber y te lo explico. |